fix: fixed bug with prFilter function

This commit is contained in:
Randell Dawson
2018-11-07 21:20:21 -08:00
parent 74989b28bc
commit cf6dc3fef3
2 changed files with 24 additions and 23 deletions

View File

@ -6,17 +6,16 @@ const octokit = require('@octokit/rest')(octokitConfig);
octokit.authenticate(octokitAuth); octokit.authenticate(octokitAuth);
const addLabels = (number, labels, log) => { const addLabels = (number, labels, log) => {
octokit.issues.addLabels({ owner, repo, number, labels })
.then(() => {
log.update(number, true);
console.log(`PR #${number} added ${JSON.stringify(labels)}\n`); console.log(`PR #${number} added ${JSON.stringify(labels)}\n`);
// octokit.issues.addLabels({ owner, repo, number, labels }) })
// .then(() => { .catch((err) => {
// log.update(number, true); console.log(`PR #${number} had an error when trying to label with ${JSON.stringify(labels)}\n`);
// console.log(`PR #${number} added ${JSON.stringify(labels)}\n`); console.log(err)
// }) log.finish()
// .catch((err) => { })
// console.log(`PR #${number} had an error when trying to label with ${JSON.stringify(labels)}\n`);
// console.log(err)
// log.finish()
// })
}; };
exports.addLabels = addLabels; exports.addLabels = addLabels;

View File

@ -1,21 +1,25 @@
const { owner, repo } = require('./constants'); const { owner, repo } = require('./constants');
const paginate = async function paginate (method, octokit, firstPR, lastPR, prPropsToGet) { const paginate = async function paginate (method, octokit, firstPR, lastPR, prPropsToGet) {
const minMaxFilter = (prs, first, last, prPropsToGet) => {
return prs.reduce((filtered, pr) => { const prFilter = (prs, first, last, prPropsToGet) => {
const filtered = [];
for (let pr of prs) {
if (pr.number >= first && pr.number <= last) { if (pr.number >= first && pr.number <= last) {
const propsObj = prPropsToGet.reduce((obj, prop) => { const propsObj = prPropsToGet.reduce((obj, prop) => {
obj[prop] = pr[prop]; obj[prop] = pr[prop];
return obj; return obj;
} ,{}); } ,{});
filtered = [propsObj, ...filtered]; filtered.push(propsObj);
}
if (pr.number >= last) {
done = true;
return filtered;
}
} }
return filtered; return filtered;
}, []);
}; };
const includesPRNum = (prs, prNum) => prs.some(({ number }) => number >= prNum);
const methodProps = { const methodProps = {
owner, repo, state: 'open', owner, repo, state: 'open',
base: 'master', sort: 'created', base: 'master', sort: 'created',
@ -25,13 +29,11 @@ const paginate = async function paginate (method, octokit, firstPR, lastPR, prPr
let done = false; // will be true when lastPR is seen paginated results let done = false; // will be true when lastPR is seen paginated results
let response = await method(methodProps); let response = await method(methodProps);
let { data } = response; let { data } = response;
data = minMaxFilter(data, firstPR, lastPR, prPropsToGet); data = prFilter(data, firstPR, lastPR, prPropsToGet);
done = includesPRNum(data, lastPR); while (octokit.hasNextPage(response) && !done ) {
while (octokit.hasNextPage(response) && !done) {
response = await octokit.getNextPage(response); response = await octokit.getNextPage(response);
let dataFiltered = minMaxFilter(response.data, firstPR, lastPR, prPropsToGet); let dataFiltered = prFilter(response.data, firstPR, lastPR, prPropsToGet);
data = data.concat(dataFiltered); data = data.concat(dataFiltered);
done = includesPRNum(dataFiltered, lastPR);
} }
return data; return data;
}; };