From cb58ff32a4a4fec6c706ddb8a00b1d74c32cdcab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Mon, 27 Jul 2026 16:48:36 +0900 Subject: [PATCH] =?UTF-8?q?fix(gh):=20check-misskey-js-autogen=E3=81=8C?= =?UTF-8?q?=E5=A4=B1=E6=95=97=E3=81=99=E3=82=8B=E5=95=8F=E9=A1=8C=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20(#17809)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(gh): check-misskey-js-autogenが失敗する問題を修正 * fix comment * fix --- .../check-misskey-js-autogen.comment.yml | 73 +++++++++++++++++++ .../workflows/check-misskey-js-autogen.yml | 43 +++++------ 2 files changed, 90 insertions(+), 26 deletions(-) create mode 100644 .github/workflows/check-misskey-js-autogen.comment.yml diff --git a/.github/workflows/check-misskey-js-autogen.comment.yml b/.github/workflows/check-misskey-js-autogen.comment.yml new file mode 100644 index 0000000000..0403b0c17a --- /dev/null +++ b/.github/workflows/check-misskey-js-autogen.comment.yml @@ -0,0 +1,73 @@ +name: Check Misskey JS autogen (comment) + +on: + workflow_run: + types: [completed] + workflows: + - Check Misskey JS autogen # check-misskey-js-autogen.yml + +jobs: + comment-misskey-js-autogen: + runs-on: ubuntu-latest + # No code is cloned or executed here, so it is safe to hold pull-requests: write + if: ${{ github.event.workflow_run.event == 'pull_request' }} + permissions: + actions: read + pull-requests: write + + steps: + # The result is missing when the run failed before the check job (e.g. the PR does not build), so do not fail here + - name: Download result + id: download-result + continue-on-error: true + uses: actions/download-artifact@v8 + with: + name: misskey-js-autogen-result + path: result + github-token: ${{ github.token }} + repository: ${{ github.repository }} + run-id: ${{ github.event.workflow_run.id }} + + # The artifact comes from a run that built fork code, so validate it before using + - name: Load result + id: load-result + if: steps.download-result.outcome == 'success' + run: | + pr_number="$(cat result/pr-number)" + changes="$(cat result/changes)" + + case "$pr_number" in + ''|*[!0-9]*) echo "invalid pr number"; exit 1;; + esac + case "$changes" in + true|false) ;; + *) echo "invalid result"; exit 1;; + esac + + echo "pr-number=$pr_number" >> "$GITHUB_OUTPUT" + echo "changes=$changes" >> "$GITHUB_OUTPUT" + + - name: send message + if: steps.load-result.outputs.changes == 'true' + uses: thollander/actions-comment-pull-request@v3 + with: + pr-number: ${{ steps.load-result.outputs.pr-number }} + comment-tag: check-misskey-js-autogen + message: |- + Thank you for sending us a great Pull Request! 👍 + Please regenerate misskey-js type definitions! 🙏 + + example: + ```sh + pnpm run build-misskey-js-with-types + ``` + + - name: send message + if: steps.load-result.outputs.changes == 'false' + uses: thollander/actions-comment-pull-request@v3 + with: + pr-number: ${{ steps.load-result.outputs.pr-number }} + comment-tag: check-misskey-js-autogen + mode: delete + message: "Thank you!" + create_if_not_exists: false diff --git a/.github/workflows/check-misskey-js-autogen.yml b/.github/workflows/check-misskey-js-autogen.yml index 631daa79c8..518955dae2 100644 --- a/.github/workflows/check-misskey-js-autogen.yml +++ b/.github/workflows/check-misskey-js-autogen.yml @@ -1,7 +1,8 @@ +# this name is used in check-misskey-js-autogen.comment.yml so be careful when change name name: Check Misskey JS autogen on: - pull_request_target: + pull_request: branches: - master - develop @@ -10,7 +11,6 @@ on: - packages/backend/** jobs: - # pull_request_target safety: permissions: read-all, and there are no secrets used in this job generate-misskey-js: runs-on: ubuntu-latest permissions: @@ -58,7 +58,6 @@ jobs: name: generated-misskey-js path: packages/misskey-js/generator/built/autogen - # pull_request_target safety: permissions: read-all, and no user codes are executed get-actual-misskey-js: runs-on: ubuntu-latest permissions: @@ -78,12 +77,11 @@ jobs: name: actual-misskey-js path: packages/misskey-js/src/autogen - # pull_request_target safety: nothing is cloned from repository - comment-misskey-js-autogen: + check-misskey-js-autogen: runs-on: ubuntu-latest needs: [generate-misskey-js, get-actual-misskey-js] permissions: - pull-requests: write + contents: read steps: - name: download generated-misskey-js uses: actions/download-artifact@v8 @@ -111,28 +109,21 @@ jobs: - name: Print full diff run: cat ./misskey-js.diff - - name: send message - if: steps.check-changes.outputs.changes == 'true' - uses: thollander/actions-comment-pull-request@v3 - with: - comment-tag: check-misskey-js-autogen - message: |- - Thank you for sending us a great Pull Request! 👍 - Please regenerate misskey-js type definitions! 🙏 + # A fork's pull_request token cannot comment, so hand the result to check-misskey-js-autogen.comment.yml + - name: Save result + env: + PR_NUMBER: ${{ github.event.pull_request.number }} + CHANGES: ${{ steps.check-changes.outputs.changes }} + run: | + mkdir -p result + echo "$PR_NUMBER" > result/pr-number + echo "$CHANGES" > result/changes - example: - ```sh - pnpm run build-misskey-js-with-types - ``` - - - name: send message - if: steps.check-changes.outputs.changes == 'false' - uses: thollander/actions-comment-pull-request@v3 + - name: Upload result + uses: actions/upload-artifact@v7 with: - comment-tag: check-misskey-js-autogen - mode: delete - message: "Thank you!" - create_if_not_exists: false + name: misskey-js-autogen-result + path: result - name: Make failure if changes are detected if: steps.check-changes.outputs.changes == 'true'