@gonovus-ai/spec-flow-cli 0.2.0 → 0.3.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.
- package/README.md +28 -18
- package/dist/bin.js +0 -0
- package/dist/cli.js +309 -293
- package/dist/cli.js.map +1 -1
- package/dist/github-connection-commands.js +18 -14
- package/dist/github-connection-commands.js.map +1 -1
- package/dist/github-import-commands.js +13 -8
- package/dist/github-import-commands.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/product-map-commands.d.ts +17 -0
- package/dist/product-map-commands.js +48 -0
- package/dist/product-map-commands.js.map +1 -0
- package/dist/user-api-key-commands.d.ts +1 -2
- package/dist/user-api-key-commands.js +10 -9
- package/dist/user-api-key-commands.js.map +1 -1
- package/dist/work-item-asset-commands.js +17 -3
- package/dist/work-item-asset-commands.js.map +1 -1
- package/dist/work-item-resource-link-commands.js +19 -8
- package/dist/work-item-resource-link-commands.js.map +1 -1
- package/package.json +10 -10
|
@@ -13,11 +13,11 @@ const kind = (value) => {
|
|
|
13
13
|
};
|
|
14
14
|
function targetFor(options) {
|
|
15
15
|
if (options.kind === "spec") {
|
|
16
|
-
if (options.specId === undefined || options.title !== undefined || options.url !== undefined)
|
|
17
|
-
throw new InvalidArgumentError("Spec links require --spec-id and do not accept --title or --url");
|
|
18
|
-
return { kind: "spec",
|
|
16
|
+
if (options.workspaceId === undefined || options.specId === undefined || options.title !== undefined || options.url !== undefined)
|
|
17
|
+
throw new InvalidArgumentError("Spec links require --workspace-id and --spec-id and do not accept --title or --url");
|
|
18
|
+
return { kind: "spec", workspaceId: options.workspaceId, specId: options.specId };
|
|
19
19
|
}
|
|
20
|
-
if (options.title === undefined || options.url === undefined || options.specId !== undefined || options.
|
|
20
|
+
if (options.title === undefined || options.url === undefined || options.specId !== undefined || options.workspaceId !== undefined)
|
|
21
21
|
throw new InvalidArgumentError("Document and other links require --title and --url and do not accept Spec flags");
|
|
22
22
|
return { kind: options.kind, title: options.title, url: options.url };
|
|
23
23
|
}
|
|
@@ -30,6 +30,17 @@ export function registerWorkItemResourceLinkCommands(workItem, spec, runtime) {
|
|
|
30
30
|
.action(async (options) => {
|
|
31
31
|
runtime.setExitCode(await runtime.run((client) => client.GET("/v1/projects/{projectId}/work-items/{workItemId}/github-links", { params: { path: options } })));
|
|
32
32
|
});
|
|
33
|
+
workItem.command("github-unlink-pr").description("Remove an obsolete PR association from automation")
|
|
34
|
+
.requiredOption("--project-id <projectId>").requiredOption("--work-item-id <workItemId>")
|
|
35
|
+
.requiredOption("--connection-id <id>", "Explicit repository connection", uuid)
|
|
36
|
+
.requiredOption("--external-id <number>").requiredOption("--expected-updated-at <timestamp>", "Observed association timestamp")
|
|
37
|
+
.action(async (options) => {
|
|
38
|
+
if (!runtime.canWrite()) {
|
|
39
|
+
runtime.setExitCode(runtime.rejectWrite());
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
runtime.setExitCode(await runtime.run((client) => client.DELETE("/v1/projects/{projectId}/work-items/{workItemId}/github-links/{connectionId}/pull-requests/{externalId}", { params: { path: options }, body: { expectedUpdatedAt: options.expectedUpdatedAt } })));
|
|
43
|
+
});
|
|
33
44
|
const links = workItem.command("resource-link").description("Manage optional Spec, document, and other task references");
|
|
34
45
|
links.command("list")
|
|
35
46
|
.requiredOption("--project-id <projectId>")
|
|
@@ -41,7 +52,7 @@ export function registerWorkItemResourceLinkCommands(workItem, spec, runtime) {
|
|
|
41
52
|
.requiredOption("--project-id <projectId>")
|
|
42
53
|
.requiredOption("--work-item-id <workItemId>")
|
|
43
54
|
.requiredOption("--kind <kind>", "spec, document, or other", kind)
|
|
44
|
-
.option("--
|
|
55
|
+
.option("--workspace-id <workspaceId>", "Target Spec Project; defaults to the task Project")
|
|
45
56
|
.option("--spec-id <specId>", "Stable public Spec identity")
|
|
46
57
|
.option("--title <title>", "Document or other resource label")
|
|
47
58
|
.option("--url <url>", "HTTP(S) resource locator, without embedded credentials")
|
|
@@ -72,13 +83,13 @@ export function registerWorkItemResourceLinkCommands(workItem, spec, runtime) {
|
|
|
72
83
|
}), { retryTransportOnce: true, ambiguousOutcomeMessage: "Resource unlink outcome is unknown; retry the same link, version and command key" }));
|
|
73
84
|
});
|
|
74
85
|
spec.command("work-items").description("Read currently authorized tasks referencing a Spec")
|
|
75
|
-
.requiredOption("--
|
|
86
|
+
.requiredOption("--workspace-id <workspaceId>")
|
|
76
87
|
.requiredOption("--spec-id <specId>")
|
|
77
88
|
.option("--limit <limit>", "Maximum results, 1 through 100", runtime.parseLimit, 50)
|
|
78
89
|
.option("--cursor <cursor>", "Opaque cursor from the previous page")
|
|
79
90
|
.action(async (options) => {
|
|
80
|
-
runtime.setExitCode(await runtime.run((client) => client.GET("/v1/
|
|
81
|
-
params: { path: {
|
|
91
|
+
runtime.setExitCode(await runtime.run((client) => client.GET("/v1/workspaces/{workspaceId}/specs/{specId}/work-items", {
|
|
92
|
+
params: { path: { workspaceId: options.workspaceId, specId: options.specId }, query: { limit: options.limit, ...(options.cursor === undefined ? {} : { cursor: options.cursor }) } },
|
|
82
93
|
})));
|
|
83
94
|
});
|
|
84
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-item-resource-link-commands.js","sourceRoot":"","sources":["../src/work-item-resource-link-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAgB,MAAM,WAAW,CAAC;AAE/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE;IACrC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO;QAAE,MAAM,IAAI,oBAAoB,CAAC,oDAAoD,CAAC,CAAC;IAC7H,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF,MAAM,IAAI,GAAG,CAAC,KAAa,EAAsB,EAAE;IACjD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,oBAAoB,CAAC,gDAAgD,CAAC,CAAC;IACtG,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC;AAEF,SAAS,SAAS,CAAC,OAAmB;IACpC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"work-item-resource-link-commands.js","sourceRoot":"","sources":["../src/work-item-resource-link-commands.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gonovus-ai/spec-flow-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "SpecFlow supported command-line client",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -36,6 +36,12 @@
|
|
|
36
36
|
"arm64",
|
|
37
37
|
"x64"
|
|
38
38
|
],
|
|
39
|
+
"scripts": {
|
|
40
|
+
"build": "tsc -p tsconfig.build.json && node ../../scripts/build-cli-default-origin.mjs",
|
|
41
|
+
"lint": "eslint .",
|
|
42
|
+
"test": "vitest run --root ../.. --project cli",
|
|
43
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
44
|
+
},
|
|
39
45
|
"dependencies": {
|
|
40
46
|
"@napi-rs/keyring": "1.3.0",
|
|
41
47
|
"commander": "15.0.0",
|
|
@@ -44,13 +50,7 @@
|
|
|
44
50
|
"zod": "4.4.3"
|
|
45
51
|
},
|
|
46
52
|
"devDependencies": {
|
|
47
|
-
"@
|
|
48
|
-
"@
|
|
49
|
-
},
|
|
50
|
-
"scripts": {
|
|
51
|
-
"build": "tsc -p tsconfig.build.json && node ../../scripts/build-cli-default-origin.mjs",
|
|
52
|
-
"lint": "eslint .",
|
|
53
|
-
"test": "vitest run --root ../.. --project cli",
|
|
54
|
-
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
53
|
+
"@spec-flow/api-client": "workspace:*",
|
|
54
|
+
"@types/node": "24.13.3"
|
|
55
55
|
}
|
|
56
|
-
}
|
|
56
|
+
}
|