コンテンツにスキップ
Zenn Dev Kou Pg 0131 Articles Ghatree Introduction

GitHub Actions の依存関係を再帰的に出力する「ghatree」の紹介

  • URL: https://zenn.dev/kou_pg_0131/articles/ghatree-introduction
  • 日付: 2026-06-26
  • Tier: Tier 3
  • 要旨: GitHub Actions ワークフロー内で使用しているアクションの依存関係を再帰的に取得して出力するツール ghatree が公開された。--json フラグで依存ツリーを JSON 出力でき、直接使用しているアクションが内部依存しているアクションまで網羅できる。GitHub の Enforce SHA Pinning 機能は推移的な依存まで対象にするため、手動での特定が困難だった間接依存のコミット SHA 未固定アクションを ghatree で自動検出できる。

詳細

インストール・実行: npx ghatree@latest(npm パッケージ)

主なオプション:

  • --repo <owner/repo> — 特定リポジトリを指定(デフォルトはカレントディレクトリの .github/workflows)
  • --json — 依存ツリーを JSON 形式で出力
  • GITHUB_TOKEN 環境変数で GitHub API トークンを設定(プライベートリポジトリや Rate Limit 回避に利用)

Enforce SHA Pinning との関係:

  • GitHub の Enforce SHA Pinning を有効にすると直接参照アクションだけでなく推移的な依存アクションもコミット SHA 固定が必要になる
  • 例: cli/gh-extension-precompile 経由で内部依存している actions/setup-go@v5 などが未固定だとワークフロー実行が失敗する
  • ghatree の JSON 出力を Bun Shell スクリプトで再帰探索し SHA 未固定のアクションをログ出力するスクリプト例が記事に掲載されている

tj-actions/changed-files や reviewdog/action-* の Git タグ書き換え事件を背景に、アクションの推移的依存まで含めたセキュリティ管理の重要性が高まっている。