Fix git action priorities (#1488)
This commit is contained in:
@@ -190,6 +190,25 @@ describe("git-actions-policy", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("prioritizes push over pull request merge when local commits are unpushed", () => {
|
||||
const actions = buildGitActions(
|
||||
createInput({
|
||||
hasRemote: true,
|
||||
isOnBaseBranch: false,
|
||||
aheadCount: 2,
|
||||
aheadOfOrigin: 2,
|
||||
hasPullRequest: true,
|
||||
pullRequestUrl: "https://example.com/pr/456",
|
||||
pullRequestState: "open",
|
||||
pullRequestMergeable: "MERGEABLE",
|
||||
pullRequestGithub: githubStatus(),
|
||||
shipDefault: "pr",
|
||||
}),
|
||||
);
|
||||
|
||||
expect(actions.primary).toMatchObject({ id: "push", label: "Push" });
|
||||
});
|
||||
|
||||
it("shows update-from-base only on feature branches that are behind the base branch", () => {
|
||||
const actions = buildGitActions(
|
||||
createInput({
|
||||
@@ -358,7 +377,7 @@ describe("git-actions-policy", () => {
|
||||
|
||||
expect(actions.primary).toMatchObject({
|
||||
id: "merge-pr-squash",
|
||||
label: "Squash and merge",
|
||||
label: "Merge",
|
||||
});
|
||||
});
|
||||
|
||||
@@ -379,7 +398,7 @@ describe("git-actions-policy", () => {
|
||||
|
||||
expect(actions.primary).toMatchObject({
|
||||
id: "merge-pr-squash",
|
||||
label: "Squash and merge",
|
||||
label: "Merge",
|
||||
});
|
||||
});
|
||||
|
||||
@@ -439,11 +458,11 @@ describe("git-actions-policy", () => {
|
||||
|
||||
expect(actions.primary).toMatchObject({
|
||||
id: "merge-pr-squash",
|
||||
label: "Squash and merge",
|
||||
label: "Merge",
|
||||
});
|
||||
});
|
||||
|
||||
it("promotes Create PR over push and local merge when PR is the ship default", () => {
|
||||
it("promotes push over Create PR when local commits are unpushed", () => {
|
||||
const actions = buildGitActions(
|
||||
createInput({
|
||||
hasRemote: true,
|
||||
@@ -455,8 +474,8 @@ describe("git-actions-policy", () => {
|
||||
);
|
||||
|
||||
expect(actions.primary).toMatchObject({
|
||||
id: "pr",
|
||||
label: "Create PR",
|
||||
id: "push",
|
||||
label: "Push",
|
||||
});
|
||||
});
|
||||
|
||||
@@ -493,7 +512,7 @@ describe("git-actions-policy", () => {
|
||||
|
||||
expect(actions.primary).toMatchObject({
|
||||
id: "merge-pr-squash",
|
||||
label: "Squash and merge",
|
||||
label: "Merge",
|
||||
});
|
||||
expect(actions.secondary.some((action) => action.id === "merge-branch")).toBe(true);
|
||||
});
|
||||
@@ -564,7 +583,7 @@ describe("git-actions-policy", () => {
|
||||
},
|
||||
{
|
||||
id: "merge-pr-squash",
|
||||
label: "Squash and merge",
|
||||
label: "Merge",
|
||||
pendingLabel: "Merging PR...",
|
||||
successLabel: "PR merged",
|
||||
disabled: false,
|
||||
@@ -573,7 +592,7 @@ describe("git-actions-policy", () => {
|
||||
},
|
||||
{
|
||||
id: "merge-pr-merge",
|
||||
label: "Create a merge commit",
|
||||
label: "Merge",
|
||||
pendingLabel: "Merging PR...",
|
||||
successLabel: "PR merged",
|
||||
disabled: false,
|
||||
@@ -582,7 +601,7 @@ describe("git-actions-policy", () => {
|
||||
},
|
||||
{
|
||||
id: "merge-pr-rebase",
|
||||
label: "Rebase and merge",
|
||||
label: "Merge",
|
||||
pendingLabel: "Merging PR...",
|
||||
successLabel: "PR merged",
|
||||
disabled: false,
|
||||
@@ -684,7 +703,7 @@ describe("git-actions-policy", () => {
|
||||
);
|
||||
|
||||
expect(oldDaemonStatus.github).toBeUndefined();
|
||||
expect(actions.primary).toMatchObject({ id: "merge-pr-squash", label: "Squash and merge" });
|
||||
expect(actions.primary).toMatchObject({ id: "merge-pr-squash", label: "Merge" });
|
||||
expect(actions.secondary.map((action) => action.id)).toEqual([
|
||||
"pull",
|
||||
"push",
|
||||
@@ -725,7 +744,7 @@ describe("git-actions-policy", () => {
|
||||
|
||||
expect(actions.primary).toMatchObject({
|
||||
id: "enable-pr-auto-merge-squash",
|
||||
label: "Enable auto-merge with squash",
|
||||
label: "Auto merge",
|
||||
});
|
||||
expect(actions.secondary.map((action) => action.id)).toEqual([
|
||||
"pull",
|
||||
@@ -832,7 +851,7 @@ describe("git-actions-policy", () => {
|
||||
|
||||
expect(actions.primary).toMatchObject({
|
||||
id: "merge-pr-merge",
|
||||
label: "Create a merge commit",
|
||||
label: "Merge",
|
||||
});
|
||||
expect(actions.secondary.map((action) => action.id)).toEqual([
|
||||
"pull",
|
||||
|
||||
@@ -326,6 +326,9 @@ function getPrimaryActionId(input: BuildGitActionsInput): GitActionId | null {
|
||||
if (canPull(input)) {
|
||||
return "pull";
|
||||
}
|
||||
if (canPush(input)) {
|
||||
return "push";
|
||||
}
|
||||
if (canMergePr(input)) {
|
||||
return getDefaultDirectPullRequestMergeActionId(input);
|
||||
}
|
||||
@@ -338,9 +341,6 @@ function getPrimaryActionId(input: BuildGitActionsInput): GitActionId | null {
|
||||
if (input.shipDefault === "pr" && canUsePullRequestActionAsShipDefault(input)) {
|
||||
return "pr";
|
||||
}
|
||||
if (canPush(input)) {
|
||||
return "push";
|
||||
}
|
||||
if (!input.isOnBaseBranch && input.aheadCount > 0) {
|
||||
return "merge-branch";
|
||||
}
|
||||
|
||||
@@ -590,16 +590,16 @@ export const ar: TranslationResources = {
|
||||
success: "مؤرشف",
|
||||
},
|
||||
mergePr: {
|
||||
squash: "الاسكواش والاندماج",
|
||||
merge: "إنشاء التزام الدمج",
|
||||
rebase: "إعادة الأساس والدمج",
|
||||
squash: "دمج",
|
||||
merge: "دمج",
|
||||
rebase: "دمج",
|
||||
pending: "دمج PR...",
|
||||
success: "تم دمج PR",
|
||||
},
|
||||
autoMerge: {
|
||||
enableSquash: "تمكين الدمج التلقائي مع الاسكواش",
|
||||
enableMerge: "تمكين الدمج التلقائي مع التزام الدمج",
|
||||
enableRebase: "تمكين الدمج التلقائي مع rebase",
|
||||
enableSquash: "دمج تلقائي",
|
||||
enableMerge: "دمج تلقائي",
|
||||
enableRebase: "دمج تلقائي",
|
||||
enabled: "تم تمكين الدمج التلقائي",
|
||||
enabling: "تمكين الدمج التلقائي...",
|
||||
disabling: "تعطيل الدمج التلقائي...",
|
||||
|
||||
@@ -588,16 +588,16 @@ export const en = {
|
||||
success: "Archived",
|
||||
},
|
||||
mergePr: {
|
||||
squash: "Squash and merge",
|
||||
merge: "Create a merge commit",
|
||||
rebase: "Rebase and merge",
|
||||
squash: "Merge",
|
||||
merge: "Merge",
|
||||
rebase: "Merge",
|
||||
pending: "Merging PR...",
|
||||
success: "PR merged",
|
||||
},
|
||||
autoMerge: {
|
||||
enableSquash: "Enable auto-merge with squash",
|
||||
enableMerge: "Enable auto-merge with merge commit",
|
||||
enableRebase: "Enable auto-merge with rebase",
|
||||
enableSquash: "Auto merge",
|
||||
enableMerge: "Auto merge",
|
||||
enableRebase: "Auto merge",
|
||||
enabled: "Auto-merge enabled",
|
||||
enabling: "Enabling auto-merge...",
|
||||
disabling: "Disabling auto-merge...",
|
||||
|
||||
@@ -595,16 +595,16 @@ export const es: TranslationResources = {
|
||||
success: "Archivado",
|
||||
},
|
||||
mergePr: {
|
||||
squash: "Aplastar y fusionar",
|
||||
merge: "Crear una confirmación de fusión",
|
||||
rebase: "Rebase y fusionar",
|
||||
squash: "Fusionar",
|
||||
merge: "Fusionar",
|
||||
rebase: "Fusionar",
|
||||
pending: "FusionandoPR...",
|
||||
success: "PRfusionado",
|
||||
},
|
||||
autoMerge: {
|
||||
enableSquash: "Habilitar la fusión automática con squash",
|
||||
enableMerge: "Habilitar la fusión automática con confirmación de fusión",
|
||||
enableRebase: "Habilitar la fusión automática con rebase",
|
||||
enableSquash: "Fusión automática",
|
||||
enableMerge: "Fusión automática",
|
||||
enableRebase: "Fusión automática",
|
||||
enabled: "Combinación automática habilitada",
|
||||
enabling: "Habilitando la fusión automática...",
|
||||
disabling: "Desactivando la fusión automática...",
|
||||
|
||||
@@ -595,16 +595,16 @@ export const fr: TranslationResources = {
|
||||
success: "Archivé",
|
||||
},
|
||||
mergePr: {
|
||||
squash: "Écraser et fusionner",
|
||||
merge: "Créer un commit de fusion",
|
||||
rebase: "Rebase et fusionner",
|
||||
squash: "Fusionner",
|
||||
merge: "Fusionner",
|
||||
rebase: "Fusionner",
|
||||
pending: "Fusion dePR...",
|
||||
success: "PRfusionné",
|
||||
},
|
||||
autoMerge: {
|
||||
enableSquash: "Activer la fusion automatique avec squash",
|
||||
enableMerge: "Activer la fusion automatique avec la validation de fusion",
|
||||
enableRebase: "Activer la fusion automatique avec rebase",
|
||||
enableSquash: "Fusion automatique",
|
||||
enableMerge: "Fusion automatique",
|
||||
enableRebase: "Fusion automatique",
|
||||
enabled: "Fusion automatique activée",
|
||||
enabling: "Activation de la fusion automatique...",
|
||||
disabling: "Désactivation de la fusion automatique...",
|
||||
|
||||
@@ -594,16 +594,16 @@ export const ru: TranslationResources = {
|
||||
success: "В архиве",
|
||||
},
|
||||
mergePr: {
|
||||
squash: "Сжать и объединить",
|
||||
merge: "Создать коммит слияния",
|
||||
rebase: "Перебазировать и объединить",
|
||||
squash: "Объединить",
|
||||
merge: "Объединить",
|
||||
rebase: "Объединить",
|
||||
pending: "Объединение PR...",
|
||||
success: "PR объединен",
|
||||
},
|
||||
autoMerge: {
|
||||
enableSquash: "Включить автоматическое объединение со сквошом",
|
||||
enableMerge: "Включить автоматическое слияние с фиксацией слияния",
|
||||
enableRebase: "Включить автоматическое слияние с перебазированием",
|
||||
enableSquash: "Автообъединение",
|
||||
enableMerge: "Автообъединение",
|
||||
enableRebase: "Автообъединение",
|
||||
enabled: "Автоматическое объединение включено",
|
||||
enabling: "Включение автоматического объединения...",
|
||||
disabling: "Отключение автоматического объединения...",
|
||||
|
||||
@@ -588,16 +588,16 @@ export const zhCN: TranslationResources = {
|
||||
success: "已归档",
|
||||
},
|
||||
mergePr: {
|
||||
squash: "Squash and merge",
|
||||
merge: "Create a merge commit",
|
||||
rebase: "Rebase and merge",
|
||||
squash: "Merge",
|
||||
merge: "Merge",
|
||||
rebase: "Merge",
|
||||
pending: "正在 merge PR...",
|
||||
success: "PR 已 merge",
|
||||
},
|
||||
autoMerge: {
|
||||
enableSquash: "启用 squash auto-merge",
|
||||
enableMerge: "启用 merge commit auto-merge",
|
||||
enableRebase: "启用 rebase auto-merge",
|
||||
enableSquash: "Auto merge",
|
||||
enableMerge: "Auto merge",
|
||||
enableRebase: "Auto merge",
|
||||
enabled: "Auto-merge 已启用",
|
||||
enabling: "正在启用 auto-merge...",
|
||||
disabling: "正在禁用 auto-merge...",
|
||||
|
||||
Reference in New Issue
Block a user