chore: release v0.3.3 (binary URL, version, docs)
在提交阶段拦截问题代码的轻量级 Git 工具:一个 CLI 二进制 + 一个 pre-commit hook, 配合 CI 在每次 push 上逐提交复查。防止 AI 生成的大量代码、密钥、调试残留混入仓库。
开发者机器 CI(每次 push,建木 webhook 自动触发) git commit governance validate-range ├─ pre-commit hook (逐提交复查区间,拦截被 │ └─ governance validate --no-verify 绕过的提交) └─ commit-msg hook └─ governance validate git push └─ pre-push hook(v0.3.2+) └─ governance validate-range (校验整个待推区间,补上 CI 只查头提交的缝隙)
governance init
.governance/config.yaml
governance validate
governance validate-range <base>..<head>
governance onboard
.devops/governance-ci.yml
gitlink-cli
--baseline-config <url>
governance ci-clean
diff-size
secrets-scan
debug-residue
binary-size
text-encoding
protected-path
commit-msg
feat
fix
docs
test
chore
refactor
阈值和排除项都可在 .governance/config.yaml 中调整。
内置规则之外可在 .governance/config.yaml 的 custom-rules 节定义团队专属检查(v0.3.0+):regex 单正则、pattern-file 多模式(按文件类型过滤)、command 外部插件(stdin/stdout JSON 协议,超时 fail-closed)。详见 USER_GUIDE.md。
custom-rules
regex
pattern-file
command
onboard --baseline-config <url>
--no-verify
scripts/release.sh <tag>
validate --quiet
--report json
// governance:skip-debug
// governance:skip-secret
git commit --no-verify
exclude
从 Releases 下载对应平台的二进制:
governance-windows-amd64.exe
governance.exe
governance-linux-amd64
# 1. 在目标项目里初始化(生成 .governance/config.yaml + 本地 pre-commit hook) cd your-project governance init # 2. 提交并推送配置(先推,避免与引擎回写提交冲突) git add .governance/ git commit -m "chore: add governance config" git push # 3. 接入 GitLink 建木 CI(一条命令;需本机 gitlink-cli 已登录 GitLink) governance onboard # 之后正常开发即可:每次 push 由建木 webhook 自动触发逐提交复查
governance onboard 幂等——重复执行即更新;--dry-run 只打印将要下发的 DSL,不发任何请求。
--dry-run
go build ./... # 构建 go test ./... # 单元测试 bash testdata/e2e_test.sh # 端到端测试
核心实现位于 internal/:rules/ 各条规则、cli/ 各命令(init / validate / validate-range / onboard)、gitlink/ 建木接入、gitctx/ 与 git 的交互。
internal/
rules/
cli/
gitlink/
gitctx/
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
Governance — 端侧代码治理工具
在提交阶段拦截问题代码的轻量级 Git 工具:一个 CLI 二进制 + 一个 pre-commit hook, 配合 CI 在每次 push 上逐提交复查。防止 AI 生成的大量代码、密钥、调试残留混入仓库。
工作原理
命令
governance init.governance/config.yaml并安装 pre-commit hookgovernance validategovernance validate-range <base>..<head>governance onboard.devops/governance-ci.yml(需本机gitlink-cli已登录 GitLink);--baseline-config <url>可让 CI 使用受保护的基线配置,防仓库内配置被篡改governance ci-clean内置规则
diff-sizesecrets-scandebug-residuebinary-sizetext-encodingprotected-pathcommit-msgfeat/fix/docs/test/chore/refactor开头,≤72 字符(本地 commit-msg hook 即拦,Merge 提交豁免)阈值和排除项都可在
.governance/config.yaml中调整。自定义规则
内置规则之外可在
.governance/config.yaml的custom-rules节定义团队专属检查(v0.3.0+):regex单正则、pattern-file多模式(按文件类型过滤)、command外部插件(stdin/stdout JSON 协议,超时 fail-closed)。详见 USER_GUIDE.md。服务端防篡改与运维(v0.3.2+)
onboard --baseline-config <url>让 CI 使用受保护的基线配置校验,仓库内.governance/config.yaml仅作本地开发——改配置绕过检查的路被堵死;未配基线时,触及配置文件的提交会在 CI 日志中输出篡改告警--no-verify绕过的)在离机前即被拦governance ci-clean**:一键停止建木上占住并发槽的挂起/排队运行scripts/release.sh <tag>**:维护者发版一条命令(构建/上传/建 Release/sha256 自校验/附件自愈)validate --quiet与--report json便于 CI 集成豁免方式
// governance:skip-debug,测试夹具里的示例密钥加// governance:skip-secretgit commit --no-verify(CI 会逐提交复查抓回来).governance/config.yaml的对应规则下加exclude路径模式快速开始
从 Releases 下载对应平台的二进制:
governance-windows-amd64.exe→ 改名为governance.exe放入 PATHgovernance-linux-amd64governance onboard幂等——重复执行即更新;--dry-run只打印将要下发的 DSL,不发任何请求。文档
开发
核心实现位于
internal/:rules/各条规则、cli/各命令(init / validate / validate-range / onboard)、gitlink/建木接入、gitctx/与 git 的交互。