Skip to content

Commit 4f4b5a1

Browse files
committed
Backport tools: sort PRs to be cherry picked by merged/closed date (#52667)
* Sorting found PRs by closed date in ascending order, from the oldest closed PRs to most recently closed PRs. * Now checking pull_request?.merged_at * Now checking pull_request?.merged_at * semi colon
1 parent 5a52ea1 commit 4f4b5a1

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

‎bin/cherry-pick.mjs‎

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,25 @@ async function fetchPRs() {
114114
const { items } = await GitHubFetch(
115115
`/search/issues?q=is:pr state:closed sort:updated label:"${ LABEL }" repo:WordPress/gutenberg`
116116
);
117-
const PRs = items.map( ( { id, number, title } ) => ( {
117+
const PRs = items.map( ( { id, number, title, pull_request, closed_at } ) => ( {
118118
id,
119119
number,
120120
title,
121-
} ) );
122-
console.log( 'Found the following PRs to cherry-pick: ' );
121+
closed_at,
122+
pull_request,
123+
} ) ).sort( ( a, b ) => {
124+
/*
125+
* `closed_at` and `pull_request.merged_at` are _usually_ the same,
126+
* but let's prefer the latter if it's available.
127+
*/
128+
if ( a?.pull_request?.merged_at && b?.pull_request?.merged_at ) {
129+
return new Date( a?.pull_request?.merged_at ) - new Date( b?.pull_request?.merged_at );
130+
}
131+
return new Date( a.closed_at ) - new Date( b.closed_at );
132+
} );
133+
134+
135+
console.log( 'Found the following PRs to cherry-pick (sorted by closed date in ascending order): ' );
123136
PRs.forEach( ( { number, title } ) =>
124137
console.log( indent( `#${ number } – ${ title }` ) )
125138
);

0 commit comments

Comments
 (0)