Files
freeCodeCamp/openPrStats.js
2018-11-13 02:37:18 +05:30

43 lines
1.4 KiB
JavaScript

require('dotenv').config();
const { owner, repo } = require('./constants');
const { octokitConfig, octokitAuth } = require('./octokitConfig');
const octokit = require('@octokit/rest')(octokitConfig);
octokit.authenticate(octokitAuth);
const getOpenPrCount = async () => {
const { data } = await octokit.search.issues({
q: 'repo:freeCodeCamp/freeCodeCamp+is:open+type:pr+base:master',
sort: 'created', order: 'asc', page: 1, per_page: 1
});
return data.length;
};
const getFirstPr = async () => {
const state = `open`;
const base = 'master';
const sort = 'created';
const page = 1;
const per_page = 1;
let methodProps = {owner, repo, state, base, sort, direction: 'asc', page, per_page};
let response = await octokit.pullRequests.getAll(methodProps);
return response.data[0].number;
};
const getOpenPrRange = async () => {
const state = `open`;
const base = 'master';
const sort = 'created';
const page = 1;
const per_page = 1;
let methodProps = {owner, repo, state, base, sort, direction: 'asc', page, per_page};
let response = await octokit.pullRequests.getAll(methodProps);
const firstPR = response.data[0].number;
methodProps = {owner, repo, state, base, sort, direction: 'desc', page, per_page};
response = await octokit.pullRequests.getAll(methodProps);
const lastPR = response.data[0].number;
return [firstPR, lastPR];
};
module.exports = { getOpenPrCount, getFirstPr, getOpenPrRange };