以下例
on: pull_request: jobs: 他のjob1: # 内容省略 他のjob2: # 内容省略 適当なjob名: timeout-minutes: 3 runs-on: ubuntu-latest needs: - 他のjob1 - 他のjob2 # ここに必要なjobを全部列挙。複数のyaml全部checkしたい場合はもっと工夫が必要 if: github.event_name == 'pull_request' steps: - uses: actions/github-script@v6 if: ${{ contains(github.event.*.labels.*.name, 'ここに独自に作ったラベル名') }} with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const query = ` mutation($id: ID!) { markPullRequestReadyForReview(input: { pullRequestId: $id }) { pullRequest { id } } } `; const variables = { id: context.payload.pull_request.node_id } const result = await github.graphql(query, variables) console.log(result)
- 似たようなものはあったが、完全に目的に合うようなものが、探してもなかったというか、この程度なら自作して直接yamlに書き込んだ方が管理が楽なので、いろいろ参考にしつつ作った。
CI通ったら
は工夫すれば任意の条件に変更可能- 上記は「この操作をするpull reqかどうか?」を、labelで制御してるが、そこもいい感じに工夫すれば、いろいろな方法が可能なはず
- デフォルトの権限にしてるなら工夫は必要ないが、権限絞ってる場合は少なくとも
contenst: write
が必要になるので注意 - おそらくv3のRESTではダメで、graphqlのAPIではないと出来ないらしくて、そっちはあまり呼び出したことないから多少苦労したが、こういう感じで呼び出せるらしい
- あるいはghコマンド使う方法もある。ただしあれはself hosted runnerに入ってないなどのポータビリティの問題で
actions/github-script
の方が良い気がする
- あるいはghコマンド使う方法もある。ただしあれはself hosted runnerに入ってないなどのポータビリティの問題で
- 逆に
CI落ちたらdraftにする
みたいなのも作ったら便利か? (それもgraphqlのAPIでないと無理?)