機能
リポジトリ内の CNAME ファイルを出荷前にスキャンします。放置された CNAME ファイルは、GitHub Pages をあなたが管理していないドメインに静かに向けてしまいます。このスキルはそれを検出し、リリースを停止します。
前提条件
PATHにbashとfindが含まれていること
環境確認
以下のコマンドを何よりも先に実行します:
command -v find && command -v bash
どちらかが欠けている場合は、停止して報告します: MISSING_DEP: find
ステップバイステップ
-
リポジトリルートからチェックを実行します:
bash scripts/check-cname.sh -
スクリプトが非ゼロで終了した場合、
FORBIDDEN: CNAME file presentを報告し、リリースを停止します。ファイルを黙って削除しないでください。ユーザーにパスを提示します。 -
スクリプトがゼロで終了した場合、
OK: no CNAME fileを報告します。
決して想定しないこと
CNAMEファイルを削除すればホスティングプロバイダーの保存されたカスタムドメインがクリアされると想定しないでください。ファイルとアカウント設定は別物です。ファイルを報告し、ドメインが未設定であると主張しないでください。CNAMEファイルがないリポジトリが安全だと想定しないでください。ホスティングプロバイダーの保存されたドメイン設定は別途確認してください。CNAMEファイルを自動削除しないでください。報告し、所有者に判断を委ねてください。
出力
1行で出力: OK: no CNAME file または FORBIDDEN: CNAME file present at <path>
失敗時の処理
findがない場合 →MISSING_DEP: findを報告して停止します。CNAMEファイルが見つかった場合 → 非ゼロで終了し、そのパスを出力してリリースを停止します。