Skip to content

脚本安全域(public/secret-*)组织结构与运行方案设计(Copilot AI 自动生成) #1

@GinShio

Description

@GinShio

这个 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 功能自动生成,用于记录结构设计方案讨论。

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions