mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-05-12 17:04:46 +00:00
70 lines
2.0 KiB
JavaScript
70 lines
2.0 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
const GitHub = require('github-api');
|
|
let program = require('commander');
|
|
|
|
const ORGANISATION = 'Alfresco';
|
|
const ORIGIN_REPO = 'alfresco-content-app';
|
|
|
|
class PrCreator {
|
|
constructor(githubUser, githubRepo, token, commit) {
|
|
this.github = new GitHub({token});
|
|
this.repoOrigin = this.github.getRepo(githubUser, ORIGIN_REPO);
|
|
this.repoDestination = this.github.getRepo(githubUser, githubRepo);
|
|
this.commit = commit;
|
|
}
|
|
|
|
async getShaClosedPr(head, base) {
|
|
return this.getShaPr(head, base, 'closed');
|
|
}
|
|
|
|
async getShaOpenPr(head, base) {
|
|
return this.getShaPr(head, base, 'open');
|
|
}
|
|
|
|
async getShaPr(head, base, status) {
|
|
const { data: closedUpstreamPRs } = await this.repoDestination.listPullRequests({ state: status, head: `${ORGANISATION}:${head}`, base });
|
|
if (closedUpstreamPRs.length > 0) {
|
|
const latestClosedUpstream = closedUpstreamPRs[0];
|
|
return latestClosedUpstream.body.split(':')[1].trim();
|
|
}
|
|
return '';
|
|
}
|
|
|
|
}
|
|
|
|
async function main() {
|
|
|
|
program
|
|
.version('0.1.0')
|
|
.option('-t, --token [type]', 'token')
|
|
.option('-h, --head [type]', 'head')
|
|
.option('-r, --repo [type]', 'repo')
|
|
.option('-c, --commit [type]', 'commit')
|
|
.parse(process.argv);
|
|
|
|
const { token, head, repo, commit } = program;
|
|
const prCreator = new PrCreator(ORGANISATION, repo, token, commit);
|
|
|
|
const baseBranchName = 'develop';
|
|
|
|
const shaOpen = await prCreator.getShaOpenPr(head, baseBranchName);
|
|
const shaClosed = await prCreator.getShaClosedPr(head, baseBranchName);
|
|
if (shaOpen === commit || shaClosed === commit) {
|
|
console.log('ACA sha already exist');
|
|
return 'true';
|
|
}
|
|
return 'false';
|
|
}
|
|
|
|
main()
|
|
.then(result => {
|
|
process.stdout.write(result);
|
|
process.exit(0);
|
|
})
|
|
.catch(error => {
|
|
console.error(error.response.status);
|
|
console.error(error.response.statusText);
|
|
process.exit(1);
|
|
});
|