diff --git a/packages/app/src/git/policy.test.ts b/packages/app/src/git/policy.test.ts index 4b21be423..d58549fa8 100644 --- a/packages/app/src/git/policy.test.ts +++ b/packages/app/src/git/policy.test.ts @@ -692,6 +692,7 @@ describe("git-actions-policy", () => { }), ); + expect(actions.primary).toMatchObject({ id: "pr", label: "View PR" }); expect(actions.secondary).toEqual( expect.arrayContaining([ expect.objectContaining({ diff --git a/packages/app/src/git/policy.ts b/packages/app/src/git/policy.ts index f249df4d7..f70f24a26 100644 --- a/packages/app/src/git/policy.ts +++ b/packages/app/src/git/policy.ts @@ -342,6 +342,9 @@ function getPrimaryActionId(input: BuildGitActionsInput): GitActionId | null { if (canEnablePrAutoMerge(input)) { return getDefaultEnablePullRequestAutoMergeActionId(input); } + if (hasEnabledPrAutoMerge(input)) { + return "pr"; + } if (!input.isOnBaseBranch && input.aheadCount > 0) { return "merge-branch"; } @@ -554,6 +557,16 @@ function canEnablePrAutoMerge(input: BuildGitActionsInput): boolean { ); } +function hasEnabledPrAutoMerge(input: BuildGitActionsInput): boolean { + return ( + input.githubFeaturesEnabled && + input.hasPullRequest && + input.pullRequestUrl !== null && + hasPullRequestGithubFacts(input.pullRequestGithub) && + input.pullRequestGithub.autoMergeRequest !== null + ); +} + function getPullUnavailableMessage(input: BuildGitActionsInput): string | undefined { if (!input.hasRemote) { return "Pull isn't available here because this branch is not connected to a remote yet";