-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
这个 Issue 由 Copilot / AI 自动生成,用于记录和讨论仓库脚本安全分层的新设计方案。
摘要
随着仓库里的脚本(Git hooks、setup 自动化、服务等)越来越多,既有公开、也有一些只适合自己或公司内部使用的敏感逻辑。为了让安全脚本和公共自动化能共存互不干扰,我们打算引入“加密多域”(如 public, secret-work, secret-home)的组织结构,方案目标如下:
目标
- 同一逻辑,多套脚本:所有脚本都按 public 和若干 secret-* 域分层组织。每个 secret-* 域只需和 public 结构一一对应,就能轻松维护敏感逻辑。
- 透明安全:secret-* 域下的脚本默认加密,只有在解密后才能被 runner 正常加载。如果未解密,runner 能自动检测脚本不是 Shebang(#!)开头直接跳过,不会因为加密内容报错阻断公共流程。
- 统一配置,省心不乱:根目录 .gitattributes 用通配符(如 /domains/secret-*/)一次性覆盖所有 secret-* 域,无需在每个地方都放 .gitattributes,管理不混乱。
推荐的目录例子
setup/
domains/
public/ # 公开的 setup 脚本
secret-work/ # 只自己/公司可用的密文 setup
secret-home/ # 比如智能家居、个人账户这种
services/
domains/
public/
secret-work/
git/hooks/
domains/
public/
secret-audit/
runner 运行逻辑核心
- 遍历每个 domains 里的所有域(public, secret-*)。
- 执行前检查脚本是否以 Shebang(#!)开头,不是就跳过。
这样,不管你有没有解密 secret-work、secret-home,只要有 public,所有基础自动化脚本都能跑,私有逻辑解密后也能一键生效。
配置建议(.gitattributes)
在根目录加:
**/domains/secret-*/** filter=git-crypt diff=git-crypt
**/domains/secret-*/.gitattributes !filter !diff
**/.gitattributes !filter !diff
小结
这样一来,仓库更清爽,安全和自动化可以优雅分层。你有任何建议/思路,欢迎直接留言吐槽!
本 issue 由 GitHub Copilot AI 功能自动生成,用于记录结构设计方案讨论。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request