42 lines
980 B
JavaScript
42 lines
980 B
JavaScript
'use strict';
|
|
|
|
const {
|
|
repoToOwnerAndOwner,
|
|
getFeatureBranches,
|
|
mergeBranch,
|
|
} = require('./repo-utils');
|
|
|
|
const { REPOSITORY, TOKEN, NEXT_RELEASE_BRANCH } = process.env;
|
|
|
|
if (!TOKEN) {
|
|
console.error('missing TOKEN env var');
|
|
process.exit(1);
|
|
return;
|
|
}
|
|
|
|
if (!REPOSITORY) {
|
|
console.error('missing REPOSITORY env var');
|
|
process.exit(1);
|
|
return;
|
|
}
|
|
|
|
if (!NEXT_RELEASE_BRANCH) {
|
|
console.error('missing NEXT_RELEASE_BRANCH env var');
|
|
process.exit(1);
|
|
return;
|
|
}
|
|
|
|
const { owner, repo } = repoToOwnerAndOwner(REPOSITORY);
|
|
|
|
(async () => {
|
|
try {
|
|
const featureBranches = await getFeatureBranches(TOKEN, owner, repo);
|
|
for (const branchName of featureBranches) {
|
|
await mergeBranch(TOKEN, owner, repo, branchName, NEXT_RELEASE_BRANCH, `Auto merge ${NEXT_RELEASE_BRANCH} branch into feature branch: ${branchName}`);
|
|
}
|
|
} catch (err) {
|
|
console.error(`Failed to merge ${NEXT_RELEASE_BRANCH} branch into ${err.base || ''} error: ${err.message}`);
|
|
process.exit(1);
|
|
}
|
|
})();
|