@fantasticit/sumi 0.7.0 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/@sumi/create/README.md +1 -1
- package/node_modules/@sumi/create/dist/scaffold.js +4 -1
- package/node_modules/@sumi/create/dist/scaffold.js.map +1 -1
- package/node_modules/@sumi/create/package.json +1 -1
- package/node_modules/@sumi/create/template/control/config.yaml +3 -0
- package/node_modules/@sumi/kernel/package.json +2 -2
- package/node_modules/@sumi/plugin-sdk/package.json +1 -1
- package/node_modules/@sumi/plugins-core/README.md +6 -1
- package/node_modules/@sumi/plugins-core/dist/plugins/exec.js +4 -2
- package/node_modules/@sumi/plugins-core/dist/plugins/exec.js.map +1 -1
- package/node_modules/@sumi/plugins-core/package.json +2 -2
- package/node_modules/@sumi/plugins-governance/README.md +21 -3
- package/node_modules/@sumi/plugins-governance/dist/checkout.d.ts +21 -3
- package/node_modules/@sumi/plugins-governance/dist/checkout.js +145 -8
- package/node_modules/@sumi/plugins-governance/dist/checkout.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/commands/gate.js +13 -11
- package/node_modules/@sumi/plugins-governance/dist/commands/gate.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js +16 -5
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/instructions/push.md +1 -1
- package/node_modules/@sumi/plugins-governance/package.json +2 -2
- package/node_modules/@sumi/plugins-openspec/package.json +2 -2
- package/node_modules/@sumi/plugins-precedent/dist/plugins/selftest.js +20 -7
- package/node_modules/@sumi/plugins-precedent/dist/plugins/selftest.js.map +1 -1
- package/node_modules/@sumi/plugins-precedent/package.json +3 -3
- package/node_modules/@sumi/plugins-review/README.md +7 -4
- package/node_modules/@sumi/plugins-review/dist/commands/submit.js +47 -5
- package/node_modules/@sumi/plugins-review/dist/commands/submit.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js +21 -7
- package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/review.d.ts +38 -2
- package/node_modules/@sumi/plugins-review/dist/review.js +95 -7
- package/node_modules/@sumi/plugins-review/dist/review.js.map +1 -1
- package/node_modules/@sumi/plugins-review/package.json +3 -3
- package/package.json +10 -10
|
@@ -37,7 +37,7 @@ npm exec --offline --package /path/to/sumi-cli-<版本>.tgz -- sumi init [目录
|
|
|
37
37
|
|
|
38
38
|
`initInto` 不覆盖任何已有文件,凡是已存在的都记入 `skipped`。它不认识任何插件,流程与入口文档取自模板的 `init/`,区域、排除路径等取自模板的 `control/config.yaml`。
|
|
39
39
|
|
|
40
|
-
1. **区域划分**:逐个检查仓库的顶层条目。`node_modules`、`.git`,以及模板中非 business 区域的顶层目录(`control`、`precedents`、`openspec`)属于 sumi 自己,不参与划分。目录名在 `src`、`app`、`apps`、`lib`、`packages`、`server`、`client`、`web`、`api`、`services`、`test`、`tests` 之中的,登记为 business 区(`<名称>/**`);一个都没有时沿用模板的 `src
|
|
40
|
+
1. **区域划分**:逐个检查仓库的顶层条目。`node_modules`、`.git`,以及模板中非 business 区域的顶层目录(`control`、`precedents`、`openspec`)属于 sumi 自己,不参与划分。目录名在 `src`、`app`、`apps`、`lib`、`packages`、`server`、`client`、`web`、`api`、`services`、`test`、`tests` 之中的,登记为 business 区(`<名称>/**`);一个都没有时沿用模板的 `src/**`。其余条目登记为中立区。此外模板中立区的全部条目总是加入中立区:`AGENTS.md`、`.claude/**`、`.agents/**`、`.cursor/**`、`.codex/**`、`.gitignore`、`package.json` 与常见锁文件(`pnpm-lock.yaml`、`package-lock.json`、`yarn.lock`、`bun.lock`、`bun.lockb`)等,接入时还不存在也登记:`.gitignore` 可能由 init 自己创建,锁文件可能在接入后安装依赖时才出现。
|
|
41
41
|
2. **写入 `init/` 中的文件**:按相对路径写到仓库中,并按顶层目录成组处理。仓库中已存在的顶层目录(例如已接入的 `openspec/`)整组跳过,记为 `<目录>/(目录已存在)`,不重新初始化。
|
|
42
42
|
3. **写入项目配置**:基于模板配置,把 `zones.business` 换成按现有顶层目录识别的业务目录(其他区域保留模板的值),替换 `neutral`,在 `exclude` 中追加 `GENERATED_ADAPTERS`,删除 `groups`。仓库中已有 `sumi.config.yaml`(旧位置)时不写 `control/config.yaml`,避免新位置遮住旧配置。
|
|
43
43
|
4. **更新 `.gitignore`**:没有 `.sumi/` 这一行时追加。
|
|
@@ -91,7 +91,10 @@ export function initInto(root, options = {}) {
|
|
|
91
91
|
else
|
|
92
92
|
neutral.push(isDir ? `${name}/**` : name);
|
|
93
93
|
}
|
|
94
|
-
|
|
94
|
+
// 模板中立区里的通用文件(入口文档、AI 工具目录、.gitignore、包清单与锁文件等)一并登记:
|
|
95
|
+
// 它们可能由 init 本身创建(.gitignore),或在接入后才出现(安装依赖产生的锁文件)。
|
|
96
|
+
const templateNeutral = template.get('neutral')?.toJSON() ?? [];
|
|
97
|
+
for (const extra of [...templateNeutral, 'AGENTS.md', '.claude/**', '.agents/**', '.cursor/**', '.codex/**'])
|
|
95
98
|
if (!neutral.includes(extra))
|
|
96
99
|
neutral.push(extra);
|
|
97
100
|
template.set('zones', { ...templateZones, business: business.length ? business : (templateZones.business ?? ['src/**']) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sumi/kernel",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.2",
|
|
4
4
|
"description": "策略中立的编排内核",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"./package.json": "./package.json"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@sumi/plugin-sdk": "0.7.
|
|
16
|
+
"@sumi/plugin-sdk": "0.7.2",
|
|
17
17
|
"yaml": "2.9.1",
|
|
18
18
|
"picomatch": "4.0.7"
|
|
19
19
|
}
|
|
@@ -137,7 +137,12 @@ process.stdin
|
|
|
137
137
|
| `passFiles` | 为 `true` 时把本步骤命中的文件追加为命令参数,`checked` 也随之为这些文件;否则 `checked` 为 `all` |
|
|
138
138
|
| `pattern` | 正则,含 `file`、`line`、`message` 命名分组;匹配的输出行解析为 findings。退出码为 0 时这些 findings 为 warning,否则为 error |
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
命令的环境变量:
|
|
141
|
+
|
|
142
|
+
| 变量 | 含义 |
|
|
143
|
+
| ----------- | -------------------------------------------------------------------------------------------------- |
|
|
144
|
+
| `SUMI_BASE` | 比较基准,没有基准时为空。命令需要完整的改动清单(含删除与排除路径)时,可以据此自行计算 |
|
|
145
|
+
| `SUMI_TIER` | 本次运行的档位。未用 `--tier` 指定时为内核确定的档位:最低档位,命中配置的升档规则时为升档后的档位 |
|
|
141
146
|
|
|
142
147
|
项目插件通常派生自它:在 `control/plugins/<名称>/plugin.yaml` 中写 `base: core/exec`,在 `with` 中给出上面的配置项,并声明 `triggers`。
|
|
143
148
|
|
|
@@ -8,7 +8,8 @@ const tooLong = (argv, files) => `${argv.join(' ')}:文件参数超出 Windows
|
|
|
8
8
|
/**
|
|
9
9
|
* 命令适配:运行 with.argv 给出的已有命令(工作目录为仓库根),按退出码给出 pass 或 fail,完整输出存为证据。
|
|
10
10
|
* 可选 with.pattern(含 file、line、message 命名分组的正则)把输出行解析为 findings;
|
|
11
|
-
* 可选 with.passFiles 把命中的文件追加为命令参数;命令的环境中有 SUMI_BASE
|
|
11
|
+
* 可选 with.passFiles 把命中的文件追加为命令参数;命令的环境中有 SUMI_BASE(比较基准,无基准时为空)
|
|
12
|
+
* 与 SUMI_TIER(本次运行档位)。
|
|
12
13
|
* 用于零改写接入项目已有的检查脚本。
|
|
13
14
|
*/
|
|
14
15
|
await definePlugin((ctx) => {
|
|
@@ -17,7 +18,8 @@ await definePlugin((ctx) => {
|
|
|
17
18
|
return result({ status: 'blocked', summary: '缺少 with.argv:要运行的命令' });
|
|
18
19
|
const [cmd, ...args] = argv;
|
|
19
20
|
// SUMI_BASE:比较基准(无基准时为空)。命令需要完整改动清单(含删除与排除路径)时可据此自行计算。
|
|
20
|
-
|
|
21
|
+
// SUMI_TIER:本次运行档位(未指定档位时为内核确定的档位:最低档位或升档后的档位),命令可据此调整检查深度。
|
|
22
|
+
const env = { ...process.env, SUMI_BASE: ctx.base ?? '', SUMI_TIER: ctx.tier };
|
|
21
23
|
if (ctx.config.passFiles === true)
|
|
22
24
|
args.push(...ctx.files);
|
|
23
25
|
// 包装的是任意项目命令,无法确认能否分批重复执行、如何合并输出,因此不自动分批;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/plugins/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEhD,oCAAoC;AACpC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AACrC,kDAAkD;AAClD,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,OAAO,GAAG,CAAC,IAAc,EAAE,KAAa,EAAE,EAAE,CAChD,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,KAAK,4CAA4C,CAAC;AAE9F
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/plugins/exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sumi/plugins-core",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.2",
|
|
4
4
|
"description": "通用检查插件",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"./package.json": "./package.json"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@sumi/plugin-sdk": "0.7.
|
|
16
|
+
"@sumi/plugin-sdk": "0.7.2",
|
|
17
17
|
"yaml": "2.9.1",
|
|
18
18
|
"picomatch": "4.0.7"
|
|
19
19
|
},
|
|
@@ -94,12 +94,30 @@ git branch --set-upstream-to=upstream/main main
|
|
|
94
94
|
**验收流程**
|
|
95
95
|
|
|
96
96
|
0. 先判断人工确认:上述确认中有未完成的,立即拒绝并给出 `sumi approve <id>`,不运行检查;确认后重新推送才进入下面的步骤。
|
|
97
|
-
1.
|
|
97
|
+
1. 先清理本仓库中已无门禁使用的保留检出(见下方“检出的生命周期”),再在系统临时目录的唯一子目录 `sumi-gate-XXXXXX/<oid 前 12 位>` 中用 `git worktree add --detach` 检出被推送提交(位于 Git 内部目录之外)。被推送提交没有项目配置时,不创建检出,也不运行任何流程。
|
|
98
98
|
2. 运行 `gate.prepare`。未配置时按锁文件推断:pnpm 为 `pnpm install --frozen-lockfile --prefer-offline`,yarn、bun 为 `install --frozen-lockfile`,只有 `package.json` 时为 `npm ci --prefer-offline`,没有 `package.json` 时不准备。准备失败,或准备过程改写了受检文件,都算不通过。
|
|
99
99
|
3. 在检出中运行 `sumi run <gate.flow> --commit <oid> --json [--base <基准>] [--tier <gate.tier>]`。门禁现场重跑,不认已有的运行记录,只复用按内容存放的、已接受的评审结果。
|
|
100
|
-
4.
|
|
100
|
+
4. 运行后受检文件被改写,算不通过。通过时删除检出;不通过时保留检出,提示其路径与清理策略:检出仅供排查,之后的运行会自动清理它,其中的改动会被丢弃,修复请在作者工作树中进行。
|
|
101
101
|
5. 结论为 `pending`(例如评审未完成)时,门禁不派发评审,而是给出同范围的工作区命令 `sumi run <flow> [--tier …] --base <基准>`(无基准时为 `--all`),在工作区完成后再推送同一提交。
|
|
102
102
|
|
|
103
|
+
**检出的生命周期**
|
|
104
|
+
|
|
105
|
+
推送门禁与 `pr-report` 共用同一套检出管理:
|
|
106
|
+
|
|
107
|
+
- 创建:每次运行在系统临时目录(`TMPDIR` 等,因环境而异)下 `mkdtemp` 一个 `sumi-gate-XXXXXX` 父目录,先写入标记文件 `sumi-gate.json`(记录当前进程 pid 与创建时间),再在其中登记 worktree `<oid 前 12 位>`。同一提交的并发检查各用各的目录。
|
|
108
|
+
- 通过:用 `git worktree remove --force` 删除检出,再删除父目录(只删除符合下方第 2 条布局的父目录,不符合时什么也不做)。`git worktree remove` 失败(例如检出中的 `.git` 文件损坏)时,带标记的父目录直接删除并 `git worktree prune`,不留目录与登记。
|
|
109
|
+
- 意外抛错:同样删除检出与登记后再报错。
|
|
110
|
+
- 不通过(检查失败、评审未完成、环境准备失败、受检文件被改写等):保留检出与登记供排查,并在输出中给出路径与清理策略。
|
|
111
|
+
- 被中断或崩溃(Ctrl-C、kill、断电):进程来不及清理,检出与登记暂时留下,由下一次运行清理。
|
|
112
|
+
|
|
113
|
+
清理在每次创建检出之前进行:本仓库中已无门禁使用的 Sumi 检出,按创建时间(标记中的时间;旧版无标记的取父目录修改时间)只保留最新的一个作为最近一次失败的现场,其余删除;仍被使用的检出(含本进程的)不动。因此另一次门禁或 `pr-report` 不会立即抹掉刚失败的现场,而本仓库在没有门禁运行时最多留下一个保留检出(加上本次运行失败时保留的)。保留检出中的改动会在被清理时丢弃,修复始终在作者工作树中进行。判定方法:
|
|
114
|
+
|
|
115
|
+
1. 只看本仓库 `git worktree list` 登记的 worktree(不扫描临时目录,因此不论检出位于哪个临时根目录都能找到,也不会碰到其他仓库或未登记的目录);锁定的 worktree 不处理。
|
|
116
|
+
2. 父目录名须为 `sumi-gate-XXXXXX`、检出目录名须为 12 位十六进制;父目录中只能有检出目录与标记文件。不符合的一律不动。
|
|
117
|
+
3. 有标记时,标记中的进程仍存活(或无权探测)即视为正在使用,不清理——同一台机器上其他仓库、其他 worktree 乃至同仓库并发运行的门禁都按此保护;本进程自己的检出也不清理。没有标记的检出来自旧版本,创建超过一小时才视为不再使用。
|
|
118
|
+
|
|
119
|
+
清理尽力而为,失败不影响本次门禁。不再登记在任何仓库中的旧 `sumi-gate-*` 目录不会被自动删除,可在确认没有门禁运行后手动删除。
|
|
120
|
+
|
|
103
121
|
## 人工确认与编辑窗口
|
|
104
122
|
|
|
105
123
|
确认请求、确认记录与编辑窗口都存放在 `<git 公共目录>/sumi/` 下(`requests/`、`approvals/`、`unlock.json`),所有 worktree 共用,不在工作树中,也不随提交传播。同一对象重复登记得到同一个请求 id。`requireApproval` 由包入口导出,供其他插件发起确认。
|
|
@@ -134,7 +152,7 @@ guard 只按工作区当前的项目配置判断受保护路径。相对路径
|
|
|
134
152
|
1. 用 `gh pr view` 取 PR 的头提交、GitHub 当前目标分支 head、目标分支名称和 URL。本地 `HEAD` 必须等于 PR 头提交。
|
|
135
153
|
2. 以头提交与 GitHub 返回的精确目标分支 head 的合并基础为基准,按与门禁相同的方式(独立检出、`gate.*` 配置)现场运行门禁流程。这个范围不依赖本地可能过期或属于 fork 的 `origin/<目标分支>`;若本地缺少精确目标提交,只从 PR URL 对应的基仓库补取目标分支,不改写本地分支和 remote tracking ref。
|
|
136
154
|
3. 结论为 `pending` 时不发布,给出工作区命令。没有得到结论时也不发布。
|
|
137
|
-
4. 生成评论:结论、范围、流程与档位、各步骤状态表(不含不适用的步骤)、各步骤的报告段落、error 级问题(最多 30 条)。评论以稳定标记 `<!-- sumi-pr-report -->` 开头,下一行用 `<!-- sumi-pr-report-head:<完整 OID> -->` 绑定当前 PR 头提交。同一 PR 上已有稳定标记的评论时,通过 `gh api` 更新它,否则用 `gh pr comment`
|
|
155
|
+
4. 生成评论:结论、范围、流程与档位、各步骤状态表(不含不适用的步骤)、各步骤的报告段落、error 级问题(最多 30 条)。评论以稳定标记 `<!-- sumi-pr-report -->` 开头,下一行用 `<!-- sumi-pr-report-head:<完整 OID> -->` 绑定当前 PR 头提交。同一 PR 上已有稳定标记的评论时,通过 `gh api` 更新它,否则用 `gh pr comment` 新建。正文先写入临时目录 `sumi-pr-report-*` 中的文件交给 gh,无论发布成功与否,命令结束前都删除该目录。
|
|
138
156
|
|
|
139
157
|
### 附加图片或视频
|
|
140
158
|
|
|
@@ -23,16 +23,34 @@ export interface CheckoutRun {
|
|
|
23
23
|
/** 门禁流程与档位(来自被检提交的项目配置)。 */
|
|
24
24
|
flow: string;
|
|
25
25
|
tier?: string;
|
|
26
|
-
/**
|
|
26
|
+
/** 检出目录;通过且未被改写时已删除,否则保留供排查(见 retainedNotice)。 */
|
|
27
27
|
wt: string;
|
|
28
28
|
}
|
|
29
|
+
/** 父目录中的标记文件:证明目录由 Sumi 创建,并记录正在使用它的门禁进程。 */
|
|
30
|
+
export declare const GATE_MARKER = "sumi-gate.json";
|
|
31
|
+
/**
|
|
32
|
+
* 清理本仓库登记的、由 Sumi 创建且已无门禁使用的保留检出(失败时保留的、被中断或崩溃遗留的),
|
|
33
|
+
* 其中创建最晚的一个作为最近一次失败的现场保留,不被另一次运行立即抹掉;仍被使用的检出(含本进程的)不动。
|
|
34
|
+
* 只处理 git worktree list 中的条目,从不扫描临时目录,因此不会删除其他仓库或非 Sumi 创建的目录。
|
|
35
|
+
* 尽力而为:任何错误都不影响本次门禁。返回被清理的检出路径。
|
|
36
|
+
*/
|
|
37
|
+
export declare function sweepGateWorktrees(root: string, now?: number): string[];
|
|
29
38
|
/**
|
|
30
39
|
* 在 Git 内部目录之外创建一次性门禁 worktree。
|
|
31
|
-
*
|
|
40
|
+
* 唯一的临时父目录避免同一提交的并发检查互相复用或删除现场;父目录中的标记文件记录本进程 pid,
|
|
41
|
+
* 在登记 worktree 之前写入,使并发运行的清理始终能识别出它正在使用。
|
|
42
|
+
* 创建前先清理本仓库中已无门禁使用的保留检出。
|
|
32
43
|
*/
|
|
33
44
|
export declare function createGateWorktree(root: string, oid: string, temporaryRoot?: string): string;
|
|
34
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* 移除门禁 worktree、其唯一临时父目录与 worktree 登记。
|
|
47
|
+
* 只处理符合 Sumi 布局的检出(见 gateLayout),否则什么也不做并返回 false,绝不删除其他目录。
|
|
48
|
+
* git worktree remove 失败(例如检出中的 .git 文件已损坏)时,仅对带 Sumi 标记的父目录
|
|
49
|
+
* 直接删除并 prune 登记;没有标记的旧版检出保留现场。返回检出目录是否已不存在。
|
|
50
|
+
*/
|
|
35
51
|
export declare function removeGateWorktree(root: string, wt: string): boolean;
|
|
52
|
+
/** 检出仍保留时给出的说明(路径与清理策略);检出已删除时为 null。 */
|
|
53
|
+
export declare function retainedNotice(run: CheckoutRun): string | null;
|
|
36
54
|
/** 未配置 gate.prepare 时按检出中的锁文件推断依赖安装命令;没有 package.json 时不准备。 */
|
|
37
55
|
export declare function defaultPrepare(wt: string): string[];
|
|
38
56
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { execFileSync } from 'node:child_process';
|
|
2
|
-
import { existsSync, mkdtempSync, rmSync } from 'node:fs';
|
|
2
|
+
import { existsSync, mkdtempSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { tmpdir } from 'node:os';
|
|
4
|
-
import { dirname, join } from 'node:path';
|
|
4
|
+
import { basename, dirname, join } from 'node:path';
|
|
5
5
|
import { PROJECT_SUMI, spawnCommandSync } from '@sumi/plugin-sdk';
|
|
6
6
|
import { configAt } from './protected.js';
|
|
7
7
|
const git = (root, args, cwd = root) => execFileSync('git', args, { cwd, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'], windowsHide: true }).trim();
|
|
@@ -14,15 +14,121 @@ const tryGit = (root, args) => {
|
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
const trackedClean = (root, wt) => git(root, ['status', '--porcelain', '--untracked-files=no'], wt).split('\n').filter(Boolean);
|
|
17
|
+
/** 检出父目录(mkdtemp 生成)与检出目录(提交前 12 位)的形状;不符合的目录一律不视为 Sumi 创建。 */
|
|
18
|
+
const PARENT = /^sumi-gate-[A-Za-z0-9]{6}$/;
|
|
19
|
+
const LEAF = /^[0-9a-f]{12}$/;
|
|
20
|
+
/** 父目录中的标记文件:证明目录由 Sumi 创建,并记录正在使用它的门禁进程。 */
|
|
21
|
+
export const GATE_MARKER = 'sumi-gate.json';
|
|
22
|
+
/** 没有标记文件的旧版检出:创建超过此时长才视为不再使用。 */
|
|
23
|
+
const LEGACY_IDLE_MS = 60 * 60 * 1000;
|
|
24
|
+
const readMarker = (parent) => {
|
|
25
|
+
try {
|
|
26
|
+
const value = JSON.parse(readFileSync(join(parent, GATE_MARKER), 'utf8'));
|
|
27
|
+
return Number.isInteger(value.pid) && typeof value.created === 'number' ? value : null;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
/** 进程是否存活:没有权限探测(EPERM)时按存活处理,宁可不清理。 */
|
|
34
|
+
function alive(pid) {
|
|
35
|
+
if (pid === process.pid)
|
|
36
|
+
return true;
|
|
37
|
+
try {
|
|
38
|
+
process.kill(pid, 0);
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
return error.code === 'EPERM';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 检出是否符合 Sumi 创建的布局:父目录名为 sumi-gate-XXXXXX、检出目录名为提交前 12 位,
|
|
47
|
+
* 父目录中只有检出目录与标记文件(检出目录已不存在时只剩标记)。返回标记(旧版检出为 null),
|
|
48
|
+
* 不符合时返回 false。清理与删除都以此为前提,不符合的目录一律不动。
|
|
49
|
+
*/
|
|
50
|
+
function gateLayout(wt) {
|
|
51
|
+
const parent = dirname(wt);
|
|
52
|
+
if (!PARENT.test(basename(parent)) || !LEAF.test(basename(wt)))
|
|
53
|
+
return false;
|
|
54
|
+
let entries;
|
|
55
|
+
try {
|
|
56
|
+
entries = readdirSync(parent);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
const marker = readMarker(parent);
|
|
62
|
+
const allowed = marker ? [GATE_MARKER, basename(wt)] : [basename(wt)];
|
|
63
|
+
return entries.every((e) => allowed.includes(e)) ? { marker } : false;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 已无门禁使用的 Sumi 检出返回其创建时间,否则返回 null。
|
|
67
|
+
* 有标记时以其中进程是否存活为准、创建时间取标记;没有标记的旧版检出须创建超过一小时,创建时间取父目录 mtime。
|
|
68
|
+
*/
|
|
69
|
+
function staleSince(wt, now) {
|
|
70
|
+
const layout = gateLayout(wt);
|
|
71
|
+
if (!layout)
|
|
72
|
+
return null;
|
|
73
|
+
if (layout.marker)
|
|
74
|
+
return alive(layout.marker.pid) ? null : layout.marker.created;
|
|
75
|
+
try {
|
|
76
|
+
const created = statSync(dirname(wt)).mtimeMs;
|
|
77
|
+
return now - created > LEGACY_IDLE_MS ? created : null;
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/** 本仓库登记的全部 worktree 路径(git worktree list);锁定的 worktree 不列出。 */
|
|
84
|
+
function registeredWorktrees(root) {
|
|
85
|
+
const out = tryGit(root, ['worktree', 'list', '--porcelain']);
|
|
86
|
+
if (!out)
|
|
87
|
+
return [];
|
|
88
|
+
return out
|
|
89
|
+
.split('\n\n')
|
|
90
|
+
.map((block) => block.split('\n'))
|
|
91
|
+
.filter((lines) => !lines.some((l) => l === 'locked' || l.startsWith('locked ')))
|
|
92
|
+
.map((lines) => lines.find((l) => l.startsWith('worktree '))?.slice('worktree '.length))
|
|
93
|
+
.filter((p) => !!p);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 清理本仓库登记的、由 Sumi 创建且已无门禁使用的保留检出(失败时保留的、被中断或崩溃遗留的),
|
|
97
|
+
* 其中创建最晚的一个作为最近一次失败的现场保留,不被另一次运行立即抹掉;仍被使用的检出(含本进程的)不动。
|
|
98
|
+
* 只处理 git worktree list 中的条目,从不扫描临时目录,因此不会删除其他仓库或非 Sumi 创建的目录。
|
|
99
|
+
* 尽力而为:任何错误都不影响本次门禁。返回被清理的检出路径。
|
|
100
|
+
*/
|
|
101
|
+
export function sweepGateWorktrees(root, now = Date.now()) {
|
|
102
|
+
const stale = registeredWorktrees(root)
|
|
103
|
+
.map((wt) => ({ wt, created: staleSince(wt, now) }))
|
|
104
|
+
.filter((c) => c.created !== null)
|
|
105
|
+
.sort((a, b) => b.created - a.created)
|
|
106
|
+
.slice(1);
|
|
107
|
+
const removed = [];
|
|
108
|
+
for (const { wt } of stale) {
|
|
109
|
+
try {
|
|
110
|
+
if (removeGateWorktree(root, wt))
|
|
111
|
+
removed.push(wt);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
// 尽力而为
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return removed;
|
|
118
|
+
}
|
|
17
119
|
/**
|
|
18
120
|
* 在 Git 内部目录之外创建一次性门禁 worktree。
|
|
19
|
-
*
|
|
121
|
+
* 唯一的临时父目录避免同一提交的并发检查互相复用或删除现场;父目录中的标记文件记录本进程 pid,
|
|
122
|
+
* 在登记 worktree 之前写入,使并发运行的清理始终能识别出它正在使用。
|
|
123
|
+
* 创建前先清理本仓库中已无门禁使用的保留检出。
|
|
20
124
|
*/
|
|
21
125
|
export function createGateWorktree(root, oid, temporaryRoot = tmpdir()) {
|
|
22
126
|
tryGit(root, ['worktree', 'prune']);
|
|
127
|
+
sweepGateWorktrees(root);
|
|
23
128
|
const parent = mkdtempSync(join(temporaryRoot, 'sumi-gate-'));
|
|
24
129
|
const wt = join(parent, oid.slice(0, 12));
|
|
25
130
|
try {
|
|
131
|
+
writeFileSync(join(parent, GATE_MARKER), `${JSON.stringify({ pid: process.pid, created: Date.now() })}\n`);
|
|
26
132
|
git(root, ['worktree', 'add', '-q', '--detach', wt, oid]);
|
|
27
133
|
return wt;
|
|
28
134
|
}
|
|
@@ -31,13 +137,33 @@ export function createGateWorktree(root, oid, temporaryRoot = tmpdir()) {
|
|
|
31
137
|
throw error;
|
|
32
138
|
}
|
|
33
139
|
}
|
|
34
|
-
/**
|
|
140
|
+
/**
|
|
141
|
+
* 移除门禁 worktree、其唯一临时父目录与 worktree 登记。
|
|
142
|
+
* 只处理符合 Sumi 布局的检出(见 gateLayout),否则什么也不做并返回 false,绝不删除其他目录。
|
|
143
|
+
* git worktree remove 失败(例如检出中的 .git 文件已损坏)时,仅对带 Sumi 标记的父目录
|
|
144
|
+
* 直接删除并 prune 登记;没有标记的旧版检出保留现场。返回检出目录是否已不存在。
|
|
145
|
+
*/
|
|
35
146
|
export function removeGateWorktree(root, wt) {
|
|
36
|
-
|
|
147
|
+
const layout = gateLayout(wt);
|
|
148
|
+
if (!layout)
|
|
37
149
|
return false;
|
|
38
|
-
|
|
150
|
+
const parent = dirname(wt);
|
|
151
|
+
if (tryGit(root, ['worktree', 'remove', '--force', wt]) === null) {
|
|
152
|
+
if (!layout.marker)
|
|
153
|
+
return false;
|
|
154
|
+
rmSync(parent, { recursive: true, force: true });
|
|
155
|
+
tryGit(root, ['worktree', 'prune']);
|
|
156
|
+
return !existsSync(wt);
|
|
157
|
+
}
|
|
158
|
+
rmSync(parent, { recursive: true, force: true });
|
|
39
159
|
return true;
|
|
40
160
|
}
|
|
161
|
+
/** 检出仍保留时给出的说明(路径与清理策略);检出已删除时为 null。 */
|
|
162
|
+
export function retainedNotice(run) {
|
|
163
|
+
if (!run.wt || !existsSync(run.wt))
|
|
164
|
+
return null;
|
|
165
|
+
return `检出保留在 ${run.wt},修复请在作者工作树中进行;该检出仅供排查,之后在本仓库运行门禁或 pr-report 时会被自动清理(本仓库只保留最近一次失败的检出),其中的改动会被丢弃`;
|
|
166
|
+
}
|
|
41
167
|
/** 解析 sumi run --json 的输出;没有输出或不是 JSON 对象时返回 null。 */
|
|
42
168
|
function parseResult(stdout) {
|
|
43
169
|
try {
|
|
@@ -75,6 +201,17 @@ export function runGateFlow(root, oid, base, log = () => { }) {
|
|
|
75
201
|
const flow = gate.flow ?? 'check';
|
|
76
202
|
const wt = createGateWorktree(root, oid);
|
|
77
203
|
const out = { flow, ...(gate.tier ? { tier: gate.tier } : {}), wt, brief: '' };
|
|
204
|
+
try {
|
|
205
|
+
return runInGateWorktree(root, oid, base, gate, out, log);
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
// 意外抛错:没有可供排查的结论,不保留检出与登记
|
|
209
|
+
removeGateWorktree(root, wt);
|
|
210
|
+
throw error;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
function runInGateWorktree(root, oid, base, gate, out, log) {
|
|
214
|
+
const { flow, wt } = out;
|
|
78
215
|
const elapsed = (start) => `${((Date.now() - start) / 1000).toFixed(1)}s`;
|
|
79
216
|
const prepare = gate.prepare ?? defaultPrepare(wt);
|
|
80
217
|
if (prepare.length) {
|
|
@@ -83,7 +220,7 @@ export function runGateFlow(root, oid, base, log = () => { }) {
|
|
|
83
220
|
const [cmd, ...args] = prepare;
|
|
84
221
|
const r = spawnCommandSync(cmd, args, { cwd: wt, encoding: 'utf8', maxBuffer: 64 * 1024 * 1024, windowsHide: true });
|
|
85
222
|
if (r.status !== 0)
|
|
86
|
-
return { ...out, problem: `环境准备失败:${prepare.join(' ')}
|
|
223
|
+
return { ...out, problem: `环境准备失败:${prepare.join(' ')}` };
|
|
87
224
|
log(` 环境就绪(${elapsed(start)})`);
|
|
88
225
|
}
|
|
89
226
|
const dirty = trackedClean(root, wt);
|
|
@@ -91,7 +228,7 @@ export function runGateFlow(root, oid, base, log = () => { }) {
|
|
|
91
228
|
return { ...out, problem: `环境准备改写了受检文件:${dirty.join('、')}` };
|
|
92
229
|
const launcher = join(wt, 'control/bin/sumi.cjs');
|
|
93
230
|
if (!existsSync(launcher))
|
|
94
|
-
return { ...out, problem:
|
|
231
|
+
return { ...out, problem: '受检提交缺少项目 Sumi launcher:control/bin/sumi.cjs' };
|
|
95
232
|
const cmd = process.execPath;
|
|
96
233
|
const args = [launcher, 'run', flow, '--commit', oid, '--json', ...(base ? ['--base', base] : [])];
|
|
97
234
|
if (gate.tier)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../src/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA2B1C,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,IAAc,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,CACvD,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACpH,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,IAAc,EAAE,EAAE;IAC9C,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE,CAChD,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,sBAAsB,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAE/F;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,GAAW,EAAE,aAAa,GAAG,MAAM,EAAE;IACpF,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1D,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,EAAU;IACzD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC/E,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAID,sDAAsD;AACtD,SAAS,WAAW,CAAC,MAAqB;IACxC,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IAChH,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IACvF,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IACtF,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACnF,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,GAAW,EAAE,IAAmB,EAAE,MAA8B,GAAG,EAAE,GAAE,CAAC;IAChH,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnC,2CAA2C;IAC3C,qCAAqC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;IAC1G,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAClC,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAE/E,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAClF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,GAAG,CAAC,UAAU,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;QAC/B,MAAM,CAAC,GAAG,gBAAgB,CAAC,GAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACtH,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC;QAC1F,GAAG,CAAC,UAAU,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,eAAe,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAE/E,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,qDAAqD,EAAE,EAAE,EAAE,CAAC;IACjH,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,IAAI,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,GAAG,CAAC,QAAQ,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,kDAAkD;IAClD,MAAM,CAAC,GAAG,gBAAgB,CAAC,GAAI,EAAE,IAAI,EAAE;QACrC,GAAG,EAAE,EAAE;QACP,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC3B,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;QACpC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE;QAC3C,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,GAAG,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,8CAA8C;QAC9C,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QACtG,MAAM,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,2BAA2B,EAAE,CAAC;IACxF,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC9C,kCAAkC;QAClC,MAAM,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IACpE,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,GAAG,GAAgB;QACvB,GAAG,GAAG;QACN,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;QACzB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;IACF,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,gBAAgB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAChF,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM;QAAE,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,gBAAgB,CAAC,GAAgB,EAAE,IAAmB;IACpE,OAAO,GAAG,YAAY,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACzH,CAAC"}
|
|
1
|
+
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../src/checkout.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { createHash } from 'node:crypto';
|
|
|
3
3
|
import { readFileSync } from 'node:fs';
|
|
4
4
|
import { configAt, protectedMatcher } from '../protected.js';
|
|
5
5
|
import { semanticChanges } from '../semantic.js';
|
|
6
|
-
import { runGateFlow, workspaceCommand } from '../checkout.js';
|
|
6
|
+
import { retainedNotice, runGateFlow, workspaceCommand } from '../checkout.js';
|
|
7
7
|
import { resolvePushUpstream } from '../push-base.js';
|
|
8
8
|
import { requireApproval } from '../state.js';
|
|
9
9
|
import { gitPaths, projectSumiCommand } from '@sumi/plugin-sdk';
|
|
@@ -42,19 +42,21 @@ function runInCheckout(outcome, oid, base, upstream) {
|
|
|
42
42
|
if (run.problem) {
|
|
43
43
|
outcome.ok = false;
|
|
44
44
|
outcome.lines.push(`⊘ ${run.problem}`);
|
|
45
|
-
if (!run.conclusion)
|
|
46
|
-
return;
|
|
47
45
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
if (run.conclusion) {
|
|
47
|
+
let brief = run.brief;
|
|
48
|
+
if (run.conclusion === 'pending') {
|
|
49
|
+
// 门禁不派发评审或人工确认:检出里的 next 指向检出目录,照做无效,改为指引在工作区完成。
|
|
50
|
+
brief = brief.split('\nnext:')[0];
|
|
51
|
+
brief += `\n门禁不派发评审:请在工作区运行 ${workspaceCommand(run, base)},按简报完成待处理项(评审结果用 node ./control/bin/sumi.cjs submit 提交),再推送同一提交`;
|
|
52
|
+
}
|
|
53
|
+
outcome.lines.push(...brief.split('\n').map((l) => ` ${l}`));
|
|
53
54
|
}
|
|
54
|
-
|
|
55
|
-
if (run.conclusion !== 'pass') {
|
|
55
|
+
if (run.problem || run.conclusion !== 'pass') {
|
|
56
56
|
outcome.ok = false;
|
|
57
|
-
|
|
57
|
+
const retained = retainedNotice(run);
|
|
58
|
+
if (retained)
|
|
59
|
+
outcome.lines.push(` ${retained}`);
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
62
|
function verify(localRef, localOid, remoteRef, remoteOid) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/commands/gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/commands/gate.ts"],"names":[],"mappings":"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"}
|