github actionsのGITHUB_TOKENの権限はデフォルトreadonly
久しぶりに新しいツールを作って、github actions+goreleaserでリリースをしようとしたら何故かreleaseにバイナリをアップするところで403エラーが発生しました。
(https://github.com/reiki4040/rnss/actions/runs/8963717671/job/24614599363#step:4:58) ⨯ release failed after 1m55s error=scm releases: failed to publish artifacts: could not release: POST [https://api.github.com/repos/reiki4040/rnss/releases:](https://api.github.com/repos/reiki4040/rnss/releases:) 403 Resource not accessible by integration []
元々homebrew tap用のリポジトリにもpushするために別のトークンは設定していますが、そこではなく標準で使うGITHUB_TOKEN
が使われる場所で発生しています。
何か変わったのかなと思い設定を見てみると、リポジトリのSettings
>actions
>general
> 下部のworkflow permissions
にありました。今回作ったリポジトリはRead repository contens and packages permission
になっていたので、どこかのタイミングでリポジトリ作成時のデフォルトがreadonlyに変わったようです。
ここをRead and write permissions
に変更し、workflowをre-runしたら無事にreleaseがpublishされて無事解決しました。
いつ変わったか調べたら2023/02/02のアナウンスがあったので1年ちょっと前からでした。