@cosmicdrift/kumiko-护卫
AST 守卫和回放检查 单个需要多个回放的Kumiko
档案:直接实体写作、租户升级、未申报出逃舱口,
openToAll 无缘无故地 缺少了拒绝进入的测试和回购检查.
单文件检查( 直接 fs/ fetch, 日期 API, 测试标题, 原始 HTML, ...)
生物预设 @cosmicdrift/kumiko-framework/biome-rules 作为内建和
GritQL 插件 。 每一项调查结果都必须明确雷波自己的安全基线;
没有卫兵跳出旗子.
bun node_modules/@cosmicdrift/kumiko-guards/src/run-guards.ts [--explain|--write-security-baseline]
基线为: .kumiko-security-baseline.json 在消费者中
复发相根. --explain 打印已解析的 repo 和 per guard 扫描范围
没有任何警卫; --write-security-baseline 冻结当前
将结果输入基线文件.
依赖性检查
3个子命令检查 repo 的依赖性 cwd 请坐 他们叫
npm 注册或 bun audit,所以它们不是默认运行的一部分
非该部分 checks; 每个需要 --report (仅打印,出入口0;用于 outdated
它增加了中转和干支和被贬值的直接依赖
仍为一出. outdated 列出登记册未回答的每个软件包
在没有直接依赖者得到答案时失败.
bunx kumiko-guards licenses # licence allow/gray/deny classification of installed packages
bunx kumiko-guards security # bun audit: critical/high block, moderate warns
bunx kumiko-guards outdated # installed direct dependencies the registry marks deprecated
已安装软件包licenses, (中文(简体) ), outdated读取自 node_modules 会 议 日 程 和 议 程
repo root, 它的工作空间成员和每个祖先目录, 分辨率
Bun自己用,所以一个高起的家长工作空间和 .wt/ 工作树工作。 若为
没有找到命令失败( 没有扫描) . security 审计
重传根 bun.lock,或最近的祖先的 (宣布) 当回波有
无, 如果没有锁文件则失败 .
例外情况需要说明理由、审查人和终止日期。 货船
缺省数(dependency-license-exceptions.json, (中文(简体) ),
dependency-security-exceptions.json); repo 中的同名文件
根(和,用于 licenses在一个祖先 node_modules 已扫描)
合并在顶上。 安全例外在14天内失效.
Raw-SQL 标记
guard-raw-sql 块 .unsafe() 编号 : asRawClient() 外部 db/queries/*, (中文(简体) ),
db/query.ts 和测试代码。 A 类 // kumiko-lint-ignore raw-sql <reason>
在调用线上或上面的线上标记,只压制其
(文件,理由)对被冻结在 .kumiko-raw-sql-baseline.json 在回购
树根。 一个没有基线条目的新或重新填入的标记没有检查结果,所以
每一个例外都作为基准 diff在审查。 没有基线文件
守卫只发出警告,所以消费者不会崩溃。 优先键入
db/query 帮助者; 故意冻结例外:
bunx kumiko-guards checks --write-baseline --guard=guard-raw-sql
重写原因为新条目:再运行指令并审查diff. 一个已删除的标记会留下一个不失败的 stale 条目; 相同的命令 放下枪.
kumiko-pre-push
一个POSIX-sh 预推钩,通过复制包的接线 hooks/pre-push
嘘 .husky/pre-push。shim执行最近的可执行文件
node_modules/.bin/kumiko-pre-push 从树根向上
没有自己的 node_modules 通过父设备安装解决,最多
包括 $HOME,跳过由另一个用户拥有或可写入的祖先
组/其他)和未关闭 bun install 当不存在时提示。 内部
它运行一个范围化的工作空间 bun check 页:1
仅驱动重播; 在独立的克隆中, 它运行重播自己的
package.json test 剧本. 从a .wt/<name> 母树下的工作树
它运行一个跟踪的工作空间 scripts/check-wt.sh 如果存在,否则
工作树自己的 package.json 脚本 typecheck, (中文(简体) ), lint, (中文(简体) ), test,以及
test:dom 直接在工作树上——父母的
bun check 否则将检查主检出,然后
kumiko-guards guards, (中文(简体) ), ui (仅无空) uiRoots 内 kumiko.json, (中文(简体) ),
与 kumiko check, (中文(简体) ), checks, (中文(简体) ), comment-lang 财务报告和审定财务报表 public-exports-changelog。 。 。 .
货包的退货 packages/guards/src/cli.ts
这些 没有绕行开关 。 A 类 check-wt.sh 包接此钩子( 通过
exec 或作为一个孩子的过程)被承认,所以钩子不再叫它
并跳过飞行前的步骤(pre-push-extra.sh升职后卫,
外跑已经做了 识别需要记录的拥有者 PID
(单位:千美元)KUMIKO_CHECK_WT_OWNER) 是一个进程或祖先运行
scripts/check-wt.sh随机 KUMIKO_CHECK_WT_NONCE 符合
0600文件 kumiko-prepush-<pid> 在一个普通目录中。 设置变量
手( 手 )KUMIKO_CHECK_WT_OWNER=$$ git push因此,不跳过任何文件
完成的运行被下一个推力所覆盖.
扩展点: 有轨可执行文件 scripts/pre-push-extra.sh 运行
在主检查前,每个分支(工作树、父母范围,以及
独立) KUMIKO_PUSH_REPO_ROOT 财务报告和审定财务报表 KUMIKO_PUSH_PARENT_DIR
可用内线( 从未导出, 因此没有其它东西继承 ) 。 一个
未跟踪或无法执行 scripts/pre-push-extra.sh 从不运行——这个
无法关闭,所以一个流出或未经审查的文件 无法劫持推进。 一个非零
退出从 pre-push-extra.sh 在主检查运行前中止推动.