循环门
静态安全政策的机械执行——后面的守则 docs/safety.md路径拒绝列表和自动元政策,以及 LOOP.md是因为 "除了无关紧要的依赖补丁之外 不要在主上自动出现" 编号 : "没有人类评论的" 规则。 之前没有评估过拟议改变该信条的情况; loop-gate 已经.
故意的 已经 对运行历史一无所知. 停滞、一再失败和象征性/每日预算已经属于 loop-context断路器 - loop-gate 仅看 什麽 正在提出(路径、行动类型),而不是 跑步表现如何将两者联系起来:
loop-context --check --ledger run.json ... || exit 2 # run-history based
loop-gate check --action auto-merge --paths a.ts,b.ts || exit 2 # policy based
do-the-merge
安装运行( R)
npx @cobusgreyling/loop-gate check --action auto-merge --paths docs/guide.md
从此 repo:
cd tools/loop-gate
npm install
npm test
使用量
loop-gate check --action <commit|merge|auto-merge> --paths <f1,f2,...> [--gate-file gate.yaml] [--json]
| 旗帜 | 默认 | 含义 |
|---|---|---|
--action <commit|merge|auto-merge> | 所需经费 | 循环要做什么 |
--paths <f1,f2,...> | 所需经费 | 逗号分隔已更改的文件路径 |
--gate-file <path> | gate.yaml (中文(简体) ) | 对照评价的政策文件 |
--json | 关 | 机器可读的决定输出 |
退出代码 : 0 允许 2 * 升级 1 错误( 坏旗, 缺少/ 无效配置) .
政策文件
gate.yaml 是机器可读的双相 docs/safety.md 看到了吗 templates/gate.yaml.template 要脚手架自己的, 或者这个雷波自己的狗食品 gate.yaml数字 :
version: 1
denylist:
- ".env"
- "**/secrets/**"
- "auth/**"
maxFiles: 10
autoMergeAllowlist:
- "docs/**"
- "**/*.md"
检查顺序( 第一局胜出, 相同“ 最具体的触发器优先” 常规 loop-context断路器用途 :
denylist—— 任何与这里的光彩相匹配的已改变路径都会升级, 不管--action。 。 。 .maxFiles—— 改变的路径比这个升级( 匹配)docs/safety.md'" "Changes touching >N files"人行门".autoMergeAllowlist- 仅在检查时--action auto-merge;每个被改变的路径必须匹配其中的一条光泽,否则会升级.
Glob 匹配通过 minimatch (相同的语义) .gitignore- 风格的花纹使用 - ** 横跨路径段匹配 .
这不起作用
- 不读一个运行分类账, 永远不会—— 保持它与
loop-context在源一级,同样的方式loop-worktree财务报告和审定财务报表loop-context保持独立,同时仍以控制脚本按常规配对. - 不产生自己的升级摘要格式, 将 JSON 的决定折叠成您已经组装的控制脚本
loop-context --inject当升入人类. - 本身不执行任何措施——如
loop-worktree锁,这是建议:一个跳过调用的控制脚本loop-gate没有被物理封锁。 机能仅能与所取名的脚本一样好.