KDOC 152: Dependabotが作ったPRでワークフローが失敗する理由
この文書のステータス
- 作成
- 2024-05-09 貴島
- レビュー
- 2024-05-09 貴島
概要
Dependabotは、GitHubで、自動で依存ライブラリを更新する機能である。Dependabotによって作られるPull Requestで常にテストが失敗しているのを認識し、理由がわかったのでメモする。
理由
ドキュメントにある。
Dependabot pull request によってトリガーされるワークフロー実行は、フォークされたリポジトリからのものであるかのように実行されるため、読み取り専用の GITHUB_TOKEN を使用します。 それらのワークフローの実行は、シークレットにはアクセスできません。 これらのワークフローをセキュリティで保護するための戦略については、「GitHub Actions のセキュリティ強化」を参照してください。
Dependabotが作るPull Requestで実行失敗していたのは、Dockerイメージレジストラにイメージをpushするタスクだった。このタスクでは、レジストラにイメージをpushするのに強い権限のトークンが必要なため、シークレットにトークンを登録していた。Dependabotが作るPull Requestではこのシークレットにアクセスできず、ログインジョブで失敗して終了していた。
この挙動によって、Publicリポジトリでも安全を保てるようになっている。
関連
- KDOC 147: GITHUB_TOKENはトリガー権限を持っていない。GitHub Actionsのデフォルトトークンの権限まわりの話