アズマオオズアリの頭部とキーボードを模したアイコンとjonnityという文字

GitHub Actionsにおける未許可`Reusable workflow`使用時のエラー

GitHub ActionsReusable workflowトラブルシュート

2025/4/28


起きたこと

このブログは、mainブランチにプッシュされた内容がそのままデプロイされるよう、.github/workflows/deploy-main.ymlでワークフローを定義している。 先日、Rust演習の記録を公開しようとしたとき、突如エラーが発生した: エラー時のログ

ざっと内容を見てみると、自分で定義したワークフローに入る前の、種々必要なデータを集めているところでエラーが起きているようだった。具体的には以下のようなメッセージで終了していた。

1Download action repository 'rtCamp/action-slack-notify@v2' (SHA:e31e87e03dd19038e411e38ae27cbad084a90661)
2Getting action download info
3Error: Missing download info for LoveToKnow/slackify-markdown-action@698a1d4d0ff1794152a93c03ee8ca5e03a310d4e

原因

前提として、以下の状態にあった。

  • デプロイの成否をrtCamp/action-slack-notifyでSlackに通知するようにしていた
  • rtCamp/action-slack-notifyでは、LoveToKnow/slackify-markdown-actionが使われていた
  • (公式が提供しているもの以外は) 許可したreusable workflowsしか実行できないようにしており、上記2つのWorkflowを許可していた (それぞれメジャーバージョンでのみ指定)
    • lovetoknow/slackify-markdown-action@v1
    • rtCamp/action-slack-notify@v2

そこから、rtCamp/action-slack-notifyの最新バージョン (v2.3.3, 2025/4/9リリース) での変更で、LoveToKnow/slackify-markdown-actionの使用バージョンがバージョン指定ではなく、ハッシュで行われるように変更された (↓みたいに)。

1- uses: LoveToKnow/slackify-markdown-action@v1
2+ uses: LoveToKnow/slackify-markdown-action@698a1d4d0ff1794152a93c03ee8ca5e03a310d4e #v1.1.1
3

その結果、LoveToKnow/slackify-markdown-action@698a1d4d0ff1794152a93c03ee8ca5e03a310d4eは許可されていないとして、ワークフローが失敗するようになった。

解決策

LoveToKnow/slackify-markdown-action@698a1d4d0ff1794152a93c03ee8ca5e03a310d4eを上述の許可リストに追加した。

rtCamp/action-slack-notify2.3.2で指定したり、LoveToKnow/slackify-markdown-action@*とかの書き方で雑に許可しても動くとは思う。 でもまあ、rtCamp/action-slack-notifyはとりあえず最新のバージョン使っといてと思うし、LoveToKnow/slackify-markdown-actionで何かが変わって、それがrtCamp/action-slack-notifyで採用されたのならそれを知りたいとも思うので、とりあえず個別に許可する方針で対応した。

まとめ

GitHub Actionsで、許可されていないReusable workflowを使おうとすると、Missing download infoとかいう、んなアホな的なエラーメッセージが出る。

エラーメッセージはちゃんと原因がわかるように表示しよう。