@kb-labs/release-manager-cli 0.5.0
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/README.md +211 -0
- package/dist/cli/commands/changelog.d.ts +17 -0
- package/dist/cli/commands/changelog.js +156 -0
- package/dist/cli/commands/changelog.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +12 -0
- package/dist/cli/commands/plan.js +117 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/publish.d.ts +15 -0
- package/dist/cli/commands/publish.js +486 -0
- package/dist/cli/commands/publish.js.map +1 -0
- package/dist/cli/commands/report.d.ts +9 -0
- package/dist/cli/commands/report.js +77 -0
- package/dist/cli/commands/report.js.map +1 -0
- package/dist/cli/commands/rollback.d.ts +9 -0
- package/dist/cli/commands/rollback.js +42 -0
- package/dist/cli/commands/rollback.js.map +1 -0
- package/dist/cli/commands/run.d.ts +16 -0
- package/dist/cli/commands/run.js +539 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/verify.d.ts +14 -0
- package/dist/cli/commands/verify.js +106 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/contracts/release.schema.d.ts +503 -0
- package/dist/contracts/release.schema.js +45 -0
- package/dist/contracts/release.schema.js.map +1 -0
- package/dist/index.d.ts +76 -0
- package/dist/index.js +689 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.d.ts +292 -0
- package/dist/manifest.js +604 -0
- package/dist/manifest.js.map +1 -0
- package/dist/rest/handlers/build-handler.d.ts +20 -0
- package/dist/rest/handlers/build-handler.js +68 -0
- package/dist/rest/handlers/build-handler.js.map +1 -0
- package/dist/rest/handlers/changelog-generate-handler.d.ts +20 -0
- package/dist/rest/handlers/changelog-generate-handler.js +169 -0
- package/dist/rest/handlers/changelog-generate-handler.js.map +1 -0
- package/dist/rest/handlers/changelog-handler.d.ts +16 -0
- package/dist/rest/handlers/changelog-handler.js +50 -0
- package/dist/rest/handlers/changelog-handler.js.map +1 -0
- package/dist/rest/handlers/changelog-save-handler.d.ts +13 -0
- package/dist/rest/handlers/changelog-save-handler.js +42 -0
- package/dist/rest/handlers/changelog-save-handler.js.map +1 -0
- package/dist/rest/handlers/checklist-handler.d.ts +39 -0
- package/dist/rest/handlers/checklist-handler.js +155 -0
- package/dist/rest/handlers/checklist-handler.js.map +1 -0
- package/dist/rest/handlers/generate-handler.d.ts +35 -0
- package/dist/rest/handlers/generate-handler.js +206 -0
- package/dist/rest/handlers/generate-handler.js.map +1 -0
- package/dist/rest/handlers/get-checks-handler.d.ts +15 -0
- package/dist/rest/handlers/get-checks-handler.js +22 -0
- package/dist/rest/handlers/get-checks-handler.js.map +1 -0
- package/dist/rest/handlers/git-timeline-handler.d.ts +26 -0
- package/dist/rest/handlers/git-timeline-handler.js +209 -0
- package/dist/rest/handlers/git-timeline-handler.js.map +1 -0
- package/dist/rest/handlers/history-changelog-handler.d.ts +14 -0
- package/dist/rest/handlers/history-changelog-handler.js +34 -0
- package/dist/rest/handlers/history-changelog-handler.js.map +1 -0
- package/dist/rest/handlers/history-handler.d.ts +20 -0
- package/dist/rest/handlers/history-handler.js +75 -0
- package/dist/rest/handlers/history-handler.js.map +1 -0
- package/dist/rest/handlers/history-plan-handler.d.ts +30 -0
- package/dist/rest/handlers/history-plan-handler.js +34 -0
- package/dist/rest/handlers/history-plan-handler.js.map +1 -0
- package/dist/rest/handlers/history-report-handler.d.ts +64 -0
- package/dist/rest/handlers/history-report-handler.js +34 -0
- package/dist/rest/handlers/history-report-handler.js.map +1 -0
- package/dist/rest/handlers/plan-handler.d.ts +29 -0
- package/dist/rest/handlers/plan-handler.js +75 -0
- package/dist/rest/handlers/plan-handler.js.map +1 -0
- package/dist/rest/handlers/preview-handler.d.ts +26 -0
- package/dist/rest/handlers/preview-handler.js +127 -0
- package/dist/rest/handlers/preview-handler.js.map +1 -0
- package/dist/rest/handlers/report-handler.d.ts +65 -0
- package/dist/rest/handlers/report-handler.js +48 -0
- package/dist/rest/handlers/report-handler.js.map +1 -0
- package/dist/rest/handlers/reset-handler.d.ts +12 -0
- package/dist/rest/handlers/reset-handler.js +38 -0
- package/dist/rest/handlers/reset-handler.js.map +1 -0
- package/dist/rest/handlers/run-checks-handler.d.ts +20 -0
- package/dist/rest/handlers/run-checks-handler.js +58 -0
- package/dist/rest/handlers/run-checks-handler.js.map +1 -0
- package/dist/rest/handlers/run-handler.d.ts +68 -0
- package/dist/rest/handlers/run-handler.js +274 -0
- package/dist/rest/handlers/run-handler.js.map +1 -0
- package/dist/rest/handlers/scopes-handler.d.ts +20 -0
- package/dist/rest/handlers/scopes-handler.js +63 -0
- package/dist/rest/handlers/scopes-handler.js.map +1 -0
- package/dist/rest/handlers/status-handler.d.ts +24 -0
- package/dist/rest/handlers/status-handler.js +120 -0
- package/dist/rest/handlers/status-handler.js.map +1 -0
- package/dist/setup/handler.d.ts +19 -0
- package/dist/setup/handler.js +103 -0
- package/dist/setup/handler.js.map +1 -0
- package/dist/widgets/220.js +446 -0
- package/dist/widgets/220.js.map +1 -0
- package/dist/widgets/331.js +2 -0
- package/dist/widgets/331.js.map +1 -0
- package/dist/widgets/403.js +2 -0
- package/dist/widgets/403.js.map +1 -0
- package/dist/widgets/406.js +35 -0
- package/dist/widgets/406.js.map +1 -0
- package/dist/widgets/455.js +2 -0
- package/dist/widgets/455.js.map +1 -0
- package/dist/widgets/482.js +2 -0
- package/dist/widgets/482.js.map +1 -0
- package/dist/widgets/485.js +2 -0
- package/dist/widgets/485.js.map +1 -0
- package/dist/widgets/527.js +2 -0
- package/dist/widgets/527.js.map +1 -0
- package/dist/widgets/628.js +2 -0
- package/dist/widgets/628.js.map +1 -0
- package/dist/widgets/694.js +2 -0
- package/dist/widgets/694.js.map +1 -0
- package/dist/widgets/712.js +2 -0
- package/dist/widgets/712.js.map +1 -0
- package/dist/widgets/866.js +2 -0
- package/dist/widgets/866.js.map +1 -0
- package/dist/widgets/915.js +39 -0
- package/dist/widgets/915.js.map +1 -0
- package/dist/widgets/957.js +10 -0
- package/dist/widgets/957.js.map +1 -0
- package/dist/widgets/983.js +2 -0
- package/dist/widgets/983.js.map +1 -0
- package/dist/widgets/@mf-types.d.ts +3 -0
- package/dist/widgets/@mf-types.zip +0 -0
- package/dist/widgets/__federation_expose_ReleasePage.js +2 -0
- package/dist/widgets/__federation_expose_ReleasePage.js.map +1 -0
- package/dist/widgets/mf-manifest.json +260 -0
- package/dist/widgets/mf-stats.json +302 -0
- package/dist/widgets/remoteEntry.js +7 -0
- package/dist/widgets/remoteEntry.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// src/setup/handler.ts
|
|
2
|
+
var RELEASE_DIRS = ["plans", "reports", "backups"];
|
|
3
|
+
async function run(ctx) {
|
|
4
|
+
const cwd = ctx.cwd;
|
|
5
|
+
const releaseDir = ctx.runtime.fs.join(cwd, ".kb", "release");
|
|
6
|
+
const created = [];
|
|
7
|
+
await ctx.runtime.fs.mkdir(releaseDir, { recursive: true });
|
|
8
|
+
for (const dir of RELEASE_DIRS) {
|
|
9
|
+
const target = ctx.runtime.fs.join(releaseDir, dir);
|
|
10
|
+
await ctx.runtime.fs.mkdir(target, { recursive: true });
|
|
11
|
+
created.push(target);
|
|
12
|
+
}
|
|
13
|
+
await ensureFile(
|
|
14
|
+
ctx,
|
|
15
|
+
ctx.runtime.fs.join(releaseDir, ".gitignore"),
|
|
16
|
+
["# Release artifacts", "plans/", "reports/", "backups/", "*.json", "*.md", ""].join("\n")
|
|
17
|
+
);
|
|
18
|
+
await ensureFile(
|
|
19
|
+
ctx,
|
|
20
|
+
ctx.runtime.fs.join(releaseDir, "README.md"),
|
|
21
|
+
[
|
|
22
|
+
"# KB Labs Release workspace",
|
|
23
|
+
"",
|
|
24
|
+
"This directory stores release plans, reports, and backups generated by `kb release ...` commands.",
|
|
25
|
+
"",
|
|
26
|
+
"Contents are environment-specific and should not be committed unless you intentionally share release evidence.",
|
|
27
|
+
""
|
|
28
|
+
].join("\n")
|
|
29
|
+
);
|
|
30
|
+
await ensureFile(
|
|
31
|
+
ctx,
|
|
32
|
+
ctx.runtime.fs.join(releaseDir, "release.config.example.ts"),
|
|
33
|
+
[
|
|
34
|
+
"/**",
|
|
35
|
+
" * Example Release Manager Configuration",
|
|
36
|
+
" * Copy to release.config.ts and customize",
|
|
37
|
+
" */",
|
|
38
|
+
"",
|
|
39
|
+
"export default {",
|
|
40
|
+
" checks: [",
|
|
41
|
+
" {",
|
|
42
|
+
" id: 'build',",
|
|
43
|
+
" command: 'pnpm',",
|
|
44
|
+
" args: ['build'],",
|
|
45
|
+
" parser: 'exitcode',",
|
|
46
|
+
" timeoutMs: 300000, // 5 minutes",
|
|
47
|
+
" },",
|
|
48
|
+
" {",
|
|
49
|
+
" id: 'tests',",
|
|
50
|
+
" command: 'pnpm',",
|
|
51
|
+
" args: ['test'],",
|
|
52
|
+
" parser: 'exitcode',",
|
|
53
|
+
" timeoutMs: 120000, // 2 minutes",
|
|
54
|
+
" optional: true, // Don't fail release if tests fail",
|
|
55
|
+
" },",
|
|
56
|
+
" // Custom check with JSON output",
|
|
57
|
+
" // {",
|
|
58
|
+
" // id: 'devlink',",
|
|
59
|
+
" // command: 'kb',",
|
|
60
|
+
" // args: ['devlink', 'check', '--json'],",
|
|
61
|
+
" // parser: 'json',",
|
|
62
|
+
" // },",
|
|
63
|
+
" // Custom check with function parser",
|
|
64
|
+
" // {",
|
|
65
|
+
" // id: 'lint',",
|
|
66
|
+
" // command: 'pnpm',",
|
|
67
|
+
" // args: ['lint'],",
|
|
68
|
+
" // parser: (stdout, stderr, exitCode) => exitCode === 0 && !stdout.includes('error'),",
|
|
69
|
+
" // },",
|
|
70
|
+
" ],",
|
|
71
|
+
"};",
|
|
72
|
+
""
|
|
73
|
+
].join("\n")
|
|
74
|
+
);
|
|
75
|
+
ctx.platform.logger.info("Release setup completed", { cwd, created });
|
|
76
|
+
return {
|
|
77
|
+
ok: true,
|
|
78
|
+
releaseDir,
|
|
79
|
+
created,
|
|
80
|
+
configDefaults: {
|
|
81
|
+
workspace: {
|
|
82
|
+
type: "pnpm",
|
|
83
|
+
root: "."
|
|
84
|
+
},
|
|
85
|
+
git: {},
|
|
86
|
+
changelog: {
|
|
87
|
+
locale: "en"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
async function ensureFile(ctx, path, contents) {
|
|
93
|
+
const exists = await ctx.runtime.fs.exists(path);
|
|
94
|
+
if (!exists) {
|
|
95
|
+
const dir = ctx.runtime.fs.dirname(path);
|
|
96
|
+
await ctx.runtime.fs.mkdir(dir, { recursive: true });
|
|
97
|
+
await ctx.runtime.fs.writeFile(path, contents, { encoding: "utf-8" });
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export { run };
|
|
102
|
+
//# sourceMappingURL=handler.js.map
|
|
103
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/setup/handler.ts"],"names":[],"mappings":"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","file":"handler.js","sourcesContent":["import type { PluginContextV3 } from '@kb-labs/sdk';\n\nconst RELEASE_DIRS = ['plans', 'reports', 'backups'];\n\nexport async function run(ctx: PluginContextV3) {\n const cwd = ctx.cwd;\n const releaseDir = ctx.runtime.fs.join(cwd, '.kb', 'release');\n const created: string[] = [];\n\n await ctx.runtime.fs.mkdir(releaseDir, { recursive: true });\n\n for (const dir of RELEASE_DIRS) {\n const target = ctx.runtime.fs.join(releaseDir, dir);\n await ctx.runtime.fs.mkdir(target, { recursive: true });\n created.push(target);\n }\n\n await ensureFile(\n ctx,\n ctx.runtime.fs.join(releaseDir, '.gitignore'),\n ['# Release artifacts', 'plans/', 'reports/', 'backups/', '*.json', '*.md', ''].join('\\n')\n );\n\n await ensureFile(\n ctx,\n ctx.runtime.fs.join(releaseDir, 'README.md'),\n [\n '# KB Labs Release workspace',\n '',\n 'This directory stores release plans, reports, and backups generated by `kb release ...` commands.',\n '',\n 'Contents are environment-specific and should not be committed unless you intentionally share release evidence.',\n '',\n ].join('\\n')\n );\n\n // Generate example release.config.ts with checks\n await ensureFile(\n ctx,\n ctx.runtime.fs.join(releaseDir, 'release.config.example.ts'),\n [\n '/**',\n ' * Example Release Manager Configuration',\n ' * Copy to release.config.ts and customize',\n ' */',\n '',\n 'export default {',\n ' checks: [',\n ' {',\n ' id: \\'build\\',',\n ' command: \\'pnpm\\',',\n ' args: [\\'build\\'],',\n ' parser: \\'exitcode\\',',\n ' timeoutMs: 300000, // 5 minutes',\n ' },',\n ' {',\n ' id: \\'tests\\',',\n ' command: \\'pnpm\\',',\n ' args: [\\'test\\'],',\n ' parser: \\'exitcode\\',',\n ' timeoutMs: 120000, // 2 minutes',\n ' optional: true, // Don\\'t fail release if tests fail',\n ' },',\n ' // Custom check with JSON output',\n ' // {',\n ' // id: \\'devlink\\',',\n ' // command: \\'kb\\',',\n ' // args: [\\'devlink\\', \\'check\\', \\'--json\\'],',\n ' // parser: \\'json\\',',\n ' // },',\n ' // Custom check with function parser',\n ' // {',\n ' // id: \\'lint\\',',\n ' // command: \\'pnpm\\',',\n ' // args: [\\'lint\\'],',\n ' // parser: (stdout, stderr, exitCode) => exitCode === 0 && !stdout.includes(\\'error\\'),',\n ' // },',\n ' ],',\n '};',\n '',\n ].join('\\n')\n );\n\n ctx.platform.logger.info('Release setup completed', { cwd, created });\n\n return {\n ok: true,\n releaseDir,\n created,\n configDefaults: {\n workspace: {\n type: 'pnpm',\n root: '.',\n },\n git: {},\n changelog: {\n locale: 'en',\n },\n },\n };\n}\n\nasync function ensureFile(ctx: PluginContextV3, path: string, contents: string) {\n const exists = await ctx.runtime.fs.exists(path);\n if (!exists) {\n const dir = ctx.runtime.fs.dirname(path);\n await ctx.runtime.fs.mkdir(dir, { recursive: true });\n await ctx.runtime.fs.writeFile(path, contents, { encoding: 'utf-8' });\n }\n}\n\n"]}
|