From 6bec7a956a1a046eaa590c63d7497d3b7cfea592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Fri, 21 May 2021 17:35:41 +0200 Subject: [PATCH] Fix `pr merge` on GHE < 3.0 This avoids loading authorship information for git commits, since it relies on a GraphQL API that wasn't available before GHE v3.0. The authorship information wasn't necessary for the merge operation anyway; just loading the last commit OID was. --- api/query_builder.go | 2 ++ pkg/cmd/pr/merge/merge.go | 2 +- pkg/cmd/pr/merge/merge_test.go | 14 ++++---------- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/api/query_builder.go b/api/query_builder.go index 3bdbb8c9b..084e97195 100644 --- a/api/query_builder.go +++ b/api/query_builder.go @@ -208,6 +208,8 @@ func PullRequestGraphQL(fields []string) string { q = append(q, prFiles) case "commits": q = append(q, prCommits) + case "lastCommit": // pseudo-field + q = append(q, `commits(last:1){nodes{commit{oid}}}`) case "commitsCount": // pseudo-field q = append(q, `commits{totalCount}`) case "statusCheckRollup": diff --git a/pkg/cmd/pr/merge/merge.go b/pkg/cmd/pr/merge/merge.go index f25732a7b..acdfda2cc 100644 --- a/pkg/cmd/pr/merge/merge.go +++ b/pkg/cmd/pr/merge/merge.go @@ -156,7 +156,7 @@ func mergeRun(opts *MergeOptions) error { findOptions := shared.FindOptions{ Selector: opts.SelectorArg, - Fields: []string{"id", "number", "state", "title", "commits", "mergeable", "headRepositoryOwner", "headRefName"}, + Fields: []string{"id", "number", "state", "title", "lastCommit", "mergeable", "headRepositoryOwner", "headRefName"}, } pr, baseRepo, err := opts.Finder.Find(findOptions) if err != nil { diff --git a/pkg/cmd/pr/merge/merge_test.go b/pkg/cmd/pr/merge/merge_test.go index abd0d9f55..4ca577605 100644 --- a/pkg/cmd/pr/merge/merge_test.go +++ b/pkg/cmd/pr/merge/merge_test.go @@ -464,11 +464,8 @@ func Test_nonDivergingPullRequest(t *testing.T) { } stubCommit(pr, "COMMITSHA1") - shared.RunCommandFinder( - "", - pr, - baseRepo("OWNER", "REPO", "master"), - ) + prFinder := shared.RunCommandFinder("", pr, baseRepo("OWNER", "REPO", "master")) + prFinder.ExpectFields([]string{"id", "number", "state", "title", "lastCommit", "mergeable", "headRepositoryOwner", "headRefName"}) http.Register( httpmock.GraphQL(`mutation PullRequestMerge\b`), @@ -505,11 +502,8 @@ func Test_divergingPullRequestWarning(t *testing.T) { } stubCommit(pr, "COMMITSHA1") - shared.RunCommandFinder( - "", - pr, - baseRepo("OWNER", "REPO", "master"), - ) + prFinder := shared.RunCommandFinder("", pr, baseRepo("OWNER", "REPO", "master")) + prFinder.ExpectFields([]string{"id", "number", "state", "title", "lastCommit", "mergeable", "headRepositoryOwner", "headRefName"}) http.Register( httpmock.GraphQL(`mutation PullRequestMerge\b`),