From 0d55f8648c0540c4a0aaaf568a39967fbbff93ed Mon Sep 17 00:00:00 2001 From: Michael Neeley Date: Thu, 11 Feb 2021 16:27:23 -0500 Subject: [PATCH] adds merge state status --- api/client.go | 1 + api/queries_pr.go | 2 ++ pkg/cmd/pr/status/status.go | 10 ++++++++++ 3 files changed, 13 insertions(+) diff --git a/api/client.go b/api/client.go index 09195181b..17534b8b2 100644 --- a/api/client.go +++ b/api/client.go @@ -239,6 +239,7 @@ func (c Client) GraphQL(hostname string, query string, variables map[string]inte } req.Header.Set("Content-Type", "application/json; charset=utf-8") + req.Header.Set("Accept", "application/vnd.github.merge-info-preview+json") resp, err := c.http.Do(req) if err != nil { diff --git a/api/queries_pr.go b/api/queries_pr.go index 8b526bdc6..898d3297a 100644 --- a/api/queries_pr.go +++ b/api/queries_pr.go @@ -38,6 +38,7 @@ type PullRequest struct { HeadRefName string Body string Mergeable string + MergeStateStatus string Author struct { Login string @@ -353,6 +354,7 @@ func PullRequests(client *Client, repo ghrepo.Interface, currentPRNumber int, cu state url headRefName + mergeStateStatus headRepositoryOwner { login } diff --git a/pkg/cmd/pr/status/status.go b/pkg/cmd/pr/status/status.go index bec49f259..3758a9d67 100644 --- a/pkg/cmd/pr/status/status.go +++ b/pkg/cmd/pr/status/status.go @@ -227,6 +227,16 @@ func printPrs(io *iostreams.IOStreams, totalCount int, prs ...api.PullRequest) { } else if reviews.Approved { fmt.Fprint(w, cs.Green("✓ Approved")) } + + // add padding between reviews & merge status + fmt.Fprint(w, " ") + + if pr.MergeStateStatus == "BEHIND" { + fmt.Fprint(w, cs.Yellow("- Not up to date")) + } else { + fmt.Fprint(w, cs.Green("✓ Up to date")) + } + } else { fmt.Fprintf(w, " - %s", shared.StateTitleWithColor(cs, pr)) }