From 498f15653edcc1a059145bcf61299f8fdc6a4de0 Mon Sep 17 00:00:00 2001 From: Cristian Dominguez Date: Sat, 19 Jun 2021 01:40:28 -0300 Subject: [PATCH] Simplify auto-merge detection --- pkg/cmd/pr/merge/http.go | 3 +-- pkg/cmd/pr/merge/merge.go | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/pkg/cmd/pr/merge/http.go b/pkg/cmd/pr/merge/http.go index 9f00ecc42..ad1a9a78a 100644 --- a/pkg/cmd/pr/merge/http.go +++ b/pkg/cmd/pr/merge/http.go @@ -24,7 +24,6 @@ type mergePayload struct { pullRequestID string method PullRequestMergeMethod auto bool - mergeStateStatus string commitSubject string setCommitSubject bool commitBody string @@ -68,7 +67,7 @@ func mergePullRequest(client *http.Client, payload mergePayload) error { gql := graphql.NewClient(ghinstance.GraphQLEndpoint(payload.repo.RepoHost()), client) - if payload.auto && payload.mergeStateStatus == "BLOCKED" { + if payload.auto { var mutation struct { EnablePullRequestAutoMerge struct { ClientMutationId string diff --git a/pkg/cmd/pr/merge/merge.go b/pkg/cmd/pr/merge/merge.go index 60e8aaa23..0b05cc4e8 100644 --- a/pkg/cmd/pr/merge/merge.go +++ b/pkg/cmd/pr/merge/merge.go @@ -198,17 +198,17 @@ func mergeRun(opts *MergeOptions) error { deleteBranch := opts.DeleteBranch crossRepoPR := pr.HeadRepositoryOwner.Login != baseRepo.RepoOwner() + autoMerge := opts.AutoMergeEnable && pr.MergeStateStatus == "BLOCKED" isPRAlreadyMerged := pr.State == "MERGED" if !isPRAlreadyMerged { payload := mergePayload{ - repo: baseRepo, - pullRequestID: pr.ID, - mergeStateStatus: pr.MergeStateStatus, - method: opts.MergeMethod, - auto: opts.AutoMergeEnable, - commitBody: opts.Body, - setCommitBody: opts.BodySet, + repo: baseRepo, + pullRequestID: pr.ID, + method: opts.MergeMethod, + auto: autoMerge, + commitBody: opts.Body, + setCommitBody: opts.BodySet, } if opts.InteractiveMode { @@ -263,7 +263,7 @@ func mergeRun(opts *MergeOptions) error { } if isTerminal { - if payload.auto && payload.mergeStateStatus == "BLOCKED" { + if payload.auto { method := "" switch payload.method { case PullRequestMergeMethodRebase: @@ -283,7 +283,7 @@ func mergeRun(opts *MergeOptions) error { fmt.Fprintf(opts.IO.ErrOut, "%s %s pull request #%d (%s)\n", cs.SuccessIconWithColor(cs.Magenta), action, pr.Number, pr.Title) } } - } else if !opts.IsDeleteBranchIndicated && opts.InteractiveMode && !crossRepoPR && !opts.AutoMergeEnable { + } else if !opts.IsDeleteBranchIndicated && opts.InteractiveMode && !crossRepoPR && !autoMerge { err := prompt.SurveyAskOne(&survey.Confirm{ Message: fmt.Sprintf("Pull request #%d was already merged. Delete the branch locally?", pr.Number), Default: false, @@ -295,7 +295,7 @@ func mergeRun(opts *MergeOptions) error { fmt.Fprintf(opts.IO.ErrOut, "%s Pull request #%d was already merged\n", cs.WarningIcon(), pr.Number) } - if !deleteBranch || crossRepoPR || opts.AutoMergeEnable { + if !deleteBranch || crossRepoPR || autoMerge { return nil }