Skip to content

Commit 18007c9

Browse files
authored
Ensure that PRs are sorted by merge date
2 parents e5b8825 + 6990df2 commit 18007c9

1 file changed

Lines changed: 21 additions & 9 deletions

File tree

lib/src/Gren.js

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -934,7 +934,12 @@ class Gren {
934934
const loaded = utils.task(this, 'Getting all merged pull requests');
935935
const since = releaseRanges[releaseRanges.length - 1][1].date;
936936
const prs = await this._getMergedPullRequests(since);
937-
const filteredPrs = Array.from(prs).filter(this._filterPullRequest.bind(this));
937+
prs.sort(
938+
(pr1, pr2) => new Date(pr2.merged_at) - new Date(pr1.merged_at)
939+
);
940+
const filteredPrs = prs.filter(
941+
this._filterPullRequest.bind(this)
942+
);
938943

939944
let totalPrs = 0;
940945
const release = releaseRanges
@@ -961,10 +966,14 @@ class Gren {
961966
let relevantIssues = [];
962967

963968
const re = new RegExp('([\\w-]+)/([\\w-]+)/issues/([0-9]+)', 'gi');
969+
const prs = await this._getMergedPullRequests(since);
970+
prs.sort(
971+
(pr1, pr2) => new Date(pr2.merged_at) - new Date(pr1.merged_at)
972+
);
964973

965-
const prs = (await this._getMergedPullRequests(since))
974+
const filteredPrs = prs
966975
.filter(this._filterPullRequest.bind(this))
967-
.map(pr => {
976+
.map((pr) => {
968977
const matches = pr.body.match(re);
969978
const relatedIssues = matches && matches.map(issue => {
970979
const [user, repo, , number] = issue.split('/');
@@ -973,13 +982,16 @@ class Gren {
973982
return Object.assign({}, pr, { relatedIssues });
974983
});
975984

976-
const release = releaseRanges
977-
.map(range => {
978-
const list = prs.filter(this._filterBlockPullRequest.bind(this, range));
979-
list.forEach(({ relatedIssues }) => { relevantIssues = relevantIssues.concat(relatedIssues || []); });
980-
loaded(`Pull Requests found: ${list.length}`);
981-
return Object.assign({}, range, { list });
985+
const release = releaseRanges.map((range) => {
986+
const list = filteredPrs.filter(
987+
this._filterBlockPullRequest.bind(this, range)
988+
);
989+
list.forEach(({ relatedIssues }) => {
990+
relevantIssues = relevantIssues.concat(relatedIssues || []);
982991
});
992+
loaded(`Pull Requests found: ${list.length}`);
993+
return Object.assign({}, range, { list });
994+
});
983995

984996
const issuesDetails = (await Promise.all(relevantIssues.map(this._getSingleIssue.bind(this))))
985997
.reduce((acc, el) => { acc[el.number] = el; return acc; }, {});

0 commit comments

Comments
 (0)