年中アイス

いろいろつらつら

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年ちょっと前からでした。

github.blog