使い方
- ci.yml
YAML を貼る(.yml)
- ジョブと手順行番号つき
ジョブの依存と指摘
- actions-review.txt内容は送信しない
指摘を一覧で保存
ワークフローの YAML(.github/workflows の .yml)を貼り付けるか、ファイルをドロップします。「サンプルで試す」でも動作を確認できます。
ジョブと手順の一覧で、on・needs の依存の順・runs-on・matrix の組み合わせ数を確かめます。
手順の一覧で、uses(action)と run の先頭の行を確かめます。
「指摘」で重要度つきの一覧を見ます。注入と pull_request_target の組み合わせは高、サードパーティの未固定 action は中、そのほかは低です。
指摘の一覧はコピーまたは保存できます。
できること
スクリプト注入の検出
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 の何が危険ですか?
uses は SHA に固定すべきですか?
permissions は何を指定すればよいですか?
yaml の確認ツールとどう違いますか?
このツールでワークフローを実行できますか?
関連ツール
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 の変数展開などツール固有の細かい仕様までは判定しません。
最終更新: