diff --git a/scripts/cli/tasks/cherrypick.ts b/scripts/cli/tasks/cherrypick.ts index 543b46a8586..96678195182 100644 --- a/scripts/cli/tasks/cherrypick.ts +++ b/scripts/cli/tasks/cherrypick.ts @@ -16,22 +16,32 @@ const cherryPickRunner: TaskRunner = async () => { }, }); - // sort by closed date + // sort by closed date ASC res.data.sort(function(a, b) { - return new Date(b.closed_at).getTime() - new Date(a.closed_at).getTime(); + return new Date(a.closed_at).getTime() - new Date(b.closed_at).getTime(); }); + let commands = ''; + + console.log('--------------------------------------------------------------------'); + console.log('Printing PRs with cherry-pick-needed, in ASC merge date order'); + console.log('--------------------------------------------------------------------'); + for (const item of res.data) { if (!item.milestone) { console.log(item.number + ' missing milestone!'); continue; } - console.log(`${item.title} (${item.number}) closed_at ${item.closed_at}`); - console.log(`\tURL: ${item.closed_at} ${item.html_url}`); const issueDetails = await client.get(item.pull_request.url); - console.log(`\tMerge sha: ${issueDetails.data.merge_commit_sha}`); + console.log(`* ${item.title}, (#${item.number}), merge-sha: ${issueDetails.data.merge_commit_sha}`); + commands += `git cherry-pick -x ${issueDetails.data.merge_commit_sha}\n`; } + + console.log('--------------------------------------------------------------------'); + console.log('Commands (in order of how they should be executed)'); + console.log('--------------------------------------------------------------------'); + console.log(commands); }; export const cherryPickTask = new Task();