Create contributions instead of proposals #27
@ -1,6 +1,10 @@
|
|||||||
const util = require('util');
|
const util = require('util');
|
||||||
const fetch = require('node-fetch');
|
const fetch = require('node-fetch');
|
||||||
|
|
||||||
|
function sleep(ms) {
|
||||||
|
return new Promise(resolve => setTimeout(resolve, ms));
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = async function(robot, kredits) {
|
module.exports = async function(robot, kredits) {
|
||||||
|
|
||||||
function messageRoom(message) {
|
function messageRoom(message) {
|
||||||
@ -76,7 +80,7 @@ module.exports = async function(robot, kredits) {
|
|||||||
return amount;
|
return amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleGitHubIssueClosed(data) {
|
async function handleGitHubIssueClosed(data) {
|
||||||
let recipients;
|
let recipients;
|
||||||
let issue = data.issue;
|
let issue = data.issue;
|
||||||
let assignees = issue.assignees.map(a => a.login);
|
let assignees = issue.assignees.map(a => a.login);
|
||||||
@ -100,15 +104,15 @@ module.exports = async function(robot, kredits) {
|
|||||||
recipients = [issue.user.login];
|
recipients = [issue.user.login];
|
||||||
}
|
}
|
||||||
|
|
||||||
let contributionPromises = [];
|
for (const recipient of recipients) {
|
||||||
recipients.forEach(recipient => {
|
try {
|
||||||
contributionPromises.push(
|
await createContribution(recipient, amount, description, web_url, issue);
|
||||||
createContribution(recipient, amount, description, web_url, issue)
|
await sleep(60000);
|
||||||
.catch(err => robot.logger.error(err))
|
}
|
||||||
);
|
catch (err) { robot.logger.error(err); }
|
||||||
});
|
}
|
||||||
|
|
||||||
return Promise.all(contributionPromises);
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleGitHubPullRequestClosed(data) {
|
function handleGitHubPullRequestClosed(data) {
|
||||||
@ -131,7 +135,7 @@ module.exports = async function(robot, kredits) {
|
|||||||
}
|
}
|
||||||
return response.json();
|
return response.json();
|
||||||
})
|
})
|
||||||
.then(issue => {
|
.then(async (issue) => {
|
||||||
let amount = amountFromIssueLabels(issue);
|
let amount = amountFromIssueLabels(issue);
|
||||||
let repoName = pull_request.base.repo.full_name;
|
let repoName = pull_request.base.repo.full_name;
|
||||||
let description = `${repoName}: ${pull_request.title}`;
|
let description = `${repoName}: ${pull_request.title}`;
|
||||||
@ -144,16 +148,15 @@ module.exports = async function(robot, kredits) {
|
|||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
let contributionPromises = [];
|
for (const recipient of recipients) {
|
||||||
recipients.forEach(recipient => {
|
try {
|
||||||
robot.logger.debug(`[hubot-kredits] Creating contribution token for ${recipient}...`);
|
await createContribution(recipient, amount, description, web_url, pull_request);
|
||||||
contributionPromises.push(
|
await sleep(60000);
|
||||||
createContribution(recipient, amount, description, web_url, pull_request)
|
}
|
||||||
.catch(err => robot.logger.error(err))
|
catch (err) { robot.logger.error(err); }
|
||||||
);
|
}
|
||||||
});
|
|
||||||
|
|
||||||
return Promise.all(contributionPromises);
|
return Promise.resolve();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,10 +170,12 @@ module.exports = async function(robot, kredits) {
|
|||||||
robot.logger.info(`Received GitHub hook. Event: ${evt}, action: ${data.action}`);
|
robot.logger.info(`Received GitHub hook. Event: ${evt}, action: ${data.action}`);
|
||||||
|
|
||||||
if (evt === 'pull_request' && data.action === 'closed') {
|
if (evt === 'pull_request' && data.action === 'closed') {
|
||||||
handleGitHubPullRequestClosed(data).then(() => res.send(200));
|
handleGitHubPullRequestClosed(data);
|
||||||
|
res.send(200);
|
||||||
}
|
}
|
||||||
else if (evt === 'issues' && data.action === 'closed') {
|
else if (evt === 'issues' && data.action === 'closed') {
|
||||||
handleGitHubIssueClosed(data).then(() => res.send(200));
|
handleGitHubIssueClosed(data);
|
||||||
|
res.send(200);
|
||||||
} else {
|
} else {
|
||||||
res.send(200);
|
res.send(200);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user