diff --git a/lib/platform/bitbucket-server/index.js b/lib/platform/bitbucket-server/index.js index f1592af5173463b35649561225465b57b6e41cf8..079ca4e2ac9f580e0c4a635f99ca436d001351e2 100644 --- a/lib/platform/bitbucket-server/index.js +++ b/lib/platform/bitbucket-server/index.js @@ -1,5 +1,6 @@ const url = require('url'); const _ = require('lodash'); +const addrs = require('email-addresses'); const api = require('./bb-got-wrapper'); const utils = require('./utils'); @@ -97,7 +98,14 @@ function cleanRepo() { } // Initialize GitLab by getting base branch -async function initRepo({ repository, endpoint, gitFs, localDir }) { +async function initRepo({ + repository, + endpoint, + gitAuthor, + gitPrivateKey, + gitFs, + localDir, +}) { logger.debug( `initRepo("${JSON.stringify( { repository, endpoint, gitFs, localDir }, @@ -120,7 +128,7 @@ async function initRepo({ repository, endpoint, gitFs, localDir }) { api.reset(); const [projectKey, repositorySlug] = repository.split('/'); - config = { projectKey, repositorySlug }; + config = { projectKey, repositorySlug, gitPrivateKey }; // Always gitFs const { host } = url.parse(opts.endpoint); @@ -131,6 +139,18 @@ async function initRepo({ repository, endpoint, gitFs, localDir }) { repository, }); + if (gitAuthor) { + try { + config.gitAuthor = addrs.parseOneAddress(gitAuthor); + } catch (err) /* istanbul ignore next */ { + logger.error( + { gitAuthor, err, message: err.message }, + 'Invalid gitAuthor' + ); + throw new Error('Invalid gitAuthor'); + } + } + config.storage = new GitStorage(); await config.storage.initRepo({ ...config, diff --git a/test/platform/bitbucket-server/index.spec.js b/test/platform/bitbucket-server/index.spec.js index 6beeeb2bd532f6229e770fd0838795272e5201b8..8142cc393ae67adf7ac121dc223ebbd8cf334c14 100644 --- a/test/platform/bitbucket-server/index.spec.js +++ b/test/platform/bitbucket-server/index.spec.js @@ -65,7 +65,10 @@ describe('platform/bitbucket-server', () => { }); function initRepo() { - return bitbucket.initRepo({ repository: 'SOME/repo' }); + return bitbucket.initRepo({ + repository: 'SOME/repo', + gitAuthor: 'bot@renovateapp.com', + }); } describe('getRepos()', () => {