test on repo

This commit is contained in:
tbushman
2018-11-17 22:09:19 -07:00
committed by mrugesh mohapatra
parent 5c926dc2dd
commit e2c57be829
4 changed files with 37 additions and 7 deletions

View File

@ -29,7 +29,8 @@ async function probotPlugin(robot) {
"pull_request.opened", "pull_request.opened",
"pull_request.edited", "pull_request.edited",
"pull_request.synchronize", "pull_request.synchronize",
"pull_request.reopened" "pull_request.reopened",
"pull_request.labeled"
]; ];
robot.on(events, presolve.bind(null, robot)); robot.on(events, presolve.bind(null, robot));

View File

@ -17,6 +17,9 @@ class Presolver {
const number = this.pullRequest.number; const number = this.pullRequest.number;
await this._ensurePresolverLabelExists(); await this._ensurePresolverLabelExists();
const state = await this._getState(); const state = await this._getState();
if (this.conflictingFiles.length) {
await this._addLabel();
}
/*switch(state) { /*switch(state) {
case Presolver.STATE.CONFLICT: case Presolver.STATE.CONFLICT:
case Presolver.STATE.NOCONFLICT: case Presolver.STATE.NOCONFLICT:
@ -53,11 +56,11 @@ class Presolver {
async _getConflictingFiles(prs, files) { async _getConflictingFiles(prs, files) {
prs.forEach(function(pr){ prs.forEach(function(pr){
var prFiles = pr.getFiles(); var prFiles = pr.getFiles();
prFiles.forEach(function(file){ prFiles.data.forEach(function(file){
files.forEach(function(f){ files.data.forEach(function(f){
console.log(f, file) console.log(f, file)
if (f === file) { if (f.filename === file.filename) {
this.conflictingFiles.push(file) this.conflictingFiles.push(file.filename)
} }
}) })
}) })
@ -84,6 +87,32 @@ class Presolver {
}); });
}); });
} }
_getLabel(labelObj) {
return new Promise((resolve, reject) => {
for (const label of this.pullRequest.labels) {
if (lableObj && lableObj.name && label.name === lableObj.name) {
resolve(lableObj);
}
}
reject(new Error("Not found"));
});
}
async _addLabel() {
const { owner, repo } = this.config;
const number = this.pullRequest.number;
const label = this.config.labelPRConflict;
// Check if a label does not exist. If it does, it addes the label.
return this._getLabel(label).catch(() => {
return this.github.issues.addLabels({
owner,
repo,
number,
labels: [labelObj.name]
});
});
}
} }
module.exports = Presolver module.exports = Presolver

View File

@ -1,5 +1,5 @@
{ {
"action": "reopened", "action": "opened",
"number": 13, "number": 13,
"pull_request": { "pull_request": {
"url": "https://api.github.com/repos/tbushman/pu/pulls/13", "url": "https://api.github.com/repos/tbushman/pu/pulls/13",

View File

@ -47,7 +47,7 @@ describe('Presolver', () => {
test('creates a comment when an issue is opened', async () => { test('creates a comment when an issue is opened', async () => {
// Receive a webhook event // Receive a webhook event
await probot.receive({name: 'pull_request.opened', payload: prSuccessEvent}) await probot.receive({name: 'pull_request.opened', payload: prSuccessEvent})
expect(github.issues.createLabel).toHaveBeenCalled() expect(github.issues.addLabels).toHaveBeenCalled()
}) })
}) })