Skip to content
This repository was archived by the owner on Nov 13, 2024. It is now read-only.

Commit d416162

Browse files
committed
Fix issue where deleting tags failed
- Octokit's deleteRef function expects a ref without a preceding "ref/", so deleting a tag should have it be passed a string in the form of "tags/tagName". This was previously passing in a tag in the form of "refs/tags/tagName", which was an error.
1 parent 488bcdd commit d416162

File tree

4 files changed

+26
-28
lines changed

4 files changed

+26
-28
lines changed

dist/main.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7762,9 +7762,6 @@ Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);
77627762
}
77637763
});
77647764

7765-
// utils.ts
7766-
var createTagRef = (tagName) => `refs/tags/${tagName}`;
7767-
77687765
// index.ts
77697766
var import_github = __toESM(require_github());
77707767
var import_core = __toESM(require_core());
@@ -7783,17 +7780,20 @@ function log(header, message, level = "default") {
77837780
}
77847781
}
77857782
async function deleteTag(octokit, { owner, repo }, tagName) {
7786-
const ref = createTagRef(tagName);
77877783
try {
77887784
await octokit.rest.git.deleteRef({
77897785
owner,
77907786
repo,
7791-
ref
7787+
ref: `tags/${tagName}`
77927788
});
77937789
log("\u2705", `"${tagName}" deleted successfully!`);
77947790
} catch (error2) {
77957791
if (error2 instanceof Error) {
7796-
log("\u{1F336}", `failed to delete ref "${ref}" <- ${error2.message}`, "error");
7792+
log(
7793+
"\u{1F6D1}",
7794+
`failed to delete tag "${tagName}" <- ${error2.message}`,
7795+
"error"
7796+
);
77977797
if (error2.message === "Reference does not exist") {
77987798
log(
77997799
"\u{1F615}",
@@ -7802,15 +7802,15 @@ async function deleteTag(octokit, { owner, repo }, tagName) {
78027802
);
78037803
} else {
78047804
log(
7805-
"\u{1F336}",
7805+
"\u{1F6D1}",
78067806
`An error occurred while deleting the tag "${tagName}"`,
78077807
"error"
78087808
);
78097809
process.exit(1);
78107810
}
78117811
} else {
78127812
log(
7813-
"\u{1F336}",
7813+
"\u{1F6D1}",
78147814
`An error occurred while deleting the tag "${tagName}"`,
78157815
"error"
78167816
);
@@ -7828,9 +7828,9 @@ async function deleteReleases(octokit, qualifiedRepo, tagName) {
78287828
releaseIds = (releases.data ?? []).filter(({ tag_name, draft }) => tag_name === tagName && !draft).map(({ id }) => id);
78297829
} catch (error2) {
78307830
if (error2 instanceof Error) {
7831-
log("\u{1F336}", `failed to get list of releases <- ${error2.message}`, "error");
7831+
log("\u{1F6D1}", `failed to get list of releases <- ${error2.message}`, "error");
78327832
} else {
7833-
log("\u{1F336}", `failed to get list of releases <- ${error2}`, "error");
7833+
log("\u{1F6D1}", `failed to get list of releases <- ${error2}`, "error");
78347834
}
78357835
process.exit(1);
78367836
return;
@@ -7849,13 +7849,13 @@ async function deleteReleases(octokit, qualifiedRepo, tagName) {
78497849
} catch (error2) {
78507850
if (error2 instanceof Error) {
78517851
log(
7852-
"\u{1F336}",
7852+
"\u{1F6D1}",
78537853
`failed to delete release with id "${release_id}" <- ${error2.message}`,
78547854
"error"
78557855
);
78567856
} else {
78577857
log(
7858-
"\u{1F336}",
7858+
"\u{1F6D1}",
78597859
`failed to delete release with id "${release_id}" <- ${error2}`,
78607860
"error"
78617861
);
@@ -7875,7 +7875,7 @@ function getRepo() {
78757875
};
78767876
} else if (inputRepo || inputOwner) {
78777877
log(
7878-
"\u{1F336}",
7878+
"\u{1F6D1}",
78797879
`a valid repo was not given. Expected "${inputRepoData}" to be in the form of "owner/repo"`
78807880
);
78817881
process.exit(1);
@@ -7898,7 +7898,7 @@ function getGitHubToken() {
78987898
return tokenFromEnv;
78997899
}
79007900
log(
7901-
"\u{1F336}",
7901+
"\u{1F6D1}",
79027902
'A valid GitHub token was not provided. Provide it as an input with the name "github_token"',
79037903
"error"
79047904
);
@@ -7928,7 +7928,7 @@ function getInputs() {
79287928
}
79297929
function validateInputField(isValid, invalidMessage) {
79307930
if (!isValid) {
7931-
log("\u{1F336}", invalidMessage, "error");
7931+
log("\u{1F6D1}", invalidMessage, "error");
79327932
process.exit(1);
79337933
}
79347934
}

index.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ describe("Delete tags and releases", () => {
219219
expect(deleteRef).toHaveBeenCalledWith({
220220
owner: "a-fake-user",
221221
repo: "a-fake-repo",
222-
ref: "refs/tags/a-fake-tag",
222+
ref: "tags/a-fake-tag",
223223
});
224224
});
225225

@@ -267,7 +267,7 @@ describe("Delete tags and releases", () => {
267267
expect(deleteRef).toHaveBeenCalledWith({
268268
owner: "a-fake-user",
269269
repo: "a-fake-repo",
270-
ref: "refs/tags/a-fake-tag",
270+
ref: "tags/a-fake-tag",
271271
});
272272
expect(listReleases).toHaveBeenCalledTimes(1);
273273
expect(listReleases).toBeCalledWith({
@@ -330,7 +330,7 @@ describe("Delete tags and releases", () => {
330330
expect(deleteRef).toHaveBeenCalledWith({
331331
owner: "a-fake-user",
332332
repo: "a-fake-repo",
333-
ref: "refs/tags/a-fake-tag",
333+
ref: "tags/a-fake-tag",
334334
});
335335
expect(listReleases).toHaveBeenCalledTimes(1);
336336
expect(listReleases).toBeCalledWith({

index.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { createTagRef } from "./utils";
21
import { context, getOctokit } from "@actions/github";
32
import {
43
error,
@@ -56,25 +55,29 @@ function log(
5655
* @param octokit The Octokit instance to use for making API calls to GitHub.
5756
* @param owner The owner of the repo with the releases to delete.
5857
* @param repo The repo with the releases to delete.
59-
* @param tagName
58+
* @param tagName The name of the tag to delete. This is expected to be solely the tag name, not the name of a
59+
* git reference.
6060
*/
6161
async function deleteTag(
6262
octokit: Octokit,
6363
{ owner, repo }: QualifiedRepo,
6464
tagName: string
6565
): Promise<void> {
66-
const ref = createTagRef(tagName);
6766
try {
6867
await octokit.rest.git.deleteRef({
6968
owner,
7069
repo,
71-
ref,
70+
ref: `tags/${tagName}`,
7271
});
7372

7473
log("✅", `"${tagName}" deleted successfully!`);
7574
} catch (error) {
7675
if (error instanceof Error) {
77-
log("🛑", `failed to delete ref "${ref}" <- ${error.message}`, "error");
76+
log(
77+
"🛑",
78+
`failed to delete tag "${tagName}" <- ${error.message}`,
79+
"error"
80+
);
7881
if (error.message === "Reference does not exist") {
7982
log(
8083
"😕",

utils.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)