Files
Sebastian Poxhofer 7b25e97ba3 feat(github): add support for using merge queues without auto merge (#45721)
* feat(github): add experimental support for using merge queues without auto merge

* test(github): use vi.stubEnv for merge queue env flag

* fix(github): do not re-enqueue PRs already waiting in the merge queue

* refactor(github): reuse merge queue detection from #45252 for isBranchMergeQueueEnabled

* refactor(github): read the base branch from the PR instead of extending MergePRConfig

* feat(github): enable merge queue support without the RENOVATE_X_GITHUB_MERGE_QUEUE flag

* Apply suggestion from @secustor
2026-09-09 15:21:45 +00:00

131 lines
2.3 KiB
TypeScript

export const repoInfoQuery = `
query($owner: String!, $name: String!, $user: String) {
repository(owner: $owner, name: $name) {
id
sshUrl
isFork
parent {
nameWithOwner
}
isArchived
nameWithOwner
hasIssuesEnabled
hasVulnerabilityAlertsEnabled
autoMergeAllowed
mergeCommitAllowed
rebaseMergeAllowed
squashMergeAllowed
mergeQueue { id }
defaultBranchRef {
name
target {
oid
}
}
issues(
orderBy: { field: UPDATED_AT, direction: DESC },
filterBy: { createdBy: $user },
first: 5
) {
nodes {
number
state
title
body
updatedAt
}
}
}
}
`;
export const getIssuesQuery = `
query(
$owner: String!,
$name: String!,
$user: String,
$count: Int,
$cursor: String
) {
repository(owner: $owner, name: $name) {
issues(
orderBy: { field: UPDATED_AT, direction: DESC },
filterBy: { createdBy: $user },
first: $count,
after: $cursor
) {
pageInfo {
endCursor
hasNextPage
}
nodes {
number
state
title
body
updatedAt
}
}
}
}
`;
export const repoMergeQueueQuery = `
query($owner: String!, $name: String!, $branch: String!) {
repository(owner: $owner, name: $name) {
mergeQueue(branch: $branch) {
id
}
}
}
`;
export const prIsInMergeQueueQuery = `
query($owner: String!, $name: String!, $number: Int!) {
repository(owner: $owner, name: $name) {
pullRequest(number: $number) {
isInMergeQueue
}
}
}
`;
export const enqueuePullRequestMutation = `
mutation EnqueuePullRequest(
$pullRequestId: ID!,
) {
enqueuePullRequest(
input: {
pullRequestId: $pullRequestId,
}
) {
mergeQueueEntry {
id
position
}
}
}
`;
export const enableAutoMergeMutation = `
mutation EnablePullRequestAutoMerge(
$pullRequestId: ID!,
$mergeMethod: PullRequestMergeMethod!,
$commitHeadline: String,
$commitBody: String,
) {
enablePullRequestAutoMerge(
input: {
pullRequestId: $pullRequestId,
mergeMethod: $mergeMethod,
commitHeadline: $commitHeadline,
commitBody: $commitBody,
}
) {
pullRequest {
number
}
}
}
`;