diff --git a/cli.js b/cli.js index 8460a5e..a0fe3c1 100755 --- a/cli.js +++ b/cli.js @@ -1,3 +1,6 @@ -import { resolve } from "path"; -process.argv.splice(2, 0, resolve("script.js")); -await import("@octoherd/cli"); +#!/usr/bin/env node + +import { script } from "./script.js"; +import { run } from "@octoherd/cli/run"; + +run(script); diff --git a/package-lock.json b/package-lock.json index de37e76..6901e29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,38 +28,24 @@ } }, "@octoherd/cli": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@octoherd/cli/-/cli-2.6.0.tgz", - "integrity": "sha512-Fc3yOgpeDFC9LSNi1M+EvCqz+TfnrAKlG5ZIvzwRe559ZQhANGxPMnDzzlkTPLNUa5QLGNcpPWdM/rADvsqyvw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@octoherd/cli/-/cli-2.7.1.tgz", + "integrity": "sha512-dDy9/SvTkcGl4e6GUeW53CpFIVo7T4BO6x4xQIbU/R/K40xy3S7UQC9qyHjciJPCjHMbTFybNPHejZ/Ptrtvtg==", "requires": { "@octoherd/octokit": "^2.3.0", + "@octokit/openapi-types": "^5.2.2", "chalk": "^4.1.0", "jsonfile": "^6.0.1", "mkdirp": "^1.0.4", "prompt-confirm": "^2.0.4", "tempy": "^1.0.0", "yargs": "^15.4.1" - }, - "dependencies": { - "@octoherd/octokit": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@octoherd/octokit/-/octokit-2.3.1.tgz", - "integrity": "sha512-r4ebOpHfFNNQ11quOiEnzCpebLEmQUMNqIeE8JmfQ5s9pqeNnYqBFR0HK0cto5g7ptR6Gl02TtChb94HetBmEQ==", - "requires": { - "@octokit/core": "^3.2.5", - "@octokit/plugin-paginate-rest": "^2.9.1", - "@octokit/plugin-retry": "^3.0.7", - "@octokit/plugin-throttling": "^3.4.1", - "quick-format-unescaped": "^4.0.1" - } - } } }, "@octoherd/octokit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@octoherd/octokit/-/octokit-2.2.0.tgz", - "integrity": "sha512-O+ZhjLYl4I/PGOq44fuOwxTqR6AJc6TS++blh1ByoyDKRyN8c8OAL9Sj4Hvf54deBunNQsqX4EiWiAbSknJhmA==", - "dev": true, + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@octoherd/octokit/-/octokit-2.3.1.tgz", + "integrity": "sha512-r4ebOpHfFNNQ11quOiEnzCpebLEmQUMNqIeE8JmfQ5s9pqeNnYqBFR0HK0cto5g7ptR6Gl02TtChb94HetBmEQ==", "requires": { "@octokit/core": "^3.2.5", "@octokit/plugin-paginate-rest": "^2.9.1", @@ -110,17 +96,16 @@ } }, "@octokit/openapi-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-2.0.0.tgz", - "integrity": "sha512-J4bfM7lf8oZvEAdpS71oTvC1ofKxfEZgU5vKVwzZKi4QPiL82udjpseJwxPid9Pu2FNmyRQOX4iEj6W1iOSnPw==", - "dev": true + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-5.2.2.tgz", + "integrity": "sha512-b3nHy/0uufJJsaZERwZM0syLRO6gfr6vvBPLewQxBKzzbhGDx1ygTyoELMNADD7mIPPzGMqbfdCeJTSeZueZwA==" }, "@octokit/plugin-paginate-rest": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.10.0.tgz", - "integrity": "sha512-71OsKBSMcQEu/6lfVbhv5C5ikU1rn10rKot/WiV7do7fyfElQ2eCUQFogHPbj0ci5lnKAjvahOiMAr6lcvL8Qw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.11.0.tgz", + "integrity": "sha512-7L9xQank2G3r1dGqrVPo1z62V5utbykOUzlmNHPz87Pww/JpZQ9KyG5CHtUzgmB4n5iDRKYNK/86A8D98HP0yA==", "requires": { - "@octokit/types": "^6.10.0" + "@octokit/types": "^6.11.0" } }, "@octokit/plugin-retry": { @@ -167,18 +152,11 @@ } }, "@octokit/types": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.10.1.tgz", - "integrity": "sha512-hgNC5jxKG8/RlqxU/6GThkGrvFpz25+cPzjQjyiXTNBvhyltn2Z4GhFY25+kbtXwZ4Co4zM0goW5jak1KLp1ug==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.11.2.tgz", + "integrity": "sha512-EKQRFZU/oOfUlqk9ntLIE5UO/bcOx8exFpdXGBciJP90f05me3mza0sacIpqVqmiIQP3nJsBjnZHMmtijE5XwQ==", "requires": { - "@octokit/openapi-types": "^5.1.0" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-5.1.1.tgz", - "integrity": "sha512-yMyaX9EDWCiyv7m85/K8L7bLFj1wrLdfDkKcZEZ6gNmepSW5mfSMFJnYwRINN7lF58wvevKPWvw0MYy6sxcFlQ==" - } + "@octokit/openapi-types": "^5.2.2" } }, "aggregate-error": { diff --git a/package.json b/package.json index a1f8a50..eb906ae 100644 --- a/package.json +++ b/package.json @@ -8,16 +8,13 @@ ], "author": "Gregor Martynus (https://twitter.com/gr2m)", "license": "ISC", - "devDependencies": { - "@octoherd/octokit": "^2.2.0", - "@octokit/openapi-types": "^2.0.0" - }, + "devDependencies": {}, "dependencies": { - "@octoherd/cli": "^2.6.0" + "@octoherd/cli": "^2.7.1" }, "exports": "./script.js", "bin": { - "octoherd-script-star-or-unstar": "cli.js" + "octoherd-script-star-or-unstar": "./cli.js" }, "release": { "branches": [ diff --git a/script.js b/script.js index dfbfb4e..501bf8a 100644 --- a/script.js +++ b/script.js @@ -1,17 +1,15 @@ /** * stars or unstars the passed repository based on the `unstar` option * - * @param {import('@octoherd/octokit').Octokit} octokit - * @param {import('@octokit/openapi-types').components["schemas"]["repository"]} repository + * @param {import('@octoherd/cli').Octokit} octokit + * @param {import('@octoherd/cli').Repository} repository * @param { {unstar?: boolean} } options Custom user options passed to the CLI */ export async function script(octokit, repository, options) { const method = options.unstar ? "DELETE" : "PUT"; - const id = repository.id; const owner = repository.owner.login; const repo = repository.name; - // https://docs.github.com/en/rest/reference/activity#check-if-a-repository-is-starred-by-the-authenticated-user const isStarred = await octokit .request("GET /user/starred/{owner}/{repo}", { @@ -22,7 +20,6 @@ export async function script(octokit, repository, options) { () => true, () => false ); - if ((options.unstar && !isStarred) || (!options.unstar && isStarred)) { octokit.log.debug( { @@ -36,7 +33,6 @@ export async function script(octokit, repository, options) { ); return; } - // https://docs.github.com/en/rest/reference/activity#star-a-repository-for-the-authenticated-user // https://docs.github.com/en/rest/reference/activity#unstar-a-repository-for-the-authenticated-user await octokit.request("/user/starred/{owner}/{repo}", { @@ -44,7 +40,6 @@ export async function script(octokit, repository, options) { owner, repo, }); - octokit.log.info( { change: options.unstar ? -1 : 1,