Implement some GitHub related improvements (#28)
This commit is contained in:
parent
fa3be4a7e7
commit
369d01bcb9
12
env.json
12
env.json
|
@ -31,6 +31,14 @@
|
|||
},
|
||||
"DATA_CUSTOM_RESPONSES": {
|
||||
"required": false,
|
||||
"description": "Whether or not to load responses.js from the data directory."
|
||||
"description": "Whether or not to load responses.js from the data directory."
|
||||
},
|
||||
"GITHUB_REPOSITORY": {
|
||||
"required": false,
|
||||
"description": "The github repository that should be tracked (format is user/repository)"
|
||||
},
|
||||
"GITHUB_OLD_THRESHOLD": {
|
||||
"required": false,
|
||||
"description": "Issues below this treshold should be ignored"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
const request = require('request');
|
||||
const logger = require('../logging.js');
|
||||
|
||||
exports.roles = ['Admins', 'Moderators', 'Developers'];
|
||||
exports.command = function (message) {
|
||||
let pr = message.content.substr(message.content.indexOf(' ') + 1).replace(/\n/g, '');
|
||||
|
||||
let repo = process.env.GITHUB_REPOSITORY || "citra-emu/citra";
|
||||
let url = `https://api.github.com/repos/${repo}/pulls/${pr}`;
|
||||
|
||||
request({ url: url, headers: { 'User-Agent': 'Citra-Emu/CitraBot (Node.js)'}}, function (error, response, body) {
|
||||
if (!error) {
|
||||
var pr = JSON.parse(body);
|
||||
request({ url: pr.statuses_url, headers: { 'User-Agent': 'Citra-Emu/CitraBot (Node.js)'}}, function(error, response, body)
|
||||
{
|
||||
var statuses = JSON.parse(body);
|
||||
|
||||
if (statuses.length == 0) return;
|
||||
|
||||
// Travis CI will give you multiple, identical target URLs so we might as well just check the first one...
|
||||
var status = statuses[0];
|
||||
status.target_url = status.target_url.substr(0, status.target_url.indexOf('?'));
|
||||
message.channel.sendMessage(`${status.context}: ${status.target_url}: **${status.state}**`);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
message.channel.sendMessage('No such PR.');
|
||||
}
|
||||
});
|
||||
};
|
|
@ -10,6 +10,8 @@ exports.execute = function (message) {
|
|||
let matcher = new RegExp(regex);
|
||||
let match = matcher.exec(message.content);
|
||||
let matched = [];
|
||||
let threshold = process.env.GITHUB_OLD_THRESHOLD || 2000;
|
||||
let repo = process.env.GITHUB_REPOSITORY || "citra-emu/citra";
|
||||
|
||||
while (match != null) {
|
||||
if (matched.indexOf(match[1]) === -1) {
|
||||
|
@ -23,12 +25,12 @@ exports.execute = function (message) {
|
|||
// This usually happens when someone messes up pinging another person or
|
||||
// in general conversation.
|
||||
// ex: You're #1!
|
||||
if (match[1] <= 2000) { return; }
|
||||
|
||||
if (match[1] < threshold) { return; }
|
||||
|
||||
// Map domain path to type
|
||||
let map = {'pull': 'Pull Request', 'issues': 'Issue'};
|
||||
|
||||
let url = `https://github.com/citra-emu/citra/pull/${match[1]}`;
|
||||
let url = `https://github.com/${repo}/pull/${match[1]}`;
|
||||
request(url, function (error, response, body) {
|
||||
if (!error && response.statusCode === 200) {
|
||||
|
||||
|
|
Loading…
Reference in New Issue