GitHub Actions YAML リーダー&フォーマッター
ガイド
GitHub Actions YAML リーダー&フォーマッター
GitHub Actions ワークフローファイルを貼り付け、CI実行前に破損した構造、廃止された構文、およびリスクのあるパターンを即座に検出します。リーダーはトリガー、ジョブ、ステップ、ランナー、権限、再利用可能なワークフロー呼び出しに適用された組み込みスキーマでワークフローを検証し、YAMLをワークフロー認識型のキー順でフォーマットして、リポジトリ内のすべてのファイルが同じように見えるようにします。
使用方法
- あなたの
.github/workflows/*.yml入力ボックスにファイルを貼り付け、または例のリンクのいずれかをクリックしてCI、リリース、または廃止構文のワークフローを読み込みます。 - トグル キーの並び順 canonical GitHub Actions 順序(name、on、permissions、jobs、そして各ジョブの runs-on、needs、steps)を使ってフィールドを並び替えます。
- 保持 GitHub Actions スキーマに照らして検証 必須フィールドの欠落、未知のイベントタイプ、無効なランナーラベル、および破損
needs参照を検出します。 - 保持 ベストプラクティスヒントを表示 を有効にすると、サプライチェーンおよび信頼性に関する提案(第三者アクションをSHAにピン留め、追加
timeout-minutes、廃止されたワークフローコマンドを置き換えます) - フォーマットされたYAMLをコピーまたは、コミット用に.ymlファイルとしてダウンロードします。
.ymlファイルを準備します。
機能
- スキーマ検証 – 必須のトップレベルフィールド(
on,jobs)、許容されるトリガーイベント名、ジョブおよびステップキー、および正しい権限スコープ。 - 再利用可能なワークフロー規則 – ジョブが
usesは迅速なパスだが、属性の扱いが不一致であり、エッジケースでデータを失う可能性がある。SOAPレスポンスのプロダクション用途では、runs-onまたはstepsを混在させている場合を検出します。GitHubは実行時にこれを拒否します。 - 依存関係チェック – 自己参照やファイル内に存在しないジョブへの依存関係をフラグ付けします。
- アクション参照パーサー – 欠落または
uses:形式ではない@ref値をキャッチします。owner/repo形式にない - 廃止された構文検出 –
::set-env,::set-output,::save-stateと、node12/node16ランタイムに現代の代替品が警告されます。 - ベストプラクティスヒント – 第三者アクションをコミットSHAにピン留めし、追加
timeout-minutesをすることで、ジョブの無制限実行を防ぎます。 - クロনの健全性チェック – クロントレースが正確に5つのフィールドを持っていることを検証します。
on.scheduleワークフロー認識型フォーマッター - – トップレベル、ジョブレベル、ステップレベルのキーを伝統的なGitHub Actions順に並び替え、一貫した差分を実現します。 – どのワークフロー内容もサーバーに送信されません。
- ブラウザ内で完全に動作 なぜGitHub Actionsワークフローは構造的なエラーに特にかかりやすいのですか?
よくある質問
-
ワークフローYAMLは、必須のトップレベルキー、固定イベント名、およびジョブごとに変化するキー規則を持つ厳格なスキーマに従っています。ファイルはトリガーがGitHubで発火したときにのみパースされるため、キー名の誤りや未知イベントは無音でリポジトリに残され、次のプッシュまたはPRが失敗するまで無視されます。スキーマベースのリーダーは、これらのようなエラーをランナーに到達する前に検出します。
アクションをコミットSHAにピン留めることで、実際に何を防いでいるのですか?
-
GitHub Actionsは、実行時に
がタグに指すコミットに解決されます。タグは変更可能であり、メンテナー(またはメンテナーのアカウントを侵害された攻撃者)が
uses: owner/action@v1を移動させることができ、すべてのそのアクションに依存するワークフローは次の実行時に新しいコードを実行します。コミットSHAにピン留めることで、アクションのソースコードが特定のリビジョンに凍結され、将来のタグ変更が無意識に異なる動作を置き換えることを防ぎます。v1::set-env、::set-output、および::save-stateはなぜ廃止されたのですか?v1これらのワークフローコマンドは、stdoutに特別なフォーマットの行を出力することで環境変数、ステップ出力、保存された状態を書き込みました。ランナーに実行されたどのツールも同じフォーマットを出力し、任意の値を -
またはステップ出力に注入でき、次のステップが依存する
またはシークレットを上書きする可能性があります。代替品は、サブプロセスが後に読み取ったり変更したりできない、専用の追加のみファイル(
GITHUB_ENV)を使用します。PATHなぜリーダーは各ジョブに対してタイムアウト分の値を尋ねているのですか?$GITHUB_ENV,$GITHUB_OUTPUT,$GITHUB_STATEタイムアウトがない場合、GitHubホストのジョブは最大360分(6時間)まで実行され、プラットフォームがそれをキャンセルします。停止したプロセス、誤設定された待機、または runawayテストがこの範囲を消費し、キューをブロッキングし、プランの分を消費します。各ジョブに明示的な上限を設定することで、最悪ケースを迅速な失敗に変換し、直ちに問題を表面化させます。 -
ここに .github/workflows/*.yml のコンテンツを貼り付けます
.yml としてダウンロード
timeout-minutesGitHub Actions YAML リーダー&フォーマッター 1
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
