From 83aaa76141cd15b707004c6795a1ffb581d94cc5 Mon Sep 17 00:00:00 2001 From: Martijn Pieters Date: Tue, 9 May 2023 21:32:05 +0100 Subject: [PATCH] Include auto-merge information in gh pr status (#7386) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PRs that have auto-merge enabled are marked with a green "✓ Auto-merge enabled" label. --- pkg/cmd/pr/status/fixtures/prStatus.json | 21 +++++++++++++++++---- pkg/cmd/pr/status/http.go | 2 +- pkg/cmd/pr/status/status.go | 4 ++++ pkg/cmd/pr/status/status_test.go | 2 +- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/pkg/cmd/pr/status/fixtures/prStatus.json b/pkg/cmd/pr/status/fixtures/prStatus.json index a226663a3..d5cfb265a 100644 --- a/pkg/cmd/pr/status/fixtures/prStatus.json +++ b/pkg/cmd/pr/status/fixtures/prStatus.json @@ -15,7 +15,8 @@ "headRepositoryOwner": { "login": "OWNER" }, - "isCrossRepository": false + "isCrossRepository": false, + "autoMergeRequest": null } } ] @@ -31,7 +32,8 @@ "state": "OPEN", "url": "https://github.com/cli/cli/pull/8", "headRefName": "strawberries", - "isDraft": false + "isDraft": false, + "autoMergeRequest": null } } ] @@ -46,7 +48,17 @@ "state": "OPEN", "url": "https://github.com/cli/cli/pull/9", "headRefName": "apples", - "isDraft": false + "isDraft": false, + "autoMergeRequest": { + "authorEmail": null, + "commitBody": null, + "commitHeadline": null, + "mergeMethod": "SQUASH", + "enabledAt": "2020-08-27T19:00:12Z", + "enabledBy": { + "login": "hubot" + } + } } }, { "node": { "number": 11, @@ -54,7 +66,8 @@ "state": "OPEN", "url": "https://github.com/cli/cli/pull/1", "headRefName": "figs", - "isDraft": true + "isDraft": true, + "autoMergeRequest": null } } ] diff --git a/pkg/cmd/pr/status/http.go b/pkg/cmd/pr/status/http.go index e0b2145e9..49bdb147c 100644 --- a/pkg/cmd/pr/status/http.go +++ b/pkg/cmd/pr/status/http.go @@ -191,7 +191,7 @@ func pullRequestFragment(hostname string, conflictStatus bool) (string, error) { fields := []string{ "number", "title", "state", "url", "isDraft", "isCrossRepository", "headRefName", "headRepositoryOwner", "mergeStateStatus", - "statusCheckRollup", "requiresStrictStatusChecks", + "statusCheckRollup", "requiresStrictStatusChecks", "autoMergeRequest", } if conflictStatus { diff --git a/pkg/cmd/pr/status/status.go b/pkg/cmd/pr/status/status.go index c2d4271d0..fa517bada 100644 --- a/pkg/cmd/pr/status/status.go +++ b/pkg/cmd/pr/status/status.go @@ -284,6 +284,10 @@ func printPrs(io *iostreams.IOStreams, totalCount int, prs ...api.PullRequest) { } } + if pr.AutoMergeRequest != nil { + fmt.Fprintf(w, " %s", cs.Green("✓ Auto-merge enabled")) + } + } else { fmt.Fprintf(w, " - %s", shared.StateTitleWithColor(cs, pr)) } diff --git a/pkg/cmd/pr/status/status_test.go b/pkg/cmd/pr/status/status_test.go index f94822e47..1b39ddb24 100644 --- a/pkg/cmd/pr/status/status_test.go +++ b/pkg/cmd/pr/status/status_test.go @@ -91,7 +91,7 @@ func TestPRStatus(t *testing.T) { expectedPrs := []*regexp.Regexp{ regexp.MustCompile(`#8.*\[strawberries\]`), - regexp.MustCompile(`#9.*\[apples\]`), + regexp.MustCompile(`#9.*\[apples\].*✓ Auto-merge enabled`), regexp.MustCompile(`#10.*\[blueberries\]`), regexp.MustCompile(`#11.*\[figs\]`), }