背景
私は個人管理のプロジェクトのリポジトリで、GitHub Actionsでテスト用のワークフローを構築しています。
また、ワークフローの実行結果をREADME.mdから参照できるようにbadgeのURLを埋め込んでいますが、公式のバッジではサーバーエラーや、一定期間実行されない期間が続くとと表示されない場合があり気になっていました。
そこで、ステータス管理としてdynamic-badges-actionを導入して、ステイタス管理の情報をgistの編集権限を持つアクセストークンを発行して、それをアクション内で指定することでJSONデータを更新して、ワークフローの実行結果を表示する方法を構築していました。
具体的には、以下のようなプルリクエストトリガーでgist管理のbadgeデータ(jsonファイル)を更新するワークフローです。
しかし、このプルリクエストがDependabotによる実行である場合にError: Failed to get gist: 401 Unauthorizedのエラーとなり、データを更新することができませんでした。
本記事ではその解決方法を紹介する記事になります。
解決方法
以下のissueより、ワークフローで指定するGISTアクセス用のシークレット変数(トークン)をDependabot(Repository secrets)にも設定することで、エラーを回避することができます。
repository > settings > Actions secrets and variables > Dependabot > Repository secrets
github pages用のブランチでbadgeデータ(jsonファイル)を管理、更新している場合は不要という認識です。非公開の場合はGist管理が良いと思いますので上記設定が必要になります。
その他の情報
- 下記issueでも同様の現象が報告されていますが、おそらく同様という認識です。
- dynamic-badges-actionについて説明は割愛しましたが、以下の記事でわかりやすく説明されていますので紹介させていただきます。
以上です。