Clarify PR merge action labels (#1608)

* fix: disambiguate merge PR action labels (squash/merge/rebase)

* Clarify PR merge method labels

* Address merge label review feedback

---------

Co-authored-by: Matt Cowger <matt@cowger.us>
This commit is contained in:
Mohamed Boudra
2026-06-19 12:04:52 +08:00
committed by GitHub
co-authored by Matt Cowger
parent e73b1c4724
commit f9660c7e89
7 changed files with 88 additions and 50 deletions
+48 -10
View File
@@ -377,7 +377,7 @@ describe("git-actions-policy", () => {
expect(actions.primary).toMatchObject({
id: "merge-pr-squash",
label: "Merge",
label: "Merge PR (squash)",
});
});
@@ -398,7 +398,7 @@ describe("git-actions-policy", () => {
expect(actions.primary).toMatchObject({
id: "merge-pr-squash",
label: "Merge",
label: "Merge PR (squash)",
});
});
@@ -458,7 +458,7 @@ describe("git-actions-policy", () => {
expect(actions.primary).toMatchObject({
id: "merge-pr-squash",
label: "Merge",
label: "Merge PR (squash)",
});
});
@@ -512,7 +512,7 @@ describe("git-actions-policy", () => {
expect(actions.primary).toMatchObject({
id: "merge-pr-squash",
label: "Merge",
label: "Merge PR (squash)",
});
expect(actions.secondary.some((action) => action.id === "merge-branch")).toBe(true);
});
@@ -583,7 +583,7 @@ describe("git-actions-policy", () => {
},
{
id: "merge-pr-squash",
label: "Merge",
label: "Merge PR (squash)",
pendingLabel: "Merging PR...",
successLabel: "PR merged",
disabled: false,
@@ -592,7 +592,7 @@ describe("git-actions-policy", () => {
},
{
id: "merge-pr-merge",
label: "Merge",
label: "Merge PR (merge)",
pendingLabel: "Merging PR...",
successLabel: "PR merged",
disabled: false,
@@ -601,7 +601,7 @@ describe("git-actions-policy", () => {
},
{
id: "merge-pr-rebase",
label: "Merge",
label: "Merge PR (rebase)",
pendingLabel: "Merging PR...",
successLabel: "PR merged",
disabled: false,
@@ -703,7 +703,10 @@ describe("git-actions-policy", () => {
);
expect(oldDaemonStatus.github).toBeUndefined();
expect(actions.primary).toMatchObject({ id: "merge-pr-squash", label: "Merge" });
expect(actions.primary).toMatchObject({
id: "merge-pr-squash",
label: "Merge PR (squash)",
});
expect(actions.secondary.map((action) => action.id)).toEqual([
"pull",
"push",
@@ -744,7 +747,7 @@ describe("git-actions-policy", () => {
expect(actions.primary).toMatchObject({
id: "enable-pr-auto-merge-squash",
label: "Auto merge",
label: "Auto merge (squash)",
});
expect(actions.secondary.map((action) => action.id)).toEqual([
"pull",
@@ -762,6 +765,41 @@ describe("git-actions-policy", () => {
).toBe(false);
});
it.each([
["SQUASH", "enable-pr-auto-merge-squash", "Auto merge (squash)"],
["MERGE", "enable-pr-auto-merge-merge", "Auto merge (merge)"],
["REBASE", "enable-pr-auto-merge-rebase", "Auto merge (rebase)"],
] as const)(
"labels the %s auto-merge action with its method",
(viewerDefaultMergeMethod, id, label) => {
const actions = buildGitActions(
createInput({
hasRemote: true,
isOnBaseBranch: false,
aheadCount: 2,
hasPullRequest: true,
pullRequestUrl: "https://example.com/pr/993",
pullRequestState: "open",
pullRequestMergeable: "MERGEABLE",
pullRequestGithub: githubStatus({
mergeStateStatus: "BLOCKED",
viewerCanEnableAutoMerge: true,
repository: {
autoMergeAllowed: true,
mergeCommitAllowed: true,
squashMergeAllowed: true,
rebaseMergeAllowed: true,
viewerDefaultMergeMethod,
},
}),
shipDefault: "pr",
}),
);
expect(actions.primary).toMatchObject({ id, label });
},
);
it("does not offer auto-merge when the daemon feature gate is missing", () => {
const actions = buildGitActions(
createInput({
@@ -851,7 +889,7 @@ describe("git-actions-policy", () => {
expect(actions.primary).toMatchObject({
id: "merge-pr-merge",
label: "Merge",
label: "Merge PR (merge)",
});
expect(actions.secondary.map((action) => action.id)).toEqual([
"pull",
+6 -6
View File
@@ -604,16 +604,16 @@ export const ar: TranslationResources = {
success: "مؤرشف",
},
mergePr: {
squash: "دمج",
merge: "دمج",
rebase: "دمج",
squash: "دمج PR (squash)",
merge: "دمج PR (merge)",
rebase: "دمج PR (rebase)",
pending: "دمج PR...",
success: "تم دمج PR",
},
autoMerge: {
enableSquash: "دمج تلقائي",
enableMerge: "دمج تلقائي",
enableRebase: "دمج تلقائي",
enableSquash: "دمج تلقائي (squash)",
enableMerge: "دمج تلقائي (merge)",
enableRebase: "دمج تلقائي (rebase)",
enabled: "تم تمكين الدمج التلقائي",
enabling: "تمكين الدمج التلقائي...",
disabling: "تعطيل الدمج التلقائي...",
+6 -6
View File
@@ -603,16 +603,16 @@ export const en = {
success: "Archived",
},
mergePr: {
squash: "Merge",
merge: "Merge",
rebase: "Merge",
squash: "Merge PR (squash)",
merge: "Merge PR (merge)",
rebase: "Merge PR (rebase)",
pending: "Merging PR...",
success: "PR merged",
},
autoMerge: {
enableSquash: "Auto merge",
enableMerge: "Auto merge",
enableRebase: "Auto merge",
enableSquash: "Auto merge (squash)",
enableMerge: "Auto merge (merge)",
enableRebase: "Auto merge (rebase)",
enabled: "Auto-merge enabled",
enabling: "Enabling auto-merge...",
disabling: "Disabling auto-merge...",
+8 -8
View File
@@ -610,16 +610,16 @@ export const es: TranslationResources = {
success: "Archivado",
},
mergePr: {
squash: "Fusionar",
merge: "Fusionar",
rebase: "Fusionar",
pending: "FusionandoPR...",
success: "PRfusionado",
squash: "Fusionar PR (squash)",
merge: "Fusionar PR (merge)",
rebase: "Fusionar PR (rebase)",
pending: "Fusionando PR...",
success: "PR fusionado",
},
autoMerge: {
enableSquash: "Fusión automática",
enableMerge: "Fusión automática",
enableRebase: "Fusión automática",
enableSquash: "Fusión automática (squash)",
enableMerge: "Fusión automática (merge)",
enableRebase: "Fusión automática (rebase)",
enabled: "Combinación automática habilitada",
enabling: "Habilitando la fusión automática...",
disabling: "Desactivando la fusión automática...",
+8 -8
View File
@@ -610,16 +610,16 @@ export const fr: TranslationResources = {
success: "Archivé",
},
mergePr: {
squash: "Fusionner",
merge: "Fusionner",
rebase: "Fusionner",
pending: "Fusion dePR...",
success: "PRfusionné",
squash: "Fusionner PR (squash)",
merge: "Fusionner PR (merge)",
rebase: "Fusionner PR (rebase)",
pending: "Fusion de PR...",
success: "PR fusionné",
},
autoMerge: {
enableSquash: "Fusion automatique",
enableMerge: "Fusion automatique",
enableRebase: "Fusion automatique",
enableSquash: "Fusion automatique (squash)",
enableMerge: "Fusion automatique (merge)",
enableRebase: "Fusion automatique (rebase)",
enabled: "Fusion automatique activée",
enabling: "Activation de la fusion automatique...",
disabling: "Désactivation de la fusion automatique...",
+6 -6
View File
@@ -609,16 +609,16 @@ export const ru: TranslationResources = {
success: "В архиве",
},
mergePr: {
squash: "Объединить",
merge: "Объединить",
rebase: "Объединить",
squash: "Объединить PR (squash)",
merge: "Объединить PR (merge)",
rebase: "Объединить PR (rebase)",
pending: "Объединение PR...",
success: "PR объединен",
},
autoMerge: {
enableSquash: "Автообъединение",
enableMerge: "Автообъединение",
enableRebase: "Автообъединение",
enableSquash: "Автообъединение (squash)",
enableMerge: "Автообъединение (merge)",
enableRebase: "Автообъединение (rebase)",
enabled: "Автоматическое объединение включено",
enabling: "Включение автоматического объединения...",
disabling: "Отключение автоматического объединения...",
+6 -6
View File
@@ -602,16 +602,16 @@ export const zhCN: TranslationResources = {
success: "已归档",
},
mergePr: {
squash: "Merge",
merge: "Merge",
rebase: "Merge",
squash: "Merge PR (squash)",
merge: "Merge PR (merge)",
rebase: "Merge PR (rebase)",
pending: "正在 merge PR...",
success: "PR 已 merge",
},
autoMerge: {
enableSquash: "Auto merge",
enableMerge: "Auto merge",
enableRebase: "Auto merge",
enableSquash: "Auto merge (squash)",
enableMerge: "Auto merge (merge)",
enableRebase: "Auto merge (rebase)",
enabled: "Auto-merge 已启用",
enabling: "正在启用 auto-merge...",
disabling: "正在禁用 auto-merge...",