mirror of
https://github.com/ReCloudStudio/WebHooker.git
synced 2026-09-22 16:11:29 +00:00
fix(push): render git push branch deletions as a delete message
This commit is contained in:
parent
cc3ccadc24
commit
84d8a5384d
2 changed files with 44 additions and 0 deletions
|
|
@ -25,8 +25,30 @@ export function formatPush(
|
||||||
const baseUrl = repoBaseUrl(payload, repo);
|
const baseUrl = repoBaseUrl(payload, repo);
|
||||||
const forced = payload.forced as boolean | undefined;
|
const forced = payload.forced as boolean | undefined;
|
||||||
const created = payload.created as boolean | undefined;
|
const created = payload.created as boolean | undefined;
|
||||||
|
const deleted = payload.deleted as boolean | undefined;
|
||||||
const em = (e: string): string => emojiPrefix(e, showEmoji);
|
const em = (e: string): string => emojiPrefix(e, showEmoji);
|
||||||
|
|
||||||
|
// A branch/tag deletion pushed via `git push --delete` arrives as a push
|
||||||
|
// event with `deleted: true` and no commits — render it like the `delete`
|
||||||
|
// event instead of a confusing "0 commits pushed".
|
||||||
|
if (deleted) {
|
||||||
|
const refType = isTagPush ? "tag" : "branch";
|
||||||
|
return buildMessage(
|
||||||
|
{
|
||||||
|
author,
|
||||||
|
title: t("events.delete.title", {
|
||||||
|
repo: repo ?? t("common.repository"),
|
||||||
|
emoji: em(isTagPush ? "🏷️" : "🌿"),
|
||||||
|
type: refType,
|
||||||
|
ref: isTagPush ? tagLink(baseUrl, rawRef, ref) : branchLink(baseUrl, rawRef, ref),
|
||||||
|
}),
|
||||||
|
color: GITHUB_COLORS.delete,
|
||||||
|
},
|
||||||
|
t,
|
||||||
|
repo,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
const descriptionParts: string[] = [];
|
const descriptionParts: string[] = [];
|
||||||
|
|
||||||
if (forced) {
|
if (forced) {
|
||||||
|
|
|
||||||
|
|
@ -299,6 +299,28 @@ describe("group emoji toggle", () => {
|
||||||
expect(msg.description).not.toContain("🔗");
|
expect(msg.description).not.toContain("🔗");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("push with deleted:true renders as a branch deletion", () => {
|
||||||
|
const msg = formatEvent(
|
||||||
|
route,
|
||||||
|
event("push", {
|
||||||
|
ref: "refs/heads/dependabot/npm_and_yarn/multi-e1b34b8be3",
|
||||||
|
before: "abcd1234ef",
|
||||||
|
after: "0000000000000000000000000000000000000000",
|
||||||
|
created: false,
|
||||||
|
forced: false,
|
||||||
|
deleted: true,
|
||||||
|
commits: [],
|
||||||
|
repository: repo,
|
||||||
|
sender,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
expect(msg.title).toBe(
|
||||||
|
"acme/widget: 🌿 Deleted branch [`dependabot/npm_and_yarn/multi-e1b34b8be3`](https://github.com/acme/widget/tree/dependabot/npm_and_yarn/multi-e1b34b8be3)",
|
||||||
|
);
|
||||||
|
expect(msg.description).toBeUndefined();
|
||||||
|
expect(msg.fields).toBeUndefined();
|
||||||
|
});
|
||||||
|
|
||||||
it("push commit renders linked short hash with plain-text message", () => {
|
it("push commit renders linked short hash with plain-text message", () => {
|
||||||
const msg = formatEvent(
|
const msg = formatEvent(
|
||||||
route,
|
route,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue