GitHub Actions ワークフロー確認(GitHub Actions Studio)

ワークフローの YAML を貼ると、on(トリガー)、needs の依存の順に並んだジョブ、各手順の uses と run を表示します。利用者が書ける値を run に直接展開した箇所(スクリプト注入)、タグ・ブランチで指定された action、permissions の無いジョブなどを行番号つきで指摘します。完全なスキーマの検証や実行はしません。

端末内で処理・アップロードなしスマホ対応オフライン対応

ファイルや入力内容はお使いの端末(ブラウザ)の中だけで処理され、サーバーへは送信されません。

貼り付けた YAML は端末の中だけで処理し、サーバーへ送らず保存もしません。完全なスキーマの検証・実行はしません。指摘は GitHub の公式ドキュメントに基づく項目だけです。

ワークフローの YAML ファイルをドロップ

または

テキストファイル 1 つ(200 KB まで)。内容は送信されません。貼り付け(Ctrl+V)にも対応
ワークフローの YAML を貼り付けるか、ファイルをドロップすると、ジョブと手順の一覧と指摘が出ます。

使い方

  1. ci.yml

    YAML を貼る(.yml)

  2. ジョブと手順行番号つき

    ジョブの依存と指摘

  3. actions-review.txt内容は送信しない

    指摘を一覧で保存

ワークフローを貼り、依存と指摘を確かめ、必要な箇所を直す流れ
  1. ワークフローの YAML(.github/workflows の .yml)を貼り付けるか、ファイルをドロップします。「サンプルで試す」でも動作を確認できます。

  2. ジョブと手順の一覧で、on・needs の依存の順・runs-on・matrix の組み合わせ数を確かめます。

  3. 手順の一覧で、uses(action)と run の先頭の行を確かめます。

  4. 「指摘」で重要度つきの一覧を見ます。注入と pull_request_target の組み合わせは高、サードパーティの未固定 action は中、そのほかは低です。

  5. 指摘の一覧はコピーまたは保存できます。

できること

スクリプト注入の検出

run と github-script の script で、PR のタイトル・コメント・ブランチ名など利用者が書ける値(github.event.issue.title など)を式で直接展開している箇所を、行番号つきで指摘します。

未固定の action の指摘

uses の版がタグ・ブランチの action を一覧にします。サードパーティは中、actions・github の公式は低(注意)です。完全な commit SHA で指定されたものは指摘しません。

pull_request_target と checkout の確認

pull_request_target のトリガーで、PR の head を actions/checkout で取り出している組み合わせを高として指摘します。

needs の依存と matrix の数

needs の依存の順に並べ、存在しないジョブへの needs と循環を指摘します。matrix は配列の積で組み合わせ数を数えます。

権限とタイムアウトの確認

permissions の無いジョブ、write-all、timeout-minutes の無いジョブを指摘します。

こんなときに

  • PR のタイトルやコメントを run に直接書いていないか、マージの前に確かめたい
  • サードパーティの action を、タグではなく完全な SHA に固定すべきか見直したい
  • permissions を省いたワークフローの既定の権限を、書き直す前に確認したい
  • needs の依存の順と matrix の組み合わせ数を、目で追わずに確かめたい

対応状況

機能対応補足
on(トリガー)・jobs・steps の読み取り対応—
needs の依存の順・循環・存在しないジョブの検出対応—
uses の版(タグ・ブランチ・SHA)と docker:// のダイジェストの確認対応—
スクリプト注入・secrets の表示・pull_request_target と checkout の組み合わせ一部対応既知の文脈名と典型的な形だけを見ます。別の形の注入は見つけられません
permissions・timeout-minutes・式の括弧の確認対応—
スキーマの完全な検証(キー名・型の全体)非対応行いません。未知のトップレベルキーだけ指摘します
ワークフローの実行・action の取得・ネットワーク通信非対応通信しません。uses の中身(コード)は読みません
再利用するワークフローの中身の展開非対応呼び出し先は読みません

制限・注意事項

  • 入力は 200,000 文字まで、ジョブは 100 件までです。超えた分は読み止めて通知します。
  • スキーマの完全な検証はしません。誤字や型の誤りは指摘されなくても、GitHub が拒否することがあります。
  • matrix は配列の積だけを数えます。include と exclude は数えません。式で書かれた matrix は数えられません。
  • 指摘は GitHub の公式ドキュメントに沿う項目だけです。推奨は時期によって変わることがあります。

プライバシーと安全性

ワークフローの YAML は、お使いの端末の中だけで処理されます。サーバーへ送信・保存されることはなく、ブラウザにも保存しません。使用状況の記録に内容やファイル名は含めません。

よくある質問

pull_request_target の何が危険ですか?
フォークからの PR でも、pull_request_target は基本ブランチの文脈で実行され、リポジトリの秘密にアクセスできます。そこで PR の head を checkout して実行すると、信頼できないコードが秘密を扱える場所で動いてしまいます。このツールはその組み合わせを高として指摘します。
uses は SHA に固定すべきですか?
サードパーティの action はタグや main を作者が後から別のコードに向けられます。完全な commit SHA に固定すると、確認したコードが変わりません。GitHub の公式ドキュメントも SHA への固定を推奨しています。
permissions は何を指定すればよいですか?
ジョブが必要とする権限だけを、read から書いてください(例: contents: read)。省くと既定のトークン権限に頼ります。その既定値はリポジトリの設定で変わることがあります。
yaml の確認ツールとどう違いますか?
YAML 全般の構文は YAML・TOML スタジオで確認できます。このツールは GitHub Actions 固有の項目(トリガー・needs・uses・式)と、セキュリティ上の指摘に絞っています。
このツールでワークフローを実行できますか?
いいえ。実行も action の取得もしません。ローカル実行ツールを使うか、GitHub 上で確かめてください。

YAML / TOML 検証・整形・変換(YAML / TOML Studio)

YAML・TOML・JSON を貼り付けるだけで構文チェック・整形・相互変換。エラーは行と列で示し、「no が false になる」などの型の落とし穴と、変換で失われるものを事前に警告します。データは端末の外へ送信しません。

アップロードなし

Dockerfile Studio

Dockerfile を貼り付けると、構文・ステージ・よくある誤りを調べ、秘密らしい値や curl | sh などの確認したい点を一覧にします。整形と、Node.js・Python・Go・静的サイト・Java の雛形の生成もできます。ビルドはせず、入力は端末の外へ送りません。

アップロードなし

Kubernetes マニフェスト スタジオ(Kubernetes Studio)

Deployment・Service などの YAML を貼ると、リソースの一覧と Service がどの Deployment の Pod に当たるかを表示し、廃止された apiVersion、latest タグ、requests・limits の不足、privileged などの設定を行番号つきで指摘します。スキーマの完全な検証はしません。クラスタへ適用する前の目視確認の補助です。

アップロードなし

lockfile 比較・依存関係ツリー

2 つの lockfile を比べて、どのパッケージが追加・削除・更新されたかを表示します。あるパッケージがなぜ入っているか(入ってくる経路)と、同じパッケージの複数バージョンも分かります。ファイルはブラウザの外へ出ません。

アップロードなし

Docker Compose Studio

docker run のコマンドを compose.yaml に、compose.yaml を docker run に変換します。compose.yaml は構文・Compose Specification・よくある誤りを調べ、セキュリティ上の確認点も一覧にします。コンテナの起動やイメージの取得はせず、入力は端末の外へ送りません。

アップロードなし

.env スタジオ(.env Studio)

.env を貼る・ドロップすると、キーと値を表で確認でき、重複・空の値・書式の誤りを行番号つきで指摘します。値は既定で伏せ、.env と .env.example を比べたり、.env.example・Kubernetes の Secret に書き出したりできます。.env の書き方(dotenv 形式)を確かめたいときに使い、docker compose の変数展開などツール固有の細かい仕様までは判定しません。

アップロードなし

最終更新: