功能
在代码发布前扫描仓库中的 CNAME 文件。一个游离的 CNAME 可能会静默地将 GitHub Pages 指向您无权控制的域名。此技能会找到它并阻止发布。
前提条件
bash和find命令位于PATH中
验证环境
在执行任何操作前运行:
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文件。报告它,让所有者决定后续操作。
输出
一行信息:OK: no CNAME file 或 FORBIDDEN: CNAME file present at <path>。
失败处理
find缺失 → 报告MISSING_DEP: find,停止执行。- 发现
CNAME文件 → 以非零退出码退出,打印文件路径,中止发布。