From bf3ffba8ef0dc3fbdbaeb0f8498ad4cd534a379b Mon Sep 17 00:00:00 2001 From: Martijn Pieters Date: Wed, 3 May 2023 22:36:21 +0100 Subject: [PATCH] Add PR auto-merge status info to PR queries (#7384) --- api/queries_pr.go | 12 ++++++++++++ api/query_builder.go | 14 ++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/api/queries_pr.go b/api/queries_pr.go index 87ffd658d..ae8f7c0c6 100644 --- a/api/queries_pr.go +++ b/api/queries_pr.go @@ -39,6 +39,8 @@ type PullRequest struct { ClosedAt *time.Time MergedAt *time.Time + AutoMergeRequest *AutoMergeRequest + MergeCommit *Commit PotentialMergeCommit *Commit @@ -136,6 +138,16 @@ type PRRepository struct { Name string `json:"name"` } +type AutoMergeRequest struct { + AuthorEmail *string `json:"authorEmail"` + CommitBody *string `json:"commitBody"` + CommitHeadline *string `json:"commitHeadline"` + // MERGE, REBASE, SQUASH + MergeMethod string `json:"mergeMethod"` + EnabledAt time.Time `json:"enabledAt"` + EnabledBy Author `json:"enabledBy"` +} + // Commit loads just the commit SHA and nothing else type Commit struct { OID string `json:"oid"` diff --git a/api/query_builder.go b/api/query_builder.go index 877f79788..3e54f4c60 100644 --- a/api/query_builder.go +++ b/api/query_builder.go @@ -132,6 +132,17 @@ var prCommits = shortenQuery(` } `) +var autoMergeRequest = shortenQuery(` + autoMergeRequest { + authorEmail, + commitBody, + commitHeadline, + mergeMethod, + enabledAt, + enabledBy{login,...on User{id,name}} + } +`) + func StatusCheckRollupGraphQL(after string) string { var afterClause string if after != "" { @@ -231,6 +242,7 @@ var IssueFields = []string{ var PullRequestFields = append(IssueFields, "additions", + "autoMergeRequest", "baseRefName", "changedFiles", "commits", @@ -285,6 +297,8 @@ func IssueGraphQL(fields []string) string { q = append(q, `mergeCommit{oid}`) case "potentialMergeCommit": q = append(q, `potentialMergeCommit{oid}`) + case "autoMergeRequest": + q = append(q, autoMergeRequest) case "comments": q = append(q, issueComments) case "lastComment": // pseudo-field