Skip to content

Commit 025ad77

Browse files
kyeahalexcanessa
authored andcommitted
Pull the most recently updated PRs (#166)
1 parent 56551ae commit 025ad77

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

lib/src/Gren.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -371,17 +371,21 @@ class Gren {
371371
*
372372
* @return {Promise[]} The promises which returns pull requests
373373
*/
374-
async _getMergedPullRequests(page = 1, limit = 100) {
374+
async _getMergedPullRequests(since, page = 1, limit = 1000) {
375375
const results = await this.repo.listPullRequests({
376376
state: 'closed',
377+
sort: 'updated',
378+
direction: 'desc',
377379
per_page: limit,
378380
page
379381
});
382+
380383
const { headers: { link }, data: prs } = results;
381384
const totalPages = this._getLastPage(link);
382385
const filterPrs = prs.filter(pr => pr.merged_at);
383-
if (totalPages && +page < totalPages) {
384-
return this._getMergedPullRequests(page + 1).then(prsResults => prsResults.concat(filterPrs));
386+
if (prs.length > 0 && since < prs[prs.length - 1].updated_at &&
387+
totalPages && +page < totalPages) {
388+
return this._getMergedPullRequests(since, page + 1).then(prsResults => prsResults.concat(filterPrs));
385389
}
386390

387391
return filterPrs;
@@ -921,7 +925,9 @@ class Gren {
921925
*/
922926
async _getPullRequestsBlocks(releaseRanges) {
923927
const loaded = utils.task(this, `Getting all merged pull requests`);
924-
const prs = await this._getMergedPullRequests();
928+
const since = releaseRanges[releaseRanges.length - 1][1].date;
929+
const prs = await this._getMergedPullRequests(since);
930+
925931
let totalPrs = 0;
926932
const release = releaseRanges
927933
.map(range => {

0 commit comments

Comments
 (0)