@mycodemap/mycodemap 0.3.7 → 0.4.1

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.
Files changed (37) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/cli/commands/ship/analyzer.d.ts +1 -1
  3. package/dist/cli/commands/ship/analyzer.d.ts.map +1 -1
  4. package/dist/cli/commands/ship/analyzer.js +8 -1
  5. package/dist/cli/commands/ship/analyzer.js.map +1 -1
  6. package/dist/cli/commands/ship/checker.d.ts +1 -1
  7. package/dist/cli/commands/ship/checker.d.ts.map +1 -1
  8. package/dist/cli/commands/ship/checker.js +18 -4
  9. package/dist/cli/commands/ship/checker.js.map +1 -1
  10. package/dist/cli/commands/ship/index.js +2 -2
  11. package/dist/cli/commands/ship/index.js.map +1 -1
  12. package/dist/cli/commands/ship/monitor.d.ts +17 -2
  13. package/dist/cli/commands/ship/monitor.d.ts.map +1 -1
  14. package/dist/cli/commands/ship/monitor.js +116 -29
  15. package/dist/cli/commands/ship/monitor.js.map +1 -1
  16. package/dist/cli/commands/ship/pipeline.d.ts.map +1 -1
  17. package/dist/cli/commands/ship/pipeline.js +97 -18
  18. package/dist/cli/commands/ship/pipeline.js.map +1 -1
  19. package/dist/cli/commands/ship/publisher.d.ts +12 -2
  20. package/dist/cli/commands/ship/publisher.d.ts.map +1 -1
  21. package/dist/cli/commands/ship/publisher.js +227 -29
  22. package/dist/cli/commands/ship/publisher.js.map +1 -1
  23. package/dist/cli/commands/ship/rules/quality-rules.d.ts +2 -1
  24. package/dist/cli/commands/ship/rules/quality-rules.d.ts.map +1 -1
  25. package/dist/cli/commands/ship/rules/quality-rules.js +106 -35
  26. package/dist/cli/commands/ship/rules/quality-rules.js.map +1 -1
  27. package/dist/cli/commands/ship/versioner.d.ts +1 -1
  28. package/dist/cli/commands/ship/versioner.d.ts.map +1 -1
  29. package/dist/cli/commands/ship/versioner.js +4 -2
  30. package/dist/cli/commands/ship/versioner.js.map +1 -1
  31. package/dist/cli/index.js +1 -1
  32. package/dist/cli/index.js.map +1 -1
  33. package/docs/PUBLISHING.md +18 -4
  34. package/docs/ai-guide/COMMANDS.md +1 -1
  35. package/docs/ai-guide/PROMPTS.md +38 -0
  36. package/package.json +1 -1
  37. package/scripts/pre-release-check.js +21 -3
@@ -1,5 +1,7 @@
1
1
  // [META] since:2026-03 | owner:cli-team | stable:false
2
2
  // [WHY] 流水线编排,协调所有步骤的执行
3
+ import { createInterface } from 'node:readline/promises';
4
+ import { stdin as input, stdout as output } from 'node:process';
3
5
  import chalk from 'chalk';
4
6
  import { analyzeCommits, formatAnalyzeOutput } from './analyzer.js';
5
7
  import { calculateVersion, formatVersionOutput } from './versioner.js';
@@ -7,6 +9,7 @@ import { runQualityChecks, formatCheckOutput, shouldBlockRelease } from './check
7
9
  import { publish, formatPublishOutput } from './publisher.js';
8
10
  import { monitorCI, formatMonitorOutput } from './monitor.js';
9
11
  const SEPARATOR = '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━';
12
+ const CONFIRM_TIMEOUT_MS = 30_000;
10
13
  async function runStep(name, fn, format) {
11
14
  console.log(chalk.blue(`\n> ${name}...`));
12
15
  try {
@@ -22,6 +25,36 @@ async function runStep(name, fn, format) {
22
25
  return false;
23
26
  }
24
27
  }
28
+ async function promptForReleaseConfirmation(version, checkOutput) {
29
+ if (!input.isTTY || !output.isTTY) {
30
+ return 'unavailable';
31
+ }
32
+ console.log(SEPARATOR);
33
+ console.log(chalk.yellow(`\n⚠️ 置信度: ${checkOutput.confidence.score}/100 — 需确认发布`));
34
+ const warnings = checkOutput.confidence.reasons
35
+ .filter(reason => reason.includes('-') || reason.includes('低') || reason.includes('修改'))
36
+ .slice(0, 3);
37
+ if (warnings.length > 0) {
38
+ console.log(chalk.gray(' 风险提示:'));
39
+ for (const warning of warnings) {
40
+ console.log(chalk.gray(` - ${warning}`));
41
+ }
42
+ }
43
+ console.log(chalk.gray(` 目标版本: v${version}`));
44
+ const readline = createInterface({ input, output });
45
+ const timer = setTimeout(() => readline.close(), CONFIRM_TIMEOUT_MS);
46
+ try {
47
+ const answer = await readline.question('确认发布? [y/N] ');
48
+ return /^y(?:es)?$/i.test(answer.trim()) ? 'confirmed' : 'rejected';
49
+ }
50
+ catch {
51
+ return 'timeout';
52
+ }
53
+ finally {
54
+ clearTimeout(timer);
55
+ readline.close();
56
+ }
57
+ }
25
58
  export async function runShipPipeline(ctx) {
26
59
  const result = { success: false };
27
60
  console.log(chalk.blue('\n🚀 智能发布系统启动'));
@@ -34,14 +67,14 @@ export async function runShipPipeline(ctx) {
34
67
  // Step 1: ANALYZE
35
68
  const analyzeStep = await runStep('变更分析', async () => {
36
69
  analyzeResult = await analyzeCommits();
37
- }, () => analyzeResult ? formatAnalyzeOutput(analyzeResult) : '');
70
+ }, () => analyzeResult ? formatAnalyzeOutput(analyzeResult, ctx.verbose) : '');
38
71
  if (!analyzeStep || !analyzeResult) {
39
72
  return { ...result, blocked: true, blockReason: '变更分析失败' };
40
73
  }
41
74
  // Step 2: VERSION
42
75
  const versionStep = await runStep('版本计算', async () => {
43
76
  versionResult = await calculateVersion(analyzeResult);
44
- }, () => versionResult ? formatVersionOutput(versionResult) : '');
77
+ }, () => versionResult ? formatVersionOutput(versionResult, ctx.verbose) : '');
45
78
  if (!versionStep || !versionResult) {
46
79
  return { ...result, blocked: true, blockReason: '版本计算失败' };
47
80
  }
@@ -59,7 +92,7 @@ export async function runShipPipeline(ctx) {
59
92
  // Step 3: CHECK
60
93
  const checkStep = await runStep('质量检查', async () => {
61
94
  checkOutput = await runQualityChecks(analyzeResult, versionResult);
62
- }, () => checkOutput ? formatCheckOutput(checkOutput) : '');
95
+ }, () => checkOutput ? formatCheckOutput(checkOutput, ctx.verbose) : '');
63
96
  if (!checkStep || !checkOutput) {
64
97
  return { ...result, blocked: true, blockReason: '质量检查失败' };
65
98
  }
@@ -87,24 +120,38 @@ export async function runShipPipeline(ctx) {
87
120
  }
88
121
  // 置信度 60-75 需要确认
89
122
  if (checkOutput.confidence.decision === 'confirm' && !ctx.autoConfirm) {
90
- console.log(SEPARATOR);
91
- console.log(chalk.yellow(`\n⚠️ 置信度: ${checkOutput.confidence.score}/100 — 需确认发布`));
92
- console.log(chalk.gray(' 如需发布,请运行: codemap ship --yes'));
93
- return {
94
- success: false,
95
- analyzeResult,
96
- versionResult,
97
- checkOutput,
98
- blocked: true,
99
- blockReason: '需要手动确认'
100
- };
123
+ const confirmResult = await promptForReleaseConfirmation(versionResult.suggestedVersion, checkOutput);
124
+ if (confirmResult !== 'confirmed') {
125
+ console.log(SEPARATOR);
126
+ if (confirmResult === 'unavailable') {
127
+ console.log(chalk.yellow('\n⚠️ 当前终端不可交互'));
128
+ console.log(chalk.gray(' 如需发布,请运行: codemap ship --yes'));
129
+ }
130
+ else if (confirmResult === 'timeout') {
131
+ console.log(chalk.yellow('\n⏱️ 确认超时,已取消发布'));
132
+ }
133
+ else {
134
+ console.log(chalk.yellow('\n已取消发布'));
135
+ }
136
+ return {
137
+ success: false,
138
+ analyzeResult,
139
+ versionResult,
140
+ checkOutput,
141
+ blocked: true,
142
+ blockReason: '需要手动确认'
143
+ };
144
+ }
101
145
  }
102
146
  // Step 4: PUBLISH (仅非 dry-run)
103
147
  let publishResult;
104
148
  if (!ctx.dryRun) {
105
149
  console.log(SEPARATOR);
106
150
  console.log(chalk.blue('\n> 开始发布...'));
107
- publishResult = await publish(versionResult.suggestedVersion, ctx.dryRun);
151
+ publishResult = await publish(versionResult.suggestedVersion, {
152
+ dryRun: ctx.dryRun,
153
+ analyzeResult
154
+ });
108
155
  console.log(chalk.green(formatPublishOutput(publishResult)));
109
156
  if (!publishResult.success) {
110
157
  console.log(SEPARATOR);
@@ -121,8 +168,26 @@ export async function runShipPipeline(ctx) {
121
168
  }
122
169
  // Step 5: MONITOR
123
170
  console.log(SEPARATOR);
124
- const monitorResult = await monitorCI(ctx.dryRun);
125
- console.log(chalk.green(formatMonitorOutput(monitorResult)));
171
+ const monitorResult = await monitorCI({
172
+ dryRun: ctx.dryRun,
173
+ tagName: publishResult.tagName,
174
+ headSha: publishResult.headSha,
175
+ startedAtMs: publishResult.pushedAtMs
176
+ });
177
+ const monitorOutput = formatMonitorOutput(monitorResult, ctx.verbose);
178
+ console.log(monitorResult.success ? chalk.green(monitorOutput) : chalk.yellow(monitorOutput));
179
+ if (!monitorResult.success) {
180
+ return {
181
+ success: false,
182
+ analyzeResult,
183
+ versionResult,
184
+ checkOutput,
185
+ publishResult,
186
+ monitorResult,
187
+ blocked: true,
188
+ blockReason: monitorResult.status === 'timeout' ? 'CI 监控超时' : 'GitHub Actions 发布失败'
189
+ };
190
+ }
126
191
  result.monitorResult = monitorResult;
127
192
  }
128
193
  else {
@@ -130,17 +195,31 @@ export async function runShipPipeline(ctx) {
130
195
  console.log(chalk.blue('\n> 发布模拟'));
131
196
  console.log(chalk.gray(` 版本: v${versionResult.suggestedVersion}`));
132
197
  console.log(chalk.gray(' [dry-run] 跳过实际发布'));
198
+ console.log(SEPARATOR);
199
+ console.log(chalk.green('\n✅ Dry-run 完成'));
200
+ console.log(chalk.gray(` 推荐版本: v${versionResult.suggestedVersion}`));
201
+ console.log(chalk.gray(' 未执行实际发布'));
202
+ return {
203
+ success: true,
204
+ analyzeResult,
205
+ versionResult,
206
+ checkOutput
207
+ };
133
208
  }
134
209
  // 成功输出
135
210
  console.log(SEPARATOR);
136
211
  console.log(chalk.green('\n🎉 发布成功!'));
137
212
  console.log(chalk.green(` v${versionResult.suggestedVersion} 已上线`));
213
+ if (result.monitorResult?.releaseUrl) {
214
+ console.log(chalk.gray(` ${result.monitorResult.releaseUrl}`));
215
+ }
138
216
  return {
139
217
  success: true,
140
218
  analyzeResult,
141
219
  versionResult,
142
220
  checkOutput,
143
- publishResult
221
+ publishResult,
222
+ monitorResult: result.monitorResult
144
223
  };
145
224
  }
146
225
  export function formatPipelineError(result) {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/cli/commands/ship/pipeline.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,wBAAwB;AAExB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAiB,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAiB,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAe,MAAM,cAAc,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAiB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAiB,MAAM,cAAc,CAAC;AAmB7E,MAAM,SAAS,GAAG,iCAAiC,CAAC;AAEpD,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,EAAuB,EACvB,MAAoB;IAEpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC;QACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAwB;IAC5D,MAAM,MAAM,GAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACzC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,aAAwC,CAAC;IAC7C,IAAI,aAAwC,CAAC;IAC7C,IAAI,WAAoC,CAAC;IAEzC,kBAAkB;IAClB,MAAM,WAAW,GAAG,MAAM,OAAO,CAC/B,MAAM,EACN,KAAK,IAAI,EAAE;QACT,aAAa,GAAG,MAAM,cAAc,EAAE,CAAC;IACzC,CAAC,EACD,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAC9D,CAAC;IAEF,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAC7D,CAAC;IAED,kBAAkB;IAClB,MAAM,WAAW,GAAG,MAAM,OAAO,CAC/B,MAAM,EACN,KAAK,IAAI,EAAE;QACT,aAAa,GAAG,MAAM,gBAAgB,CAAC,aAAc,CAAC,CAAC;IACzD,CAAC,EACD,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAC9D,CAAC;IAEF,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzE,CAAC;IAED,0CAA0C;IAC1C,IAAI,aAAa,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzE,CAAC;IAED,gBAAgB;IAChB,MAAM,SAAS,GAAG,MAAM,OAAO,CAC7B,MAAM,EACN,KAAK,IAAI,EAAE;QACT,WAAW,GAAG,MAAM,gBAAgB,CAAC,aAAc,EAAE,aAAc,CAAC,CAAC;IACvE,CAAC,EACD,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CACxD,CAAC;IAEF,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAC7D,CAAC;IAED,aAAa;IACb,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzC,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,WAAW,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;iBAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBAC5B,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,aAAa;YACb,aAAa;YACb,WAAW;YACX,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,SAAS;SACvB,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,WAAW,CAAC,UAAU,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC1D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,aAAa;YACb,aAAa;YACb,WAAW;YACX,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,QAAQ;SACtB,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,IAAI,aAAwC,CAAC;IAC7C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAEvC,aAAa,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAE7D,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,aAAa;gBACb,aAAa;gBACb,WAAW;gBACX,aAAa;gBACb,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,MAAM;aACpB,CAAC;QACJ,CAAC;QAED,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAE7D,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO;IACP,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,gBAAgB,MAAM,CAAC,CAAC,CAAC;IAEtE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,aAAa;QACb,aAAa;QACb,WAAW;QACX,aAAa;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAsB;IACxD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,UAAU,MAAM,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/cli/commands/ship/pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,21 @@
1
+ import { AnalyzeResult } from './analyzer.js';
2
+ export interface PublishOptions {
3
+ dryRun?: boolean;
4
+ analyzeResult?: AnalyzeResult;
5
+ }
1
6
  export interface PublishResult {
2
7
  success: boolean;
3
8
  version: string;
4
- npmPublished: boolean;
9
+ tagName: string;
10
+ versionCommitted: boolean;
5
11
  tagCreated: boolean;
6
12
  pushed: boolean;
13
+ headSha?: string;
14
+ pushedAtMs?: number;
15
+ repo?: string;
16
+ releaseUrl?: string;
7
17
  error?: string;
8
18
  }
9
- export declare function publish(version: string, dryRun?: boolean): Promise<PublishResult>;
19
+ export declare function publish(version: string, options?: PublishOptions): Promise<PublishResult>;
10
20
  export declare function formatPublishOutput(result: PublishResult): string;
11
21
  //# sourceMappingURL=publisher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/ship/publisher.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAuD9F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAqBjE"}
1
+ {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/ship/publisher.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAa,MAAM,eAAe,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAwND,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CA2EnG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAyBjE"}
@@ -1,49 +1,244 @@
1
1
  // [META] since:2026-03 | owner:cli-team | stable:false
2
- // [WHY] Step 4: 执行发布操作,npm publish + git tag
2
+ // [WHY] Step 4: 创建发布提交和 git tag,并通过 push 触发 GitHub Actions 发布
3
3
  import chalk from 'chalk';
4
4
  import { execSync } from 'child_process';
5
- export async function publish(version, dryRun = false) {
5
+ import { existsSync, readFileSync, writeFileSync } from 'fs';
6
+ const CHANGELOG_HEADER = '# Changelog\n\nAll notable changes to this project will be documented in this file.\n\n';
7
+ const COMMAND_MAX_BUFFER = 20 * 1024 * 1024;
8
+ function updateFileByRules(rules) {
9
+ for (const rule of rules) {
10
+ if (!existsSync(rule.file)) {
11
+ throw new Error(`缺少版本同步文件: ${rule.file}`);
12
+ }
13
+ const content = readFileSync(rule.file, 'utf-8');
14
+ if (!rule.pattern.test(content)) {
15
+ throw new Error(`无法在 ${rule.file} 中定位版本占位符`);
16
+ }
17
+ const updated = content.replace(rule.pattern, rule.replacement);
18
+ writeFileSync(rule.file, updated, 'utf-8');
19
+ }
20
+ }
21
+ function syncAIDocsVersion(version) {
22
+ const versionStr = version.replace(/^v/, '');
23
+ const quotedVersion = `$1${versionStr}$3`;
24
+ updateFileByRules([
25
+ {
26
+ file: 'AI_GUIDE.md',
27
+ pattern: /(> 版本:\s*)\d+\.\d+\.\d+(?:-[\w.]+)?/m,
28
+ replacement: `$1${versionStr}`
29
+ },
30
+ {
31
+ file: 'llms.txt',
32
+ pattern: /(> 版本:\s*)\d+\.\d+\.\d+(?:-[\w.]+)?/m,
33
+ replacement: `$1${versionStr}`
34
+ },
35
+ {
36
+ file: 'AI_DISCOVERY.md',
37
+ pattern: /("version"\s*:\s*")(\d+\.\d+\.\d+(?:-[\w.]+)?)(")/,
38
+ replacement: quotedVersion
39
+ },
40
+ {
41
+ file: 'ai-document-index.yaml',
42
+ pattern: /(version:\s*")(\d+\.\d+\.\d+(?:-[\w.]+)?)(")/,
43
+ replacement: quotedVersion
44
+ },
45
+ {
46
+ file: 'ai-document-index.yaml',
47
+ pattern: /(current:\s*")(\d+\.\d+\.\d+(?:-[\w.]+)?)(")/,
48
+ replacement: quotedVersion
49
+ },
50
+ {
51
+ file: 'ai-document-index.yaml',
52
+ pattern: /(min_supported:\s*")(\d+\.\d+\.\d+(?:-[\w.]+)?)(")/,
53
+ replacement: quotedVersion
54
+ }
55
+ ]);
56
+ }
57
+ function classifyCommitSection(type) {
58
+ const normalized = type.toLowerCase();
59
+ if (['feat', 'feature', 'enhance', 'improvement'].some(item => normalized.includes(item))) {
60
+ return '### 🚀 New Features';
61
+ }
62
+ if (['fix', 'bugfix', 'hotfix'].some(item => normalized.includes(item))) {
63
+ return '### 🐛 Bug Fixes';
64
+ }
65
+ if (normalized.includes('docs')) {
66
+ return '### 📚 Documentation';
67
+ }
68
+ if (normalized.includes('refactor')) {
69
+ return '### ♻️ Refactors';
70
+ }
71
+ return '### 🔧 Maintenance';
72
+ }
73
+ function buildReleaseTitle(analyzeResult) {
74
+ if (!analyzeResult) {
75
+ return 'Automated Ship Release';
76
+ }
77
+ if (analyzeResult.summary.features > 0) {
78
+ return 'Ship Workflow Release';
79
+ }
80
+ if (analyzeResult.summary.bugfixes > 0) {
81
+ return 'Ship Workflow Fixes';
82
+ }
83
+ if (analyzeResult.summary.docs > 0) {
84
+ return 'Documentation Sync';
85
+ }
86
+ return 'Automated Ship Release';
87
+ }
88
+ function formatCommitLine(commit) {
89
+ if (commit.scope) {
90
+ return `- **${commit.scope}**: ${commit.message}`;
91
+ }
92
+ return `- ${commit.message}`;
93
+ }
94
+ function buildChangelogSections(analyzeResult) {
95
+ if (!analyzeResult || analyzeResult.commits.length === 0) {
96
+ return [
97
+ '### 🔧 Maintenance',
98
+ '',
99
+ '- Automated release triggered by `codemap ship`'
100
+ ];
101
+ }
102
+ const groups = new Map();
103
+ for (const commit of analyzeResult.commits) {
104
+ const section = classifyCommitSection(commit.type);
105
+ const lines = groups.get(section) ?? [];
106
+ lines.push(formatCommitLine(commit));
107
+ groups.set(section, lines);
108
+ }
109
+ return Array.from(groups.entries()).flatMap(([section, lines]) => [section, '', ...lines, '']);
110
+ }
111
+ function ensureChangelogEntry(version, analyzeResult) {
112
+ const versionStr = version.replace(/^v/, '');
113
+ const existing = existsSync('CHANGELOG.md')
114
+ ? readFileSync('CHANGELOG.md', 'utf-8')
115
+ : CHANGELOG_HEADER;
116
+ if (new RegExp(`^## \\[${versionStr.replace(/\./g, '\\.')}]`, 'm').test(existing)) {
117
+ return;
118
+ }
119
+ const date = new Date().toISOString().slice(0, 10);
120
+ const title = buildReleaseTitle(analyzeResult);
121
+ const sections = buildChangelogSections(analyzeResult).join('\n').trimEnd();
122
+ const entry = `## [${versionStr}] - ${date} - ${title}\n\n${sections}\n\n`;
123
+ const content = existing.startsWith('# Changelog')
124
+ ? existing
125
+ : `${CHANGELOG_HEADER}${existing.trimStart()}\n`;
126
+ const prefix = content.startsWith(CHANGELOG_HEADER)
127
+ ? CHANGELOG_HEADER
128
+ : '# Changelog\n\n';
129
+ const remainder = content.startsWith(prefix) ? content.slice(prefix.length) : content;
130
+ writeFileSync('CHANGELOG.md', `${prefix}${entry}${remainder.replace(/^\n+/, '')}`, 'utf-8');
131
+ }
132
+ function resolveRepoSlug() {
133
+ try {
134
+ return execSync('git remote get-url origin', { encoding: 'utf-8' })
135
+ .trim()
136
+ .replace(/.*github\.com[/:]/, '')
137
+ .replace(/\.git$/, '');
138
+ }
139
+ catch {
140
+ return undefined;
141
+ }
142
+ }
143
+ function extractCommandError(error) {
144
+ if (!error || typeof error !== 'object') {
145
+ return String(error);
146
+ }
147
+ const stderr = 'stderr' in error && typeof error.stderr === 'string'
148
+ ? error.stderr
149
+ : 'stderr' in error && Buffer.isBuffer(error.stderr)
150
+ ? error.stderr.toString('utf-8')
151
+ : '';
152
+ const stdout = 'stdout' in error && typeof error.stdout === 'string'
153
+ ? error.stdout
154
+ : 'stdout' in error && Buffer.isBuffer(error.stdout)
155
+ ? error.stdout.toString('utf-8')
156
+ : '';
157
+ const message = error instanceof Error ? error.message : String(error);
158
+ return [message, stderr.trim(), stdout.trim()].filter(Boolean).join('\n');
159
+ }
160
+ function shouldFallbackToHttps(errorText) {
161
+ return /port 22|Connection timed out|Could not read from remote repository/i.test(errorText);
162
+ }
163
+ function pushReleaseRefs(tagName, repo) {
164
+ const baseOptions = {
165
+ stdio: 'pipe',
166
+ encoding: 'utf-8',
167
+ maxBuffer: COMMAND_MAX_BUFFER
168
+ };
169
+ try {
170
+ execSync(`git push origin HEAD tag ${tagName}`, baseOptions);
171
+ return;
172
+ }
173
+ catch (error) {
174
+ const errorText = extractCommandError(error);
175
+ if (!repo || !shouldFallbackToHttps(errorText)) {
176
+ throw error;
177
+ }
178
+ console.log(chalk.yellow(' SSH push 失败,回退到 HTTPS token push...'));
179
+ execSync(`TOKEN=$(gh auth token) && BASIC=$(printf 'x-access-token:%s' "$TOKEN" | base64 | tr -d '\\n') && git -c http.extraheader="AUTHORIZATION: basic $BASIC" push https://github.com/${repo}.git HEAD tag ${tagName}`, baseOptions);
180
+ }
181
+ }
182
+ export async function publish(version, options = {}) {
183
+ const dryRun = options.dryRun ?? false;
184
+ const tagName = `v${version.replace(/^v/, '')}`;
6
185
  const result = {
7
186
  success: false,
8
187
  version,
9
- npmPublished: false,
188
+ tagName,
189
+ versionCommitted: false,
10
190
  tagCreated: false,
11
191
  pushed: false
12
192
  };
13
193
  if (dryRun) {
14
194
  console.log(chalk.gray(' [dry-run] 跳过实际发布'));
15
- return { ...result, success: true, npmPublished: true, tagCreated: true, pushed: true };
195
+ return {
196
+ ...result,
197
+ success: true,
198
+ versionCommitted: true,
199
+ tagCreated: true,
200
+ pushed: true
201
+ };
16
202
  }
17
203
  try {
18
204
  // 1. 更新 package.json 版本
19
205
  console.log(chalk.gray(' 更新 package.json 版本...'));
20
206
  execSync(`npm version ${version} --no-git-tag-version`, { stdio: 'pipe' });
21
- // 2. 创建 git tag
22
- console.log(chalk.gray(' 创建 git tag...'));
23
- execSync(`git tag v${version}`, { stdio: 'pipe' });
24
- // 3. 提交版本更新
207
+ // 2. 同步 AI 文档版本
208
+ console.log(chalk.gray(' 同步 AI 文档版本...'));
209
+ syncAIDocsVersion(version);
210
+ // 3. 生成 CHANGELOG 条目
211
+ console.log(chalk.gray(' 生成 CHANGELOG 条目...'));
212
+ ensureChangelogEntry(version, options.analyzeResult);
213
+ // 4. 提交版本更新(必须在创建 tag 之前)
25
214
  console.log(chalk.gray(' 提交版本更新...'));
26
- execSync('git add package.json CHANGELOG.md', { stdio: 'pipe' });
215
+ const filesToAdd = [
216
+ 'package.json',
217
+ 'package-lock.json',
218
+ 'AI_GUIDE.md',
219
+ 'AI_DISCOVERY.md',
220
+ 'llms.txt',
221
+ 'ai-document-index.yaml',
222
+ 'CHANGELOG.md'
223
+ ].filter(file => existsSync(file));
224
+ execSync(`git add ${filesToAdd.join(' ')}`, { stdio: 'pipe' });
27
225
  execSync(`git commit -m "[CONFIG] version: bump to v${version}"`, { stdio: 'pipe' });
28
- result.tagCreated = true;
29
- // 4. npm publish (使用 OIDC,不需要 OTP)
30
- console.log(chalk.gray(' 发布到 npm...'));
31
- try {
32
- execSync('npm publish --access public', { stdio: 'pipe' });
33
- result.npmPublished = true;
34
- }
35
- catch (publishError) {
36
- // npm publish 失败,tag 已经创建,可能需要手动处理
37
- const errorMsg = publishError instanceof Error ? publishError.message : String(publishError);
38
- console.log(chalk.yellow(` ⚠️ npm publish 失败: ${errorMsg}`));
39
- result.error = `npm publish 失败: ${errorMsg}`;
40
- // 不立即返回,继续尝试 push
226
+ result.versionCommitted = true;
227
+ result.headSha = execSync('git rev-parse HEAD', { encoding: 'utf-8' }).trim();
228
+ result.repo = resolveRepoSlug();
229
+ if (result.repo) {
230
+ result.releaseUrl = `https://github.com/${result.repo}/releases/tag/${tagName}`;
41
231
  }
42
- // 5. 推送所有到远程
43
- console.log(chalk.gray(' 推送到远程...'));
44
- execSync('git push origin HEAD --tags', { stdio: 'pipe' });
232
+ // 5. 创建 git tag(在 commit 之后)
233
+ console.log(chalk.gray(' 创建 git tag...'));
234
+ execSync(`git tag ${tagName}`, { stdio: 'pipe' });
235
+ result.tagCreated = true;
236
+ // 6. 推送版本提交和 tag,由 GitHub Actions 执行实际 npm 发布
237
+ console.log(chalk.gray(' 推送发布提交与 tag...'));
238
+ pushReleaseRefs(tagName, result.repo);
45
239
  result.pushed = true;
46
- result.success = result.npmPublished && result.tagCreated && result.pushed;
240
+ result.pushedAtMs = Date.now();
241
+ result.success = result.versionCommitted && result.tagCreated && result.pushed;
47
242
  return result;
48
243
  }
49
244
  catch (error) {
@@ -56,20 +251,23 @@ export function formatPublishOutput(result) {
56
251
  if (result.success) {
57
252
  lines.push('发布成功!');
58
253
  lines.push(` 版本: v${result.version}`);
59
- lines.push(` ✅ NPM 发布成功`);
254
+ lines.push(` ✅ 版本提交已创建`);
60
255
  lines.push(` ✅ Git tag 已创建`);
61
- lines.push(` ✅ 已推送到远程`);
256
+ lines.push(` ✅ 已推送到远程,等待 GitHub Actions 发布`);
62
257
  }
63
258
  else {
64
259
  lines.push('发布部分成功:');
65
260
  lines.push(` 版本: v${result.version}`);
66
- lines.push(` ${result.npmPublished ? '✅' : '❌'} NPM 发布`);
261
+ lines.push(` ${result.versionCommitted ? '✅' : '❌'} 版本提交`);
67
262
  lines.push(` ${result.tagCreated ? '✅' : '❌'} Git tag 已创建`);
68
263
  lines.push(` ${result.pushed ? '✅' : '❌'} 已推送到远程`);
69
264
  if (result.error) {
70
265
  lines.push(` 错误: ${result.error}`);
71
266
  }
72
267
  }
268
+ if (result.releaseUrl) {
269
+ lines.push(` 预期 Release: ${result.releaseUrl}`);
270
+ }
73
271
  return lines.join('\n');
74
272
  }
75
273
  //# sourceMappingURL=publisher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../../../src/cli/commands/ship/publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../../../src/cli/commands/ship/publisher.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import { CommitAnalysis } from './version-rules.js';
1
+ import { CommitAnalysis, VersionType } from './version-rules.js';
2
2
  export interface CheckContext {
3
3
  commits: CommitAnalysis[];
4
4
  changedFiles: string[];
5
5
  currentVersion: string;
6
6
  branch: string;
7
+ versionType: VersionType;
7
8
  }
8
9
  export interface CheckResult {
9
10
  passed: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"quality-rules.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/ship/rules/quality-rules.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAGD,eAAO,MAAM,aAAa,EAAE,WAAW,EAiDtC,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,WAAW,EAoExC,CAAC;AAEF,wBAAsB,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;IAC1D,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAC7C,CAAC,CAiBD"}
1
+ {"version":3,"file":"quality-rules.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/ship/rules/quality-rules.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAiGD,eAAO,MAAM,aAAa,EAAE,WAAW,EAoDtC,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,WAAW,EAsDxC,CAAC;AAEF,wBAAsB,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;IAC1D,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAC7C,CAAC,CAiBD"}