From f52f7c101c631354c7f884cae2afe0bf2d16afe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 20 May 2019 11:18:56 +0200 Subject: [PATCH] Release: Improved cherry pick task (#17087) * Release: Improved cherry pick task * Minor tweak to formatting (cherry picked from commit 058f5a16821a9b6e5c9b1479237a7c2923666b11) --- scripts/cli/tasks/cherrypick.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) 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();