From 5c6b135bc19abf1b9af3a12e49bbb72a3b0b784d Mon Sep 17 00:00:00 2001 From: Richard Simko Date: Thu, 1 Dec 2022 11:21:58 +0100 Subject: [PATCH] Rewrote to TS --- .gitignore | 4 +++ action.yml | 2 +- dist/main.d.ts | 1 + dist/main.js | 56 ++++++++++++++++++++++++++++++++++++++++ dist/main.js.map | 1 + package.json | 6 +++++ src/{main.js => main.ts} | 28 +++++++++----------- tsconfig.json | 28 ++++++++++++++++++++ yarn.lock | 5 ++++ 9 files changed, 114 insertions(+), 17 deletions(-) create mode 100644 dist/main.d.ts create mode 100644 dist/main.js create mode 100644 dist/main.js.map rename src/{main.js => main.ts} (61%) create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore index 0562c9f9..c24dfd87 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,7 @@ typings/ # TernJS port file .tern-port + +node_modules/typescript +node_modules/.bin/tsc +node_modules/.bin/tsserver diff --git a/action.yml b/action.yml index 18115d03..6d242bfe 100644 --- a/action.yml +++ b/action.yml @@ -8,7 +8,7 @@ inputs: runs: using: "node16" - main: "src/main.js" + main: "dist/main.js" branding: icon: "tag" color: "green" diff --git a/dist/main.d.ts b/dist/main.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/dist/main.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/dist/main.js b/dist/main.js new file mode 100644 index 00000000..397baa31 --- /dev/null +++ b/dist/main.js @@ -0,0 +1,56 @@ +import core from "@actions/core"; +import github from "@actions/github"; +const context = github.context; +async function run() { + try { + const { GITHUB_SHA, GITHUB_TOKEN } = process.env; + const tagName = core.getInput("tag_name"); + if (!GITHUB_SHA) { + core.setFailed("Missing GITHUB_SHA"); + return; + } + if (!GITHUB_TOKEN) { + core.setFailed("Missing GITHUB_TOKEN"); + return; + } + if (!tagName) { + core.setFailed("Missing tag_name"); + return; + } + const octokit = github.getOctokit(GITHUB_TOKEN); + let ref; + try { + ref = await octokit.rest.git.getRef({ + ...context.repo, + ref: `tags/${tagName}`, + }); + } + catch (e) { + if (e.status === 404) { + // Ignore tag not existing + } + else { + throw e; + } + } + if (!ref) { + await octokit.rest.git.createRef({ + ...context.repo, + ref: `refs/tags/${tagName}`, + sha: GITHUB_SHA, + }); + } + else { + await octokit.rest.git.updateRef({ + ...context.repo, + ref: `tags/${tagName}`, + sha: GITHUB_SHA, + }); + } + } + catch (error) { + core.setFailed(error.message); + } +} +run(); +//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/dist/main.js.map b/dist/main.js.map new file mode 100644 index 00000000..bd67633c --- /dev/null +++ b/dist/main.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,eAAe,CAAC;AACjC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,KAAK,UAAU,GAAG;IAChB,IAAI;QACF,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACrC,OAAO;SACR;QAED,IAAI,CAAC,YAAY,EAAE;YACjB,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;YACvC,OAAO;SACR;QAED,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACnC,OAAO;SACR;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,GAAG,CAAC;QACR,IAAI;YACF,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBAClC,GAAG,OAAO,CAAC,IAAI;gBACf,GAAG,EAAE,QAAQ,OAAO,EAAE;aACvB,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE;gBACpB,0BAA0B;aAC3B;iBAAM;gBACL,MAAM,CAAC,CAAC;aACT;SACF;QACD,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC/B,GAAG,OAAO,CAAC,IAAI;gBACf,GAAG,EAAE,aAAa,OAAO,EAAE;gBAC3B,GAAG,EAAE,UAAU;aAChB,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC/B,GAAG,OAAO,CAAC,IAAI;gBACf,GAAG,EAAE,QAAQ,OAAO,EAAE;gBACtB,GAAG,EAAE,UAAU;aAChB,CAAC,CAAC;SACJ;KACF;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC/B;AACH,CAAC;AAED,GAAG,EAAE,CAAC"} \ No newline at end of file diff --git a/package.json b/package.json index 32fd928b..945d5daa 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,14 @@ "repository": "git@github.com:richardsimko/github-tag-action.git", "author": "Richard Simko ", "license": "MIT", + "scripts": { + "build": "tsc" + }, "dependencies": { "@actions/core": "^1.2.6", "@actions/github": "^5.0.0" + }, + "devDependencies": { + "typescript": "4.9.3" } } diff --git a/src/main.js b/src/main.ts similarity index 61% rename from src/main.js rename to src/main.ts index e9e68ae1..414cb50d 100644 --- a/src/main.js +++ b/src/main.ts @@ -1,34 +1,31 @@ -const core = require('@actions/core'); -const github = require('@actions/github'); +import core from "@actions/core"; +import github from "@actions/github"; const context = github.context; async function run() { - try { const { GITHUB_SHA, GITHUB_TOKEN } = process.env; - const tagName = core.getInput('tag_name'); + const tagName = core.getInput("tag_name"); if (!GITHUB_SHA) { - core.setFailed('Missing GITHUB_SHA'); + core.setFailed("Missing GITHUB_SHA"); return; } if (!GITHUB_TOKEN) { - core.setFailed('Missing GITHUB_TOKEN'); + core.setFailed("Missing GITHUB_TOKEN"); return; } if (!tagName) { - core.setFailed('Missing tag_name'); + core.setFailed("Missing tag_name"); return; } - const octokit = github.getOctokit(GITHUB_TOKEN); let ref; try { - - ref = await octokit.git.getRef({ + ref = await octokit.rest.git.getRef({ ...context.repo, - ref: `tags/${tagName}` + ref: `tags/${tagName}`, }); } catch (e) { if (e.status === 404) { @@ -38,19 +35,18 @@ async function run() { } } if (!ref) { - await octokit.git.createRef({ + await octokit.rest.git.createRef({ ...context.repo, ref: `refs/tags/${tagName}`, - sha: GITHUB_SHA + sha: GITHUB_SHA, }); } else { - await octokit.git.updateRef({ + await octokit.rest.git.updateRef({ ...context.repo, ref: `tags/${tagName}`, - sha: GITHUB_SHA + sha: GITHUB_SHA, }); } - } catch (error) { core.setFailed(error.message); } diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..b6d5cc18 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "allowUnusedLabels": false, + "allowUnreachableCode": false, + "alwaysStrict": true, + "noImplicitOverride": true, + "strictBindCallApply": true, + "strictFunctionTypes": true, + "module": "ESNext", + "moduleResolution": "node", + "declaration": true, + "target": "ES2022", + "allowJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, + "sourceMap": true, + "strictNullChecks": true, + "outDir": "dist" + }, + "ts-node": { + "files": true, + "swc": true + }, + "lib": ["ES2022"], + "include": ["**/*.ts"], + "exclude": ["node_modules", "dist/**/*.*"] +} diff --git a/yarn.lock b/yarn.lock index 233e5353..73382a1c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -152,6 +152,11 @@ tunnel@^0.0.6: resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== +typescript@4.9.3: + version "4.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" + integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== + universal-user-agent@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee"