kachick / times_kachick

`#times_kachick channel in chat` as a public repository. Personal Note and TODOs
https://github.com/kachick/times_kachick/issues?q=is%3Aissue+is%3Aclosed
6 stars 0 forks source link

2023-09-27 - GitHub Actions で workflow ファイルを更新した commit を push しようとすると `refusing to allow a GitHub App to create or update workflow ... without workflows permission` とやらが出てくるのは push 時じゃなくて checkout 時に token を指定してやるといい #249

Closed kachick closed 10 months ago

kachick commented 10 months ago

TL;DR

何についてか / About

ref: https://github.com/orgs/community/discussions/27072#discussioncomment-3254515

refusing to allow a GitHub App to create or update workflow `.github/workflows/lint.yml` without `workflows` permission

経緯 / History

以下書き殴り

GitHub Actions の中で別の workflow YAML を更新して commit を積んでPRを投げるみたいなのをやっていると、このエラーにあたった。 元々そういって出されたPRでCIを走らせるためにはGITHUB_TOKENじゃ不足なんで、こういう時定番の App を作ってそのApp から https://github.com/tibdex/github-app-token でテンポラリな token を払い出すようにはしていた。 その上でエラーが出続けるので今度は permission 周りを確認したんだけれど、workflow に対する write permission も付与してあるし push が出来ないのがよくわからない。 エラーメッセージでぐぐると https://github.com/orgs/community/discussions/27072#discussioncomment-3254515 等が出てきてなるほどだった。HTTPS経由での git push 時にちゃんとトークンが使われるようにすると直ったという話のようなので、さて書き換え必要なのかなーと思ったけれどそもそも普段のワークフロー考えるとgit clone 時にメソッド決まってそうなので、checkout action の段階で token 指定してやったらどうかと試すとそれで通った。(というかこの回答自体がそういう事を教えてくれてるんだなとそこでやっと確認できた) ということは https://github.com/actions/checkout/tree/v4/ はやっぱり SSH ベースなんだろうなぁと一応コード読んで確認しようと思ったんだけど、5分ぐらい読んでもなんかどこでコアな事やってるのか今一つピンとこない。 まぁとりあえず今後もどこかで同じ様な話に当たると思うので、その時はこれを思い出すようにする