Skip to content

Commit cb58ff3

Browse files
fix(gh): check-misskey-js-autogenが失敗する問題を修正 (#17809)
* fix(gh): check-misskey-js-autogenが失敗する問題を修正 * fix comment * fix
1 parent f697933 commit cb58ff3

2 files changed

Lines changed: 91 additions & 27 deletions

File tree

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: Check Misskey JS autogen (comment)
2+
3+
on:
4+
workflow_run:
5+
types: [completed]
6+
workflows:
7+
- Check Misskey JS autogen # check-misskey-js-autogen.yml
8+
9+
jobs:
10+
comment-misskey-js-autogen:
11+
runs-on: ubuntu-latest
12+
# No code is cloned or executed here, so it is safe to hold pull-requests: write
13+
if: ${{ github.event.workflow_run.event == 'pull_request' }}
14+
permissions:
15+
actions: read
16+
pull-requests: write
17+
18+
steps:
19+
# The result is missing when the run failed before the check job (e.g. the PR does not build), so do not fail here
20+
- name: Download result
21+
id: download-result
22+
continue-on-error: true
23+
uses: actions/download-artifact@v8
24+
with:
25+
name: misskey-js-autogen-result
26+
path: result
27+
github-token: ${{ github.token }}
28+
repository: ${{ github.repository }}
29+
run-id: ${{ github.event.workflow_run.id }}
30+
31+
# The artifact comes from a run that built fork code, so validate it before using
32+
- name: Load result
33+
id: load-result
34+
if: steps.download-result.outcome == 'success'
35+
run: |
36+
pr_number="$(cat result/pr-number)"
37+
changes="$(cat result/changes)"
38+
39+
case "$pr_number" in
40+
''|*[!0-9]*) echo "invalid pr number"; exit 1;;
41+
esac
42+
case "$changes" in
43+
true|false) ;;
44+
*) echo "invalid result"; exit 1;;
45+
esac
46+
47+
echo "pr-number=$pr_number" >> "$GITHUB_OUTPUT"
48+
echo "changes=$changes" >> "$GITHUB_OUTPUT"
49+
50+
- name: send message
51+
if: steps.load-result.outputs.changes == 'true'
52+
uses: thollander/actions-comment-pull-request@v3
53+
with:
54+
pr-number: ${{ steps.load-result.outputs.pr-number }}
55+
comment-tag: check-misskey-js-autogen
56+
message: |-
57+
Thank you for sending us a great Pull Request! 👍
58+
Please regenerate misskey-js type definitions! 🙏
59+
60+
example:
61+
```sh
62+
pnpm run build-misskey-js-with-types
63+
```
64+
65+
- name: send message
66+
if: steps.load-result.outputs.changes == 'false'
67+
uses: thollander/actions-comment-pull-request@v3
68+
with:
69+
pr-number: ${{ steps.load-result.outputs.pr-number }}
70+
comment-tag: check-misskey-js-autogen
71+
mode: delete
72+
message: "Thank you!"
73+
create_if_not_exists: false

.github/workflows/check-misskey-js-autogen.yml

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
# this name is used in check-misskey-js-autogen.comment.yml so be careful when change name
12
name: Check Misskey JS autogen
23

34
on:
4-
pull_request_target:
5+
pull_request:
56
branches:
67
- master
78
- develop
@@ -10,7 +11,6 @@ on:
1011
- packages/backend/**
1112

1213
jobs:
13-
# pull_request_target safety: permissions: read-all, and there are no secrets used in this job
1414
generate-misskey-js:
1515
runs-on: ubuntu-latest
1616
permissions:
@@ -58,7 +58,6 @@ jobs:
5858
name: generated-misskey-js
5959
path: packages/misskey-js/generator/built/autogen
6060

61-
# pull_request_target safety: permissions: read-all, and no user codes are executed
6261
get-actual-misskey-js:
6362
runs-on: ubuntu-latest
6463
permissions:
@@ -78,12 +77,11 @@ jobs:
7877
name: actual-misskey-js
7978
path: packages/misskey-js/src/autogen
8079

81-
# pull_request_target safety: nothing is cloned from repository
82-
comment-misskey-js-autogen:
80+
check-misskey-js-autogen:
8381
runs-on: ubuntu-latest
8482
needs: [generate-misskey-js, get-actual-misskey-js]
8583
permissions:
86-
pull-requests: write
84+
contents: read
8785
steps:
8886
- name: download generated-misskey-js
8987
uses: actions/download-artifact@v8
@@ -111,28 +109,21 @@ jobs:
111109
- name: Print full diff
112110
run: cat ./misskey-js.diff
113111

114-
- name: send message
115-
if: steps.check-changes.outputs.changes == 'true'
116-
uses: thollander/actions-comment-pull-request@v3
117-
with:
118-
comment-tag: check-misskey-js-autogen
119-
message: |-
120-
Thank you for sending us a great Pull Request! 👍
121-
Please regenerate misskey-js type definitions! 🙏
122-
123-
example:
124-
```sh
125-
pnpm run build-misskey-js-with-types
126-
```
127-
128-
- name: send message
129-
if: steps.check-changes.outputs.changes == 'false'
130-
uses: thollander/actions-comment-pull-request@v3
112+
# A fork's pull_request token cannot comment, so hand the result to check-misskey-js-autogen.comment.yml
113+
- name: Save result
114+
env:
115+
PR_NUMBER: ${{ github.event.pull_request.number }}
116+
CHANGES: ${{ steps.check-changes.outputs.changes }}
117+
run: |
118+
mkdir -p result
119+
echo "$PR_NUMBER" > result/pr-number
120+
echo "$CHANGES" > result/changes
121+
122+
- name: Upload result
123+
uses: actions/upload-artifact@v7
131124
with:
132-
comment-tag: check-misskey-js-autogen
133-
mode: delete
134-
message: "Thank you!"
135-
create_if_not_exists: false
125+
name: misskey-js-autogen-result
126+
path: result
136127

137128
- name: Make failure if changes are detected
138129
if: steps.check-changes.outputs.changes == 'true'

0 commit comments

Comments
 (0)