diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e82eec0..d6dd879 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,7 +15,6 @@ jobs: - name: Comment PR with message uses: ./ - id: nrt_message with: message: | Current branch is `${{ github.head_ref }}`. @@ -56,11 +55,5 @@ jobs: comment_tag: nrt_create_if_not_exists create_if_not_exists: false - - name: Check outputs - run: | - echo "id : ${{ steps.nrt_message.outputs.id }}" - echo "body : ${{ steps.nrt_message.outputs.body }}" - echo "html_url : ${{ steps.nrt_message.outputs.html_url }}" - - name: (AFTER) Setup test cases run: rm /tmp/foobar.txt \ No newline at end of file diff --git a/.nvmrc b/.nvmrc index 5bacb9a..6e9d5a1 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20.8.1 \ No newline at end of file +16.13.1 \ No newline at end of file diff --git a/README.md b/README.md index 83b7dd6..959abc8 100644 --- a/README.md +++ b/README.md @@ -125,35 +125,6 @@ This will delete the comment at the end of the job. | `mode` | Mode that will be used to update comment (upsert/recreate/delete) | | upsert | | `create_if_not_exists` | Whether a comment should be created even if `comment_tag` is not found | | true | - -## Outputs - -### Action outputs - -You can get some outputs from this actions : - -| Name | Description | -| --- | --- | -| `id` | Comment id that was created or updated | -| `body` | Comment body | -| `html_url` | URL of the comment created or updated | - -### Example output - -```yaml -- name: Comment PR - uses: thollander/actions-comment-pull-request@v2 - id: hello - with: - message: | - Hello world ! :wave: -- name: Check outputs - run: | - echo "id : ${{ steps.hello.outputs.id }}" - echo "body : ${{ steps.hello.outputs.body }}" - echo "html_url : ${{ steps.hello.outputs.html_url }}" -``` - ## Permissions Depending on the permissions granted to your token, you may lack some rights. diff --git a/action.yml b/action.yml index 29d3903..c868e86 100644 --- a/action.yml +++ b/action.yml @@ -25,6 +25,6 @@ inputs: description: 'Whether a comment should be created even if comment_tag is not found.' default: 'true' runs: - using: 'node20' + using: 'node16' main: 'lib/index.js' post: 'lib/cleanup/index.js' diff --git a/lib/cleanup/index.js b/lib/cleanup/index.js index 4916287..c38436a 100644 --- a/lib/cleanup/index.js +++ b/lib/cleanup/index.js @@ -558,7 +558,7 @@ class OidcClient { .catch(error => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); + Error Message: ${error.result.message}`); }); const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { diff --git a/lib/index.js b/lib/index.js index c7410c4..1969ff3 100644 --- a/lib/index.js +++ b/lib/index.js @@ -558,7 +558,7 @@ class OidcClient { .catch(error => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); + Error Message: ${error.result.message}`); }); const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { @@ -9582,40 +9582,6 @@ async function run() { }); })); } - async function createComment({ owner, repo, issue_number, body, }) { - const { data: comment } = await octokit.rest.issues.createComment({ - owner, - repo, - issue_number, - body, - }); - core.setOutput('id', comment.id); - core.setOutput('body', comment.body); - core.setOutput('html_url', comment.html_url); - await addReactions(comment.id, reactions); - return comment; - } - async function updateComment({ owner, repo, comment_id, body, }) { - const { data: comment } = await octokit.rest.issues.updateComment({ - owner, - repo, - comment_id, - body, - }); - core.setOutput('id', comment.id); - core.setOutput('body', comment.body); - core.setOutput('html_url', comment.html_url); - await addReactions(comment.id, reactions); - return comment; - } - async function deleteComment({ owner, repo, comment_id }) { - const { data: comment } = await octokit.rest.issues.deleteComment({ - owner, - repo, - comment_id, - }); - return comment; - } const comment_tag_pattern = comment_tag ? `` : null; @@ -9632,23 +9598,25 @@ async function run() { } if (comment) { if (mode === 'upsert') { - await updateComment({ + await octokit.rest.issues.updateComment({ ...context.repo, comment_id: comment.id, body, }); + await addReactions(comment.id, reactions); return; } else if (mode === 'recreate') { - await deleteComment({ + await octokit.rest.issues.deleteComment({ ...context.repo, comment_id: comment.id, }); - await createComment({ + const { data: newComment } = await octokit.rest.issues.createComment({ ...context.repo, issue_number, body, }); + await addReactions(newComment.id, reactions); return; } else if (mode === 'delete') { @@ -9667,11 +9635,12 @@ async function run() { return; } } - await createComment({ + const { data: comment } = await octokit.rest.issues.createComment({ ...context.repo, issue_number, body, }); + await addReactions(comment.id, reactions); } catch (error) { if (error instanceof Error) { diff --git a/package-lock.json b/package-lock.json index 649c465..f78b919 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "actions-comment-pull-request", - "version": "2.5.0", + "version": "2.4.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "actions-comment-pull-request", - "version": "2.5.0", + "version": "2.4.2", "license": "MIT", "dependencies": { "@actions/core": "^1.10.1", @@ -16,11 +16,11 @@ "@actions/tool-cache": "^2.0.1" }, "devDependencies": { - "@tsconfig/node20": "^20.1.2", - "@types/node": "^20.8.1", - "@vercel/ncc": "^0.38.1", + "@tsconfig/node16": "^16.1.1", + "@types/node": "^18.16.2", + "@vercel/ncc": "^0.36.1", "prettier": "^3.0.3", - "typescript": "^5.3.3" + "typescript": "^5.2.2" } }, "node_modules/@actions/core": { @@ -187,25 +187,22 @@ "@octokit/openapi-types": "^12.11.0" } }, - "node_modules/@tsconfig/node20": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.2.tgz", - "integrity": "sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==", + "node_modules/@tsconfig/node16": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.1.tgz", + "integrity": "sha512-+pio93ejHN4nINX4pXqfnR/fPLRtJBaT4ORaa5RH0Oc1zoYmo2B2koG+M328CQhHKn1Wj6FcOxCDFXAot9NhvA==", "dev": true }, "node_modules/@types/node": { - "version": "20.8.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", - "integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==", - "dev": true, - "dependencies": { - "undici-types": "~5.25.1" - } + "version": "18.16.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.2.tgz", + "integrity": "sha512-GQW/JL/5Fz/0I8RpeBG9lKp0+aNcXEaVL71c0D2Q0QHDTFvlYKT7an0onCUXj85anv7b4/WesqdfchLc0jtsCg==", + "dev": true }, "node_modules/@vercel/ncc": { - "version": "0.38.1", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", - "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==", + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.1.tgz", + "integrity": "sha512-S4cL7Taa9yb5qbv+6wLgiKVZ03Qfkc4jGRuiUQMQ8HGBD5pcNRnHeYM33zBvJE4/zJGjJJ8GScB+WmTsn9mORw==", "dev": true, "bin": { "ncc": "dist/ncc/cli.js" @@ -293,9 +290,9 @@ } }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -305,12 +302,6 @@ "node": ">=14.17" } }, - "node_modules/undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", - "dev": true - }, "node_modules/universal-user-agent": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", @@ -501,25 +492,22 @@ "@octokit/openapi-types": "^12.11.0" } }, - "@tsconfig/node20": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.2.tgz", - "integrity": "sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==", + "@tsconfig/node16": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.1.tgz", + "integrity": "sha512-+pio93ejHN4nINX4pXqfnR/fPLRtJBaT4ORaa5RH0Oc1zoYmo2B2koG+M328CQhHKn1Wj6FcOxCDFXAot9NhvA==", "dev": true }, "@types/node": { - "version": "20.8.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", - "integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==", - "dev": true, - "requires": { - "undici-types": "~5.25.1" - } + "version": "18.16.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.2.tgz", + "integrity": "sha512-GQW/JL/5Fz/0I8RpeBG9lKp0+aNcXEaVL71c0D2Q0QHDTFvlYKT7an0onCUXj85anv7b4/WesqdfchLc0jtsCg==", + "dev": true }, "@vercel/ncc": { - "version": "0.38.1", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", - "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==", + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.1.tgz", + "integrity": "sha512-S4cL7Taa9yb5qbv+6wLgiKVZ03Qfkc4jGRuiUQMQ8HGBD5pcNRnHeYM33zBvJE4/zJGjJJ8GScB+WmTsn9mORw==", "dev": true }, "before-after-hook": { @@ -575,15 +563,9 @@ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" }, "typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true - }, - "undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true }, "universal-user-agent": { diff --git a/package.json b/package.json index 9db0901..2195921 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "actions-comment-pull-request", - "version": "2.5.0", + "version": "2.4.2", "description": "GitHub action for commenting pull-request", "main": "lib/main.js", "scripts": { @@ -34,10 +34,10 @@ "@actions/tool-cache": "^2.0.1" }, "devDependencies": { - "@tsconfig/node20": "^20.1.2", - "@types/node": "^20.8.1", - "@vercel/ncc": "^0.38.1", + "@tsconfig/node16": "^16.1.1", + "@types/node": "^18.16.2", + "@vercel/ncc": "^0.36.1", "prettier": "^3.0.3", - "typescript": "^5.3.3" + "typescript": "^5.2.2" } } diff --git a/src/main.ts b/src/main.ts index 62e1ee8..4e05a8c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -55,70 +55,6 @@ async function run() { ); } - async function createComment({ - owner, - repo, - issue_number, - body, - }: { - owner: string; - repo: string; - issue_number: number; - body: string; - }) { - const { data: comment } = await octokit.rest.issues.createComment({ - owner, - repo, - issue_number, - body, - }); - - core.setOutput('id', comment.id); - core.setOutput('body', comment.body); - core.setOutput('html_url', comment.html_url); - - await addReactions(comment.id, reactions); - - return comment; - } - - async function updateComment({ - owner, - repo, - comment_id, - body, - }: { - owner: string; - repo: string; - comment_id: number; - body: string; - }) { - const { data: comment } = await octokit.rest.issues.updateComment({ - owner, - repo, - comment_id, - body, - }); - - core.setOutput('id', comment.id); - core.setOutput('body', comment.body); - core.setOutput('html_url', comment.html_url); - - await addReactions(comment.id, reactions); - - return comment; - } - - async function deleteComment({ owner, repo, comment_id }: { owner: string; repo: string; comment_id: number }) { - const { data: comment } = await octokit.rest.issues.deleteComment({ - owner, - repo, - comment_id, - }); - - return comment; - } - const comment_tag_pattern = comment_tag ? `` : null; @@ -139,23 +75,26 @@ async function run() { if (comment) { if (mode === 'upsert') { - await updateComment({ + await octokit.rest.issues.updateComment({ ...context.repo, comment_id: comment.id, body, }); + await addReactions(comment.id, reactions); return; } else if (mode === 'recreate') { - await deleteComment({ + await octokit.rest.issues.deleteComment({ ...context.repo, comment_id: comment.id, }); - await createComment({ + const { data: newComment } = await octokit.rest.issues.createComment({ ...context.repo, issue_number, body, }); + + await addReactions(newComment.id, reactions); return; } else if (mode === 'delete') { core.debug('Registering this comment to be deleted.'); @@ -173,11 +112,13 @@ async function run() { } } - await createComment({ + const { data: comment } = await octokit.rest.issues.createComment({ ...context.repo, issue_number, body, }); + + await addReactions(comment.id, reactions); } catch (error) { if (error instanceof Error) { core.setFailed(error.message); diff --git a/tsconfig.json b/tsconfig.json index 44c2c1a..bf8ec56 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@tsconfig/node20/tsconfig.json", + "extends": "@tsconfig/node16/tsconfig.json", "compilerOptions": { "outDir": "./lib", "rootDir": "./src"