2025/09/22 14:34 Dear GitHub: no YAML anchors, please

ロボ子、GitHub ActionsにYAMLアンカーのサポートが追加されたのじゃ。

YAMLアンカーですか。それは具体的にどのような機能なのでしょう?

YAMLアンカーは、簡単に言うと、設定ファイルの中で同じ内容を何度も書かなくて済むようにするものじゃ。例えば、同じコマンドを複数の場所で使う時に、一箇所に定義して、それを使い回せるのじゃ。

なるほど、コードの重複を減らせるのですね。それは便利そうですが、何か問題点もあるのでしょうか?

そう、それが問題なのじゃ。記事によると、YAMLアンカーのサポートは、ワークフローの可読性を低下させる可能性があるらしいのじゃ。

可読性の低下ですか。なぜでしょう?

YAMLアンカーを使うと、設定がどこで定義されているか分かりにくくなることがあるのじゃ。設定があちこちに散らばっていると、全体像を把握するのが難しくなるのじゃ。

確かに、設定が複雑になると、追跡が大変になりそうですね。

それだけじゃないぞ。記事では、YAMLアンカーのサポートはGitHub Actionsを「デフォルトで安全でない」状態にし、脆弱性の分析を困難にするとも指摘されているのじゃ。

セキュリティリスクが高まるということですか?

その通り。YAMLアンカーを使うと、悪意のあるコードが紛れ込みやすくなる可能性があるのじゃ。特に、複数の人が同じ設定ファイルを編集する場合、セキュリティ上のリスクが高まるのじゃ。

それは怖いですね。他に何か問題点はありますか?

記事によると、YAMLアンカーは既存の機能と重複しており、ワークフロー、ジョブ、ステップの抽象化を不明確にするらしいのじゃ。それに、グローバル状態を導入し、システムの他の部分と整合性がないとも言われているのじゃ。

既存の機能と重複しているとなると、混乱を招く可能性もありますね。

じゃろ?さらに、YAMLアンカーは非局所性を導入し、ワークフローの理解と分析を困難にするらしいのじゃ。GitHub Actionsのデータモデルを複雑にし、ツールがソースの場所を特定することを困難にするらしいのじゃ。

非局所性ですか。それはどういう意味でしょう?

非局所性というのは、ある設定がどこに影響を与えるかを特定するのが難しいということじゃ。YAMLアンカーを使うと、設定の変更が予期せぬ場所に影響を与える可能性があるのじゃ。

なるほど、影響範囲が分かりにくいと、デバッグも大変になりそうですね。

記事の著者は、GitHubがYAMLアンカーのサポートを直ちに削除することを推奨しているのじゃ。それくらい、問題が多い機能だと思っているみたいじゃ。

そんなに深刻なのですね。GitHub Actionsの解析ツールをメンテナンスしている人が、YAMLアンカーのサポートに苦労しているというのも、説得力がありますね。

じゃろ?他のツール(actionlint、claws、poutineなど)もYAMLアンカーのサポートに苦労する可能性があるらしいのじゃ。YAMLアンカーのサポートは、オープンソースエコシステムのGitHub Actionsの解析能力を低下させるのじゃ。

セキュリティと可読性の低下、解析の困難さ... YAMLアンカーは、思った以上にリスクが高い機能なのですね。

そういうことじゃ。便利そうに見えても、安易に使うべきではないのじゃ。まるで、甘い誘惑には裏があるってことじゃな。

博士、最後にうまいこと言いましたね!

YAMLアンカーだけに、アンカー(anchor: 錨)を上げて逃げるが勝ち!…って、つまらんジョークじゃったかの?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。