@mcp-consultant-tools/azure-devops 27.0.0 → 28.0.0-beta.10
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/build/azure-devops-client.d.ts +42 -0
- package/build/azure-devops-client.d.ts.map +1 -0
- package/build/azure-devops-client.js +144 -0
- package/build/azure-devops-client.js.map +1 -0
- package/build/cli/commands/build-commands.d.ts +7 -0
- package/build/cli/commands/build-commands.d.ts.map +1 -0
- package/build/cli/commands/build-commands.js +59 -0
- package/build/cli/commands/build-commands.js.map +1 -0
- package/build/cli/commands/configuration-commands.d.ts +7 -0
- package/build/cli/commands/configuration-commands.d.ts.map +1 -0
- package/build/cli/commands/configuration-commands.js +24 -0
- package/build/cli/commands/configuration-commands.js.map +1 -0
- package/build/cli/commands/index.d.ts +14 -0
- package/build/cli/commands/index.d.ts.map +1 -0
- package/build/cli/commands/index.js +27 -0
- package/build/cli/commands/index.js.map +1 -0
- package/build/cli/commands/pull-request-commands.d.ts +7 -0
- package/build/cli/commands/pull-request-commands.d.ts.map +1 -0
- package/build/cli/commands/pull-request-commands.js +234 -0
- package/build/cli/commands/pull-request-commands.js.map +1 -0
- package/build/cli/commands/sync-commands.d.ts +7 -0
- package/build/cli/commands/sync-commands.d.ts.map +1 -0
- package/build/cli/commands/sync-commands.js +148 -0
- package/build/cli/commands/sync-commands.js.map +1 -0
- package/build/cli/commands/variable-group-commands.d.ts +7 -0
- package/build/cli/commands/variable-group-commands.d.ts.map +1 -0
- package/build/cli/commands/variable-group-commands.js +36 -0
- package/build/cli/commands/variable-group-commands.js.map +1 -0
- package/build/cli/commands/wiki-commands.d.ts +7 -0
- package/build/cli/commands/wiki-commands.d.ts.map +1 -0
- package/build/cli/commands/wiki-commands.js +152 -0
- package/build/cli/commands/wiki-commands.js.map +1 -0
- package/build/cli/commands/work-item-commands.d.ts +7 -0
- package/build/cli/commands/work-item-commands.d.ts.map +1 -0
- package/build/cli/commands/work-item-commands.js +169 -0
- package/build/cli/commands/work-item-commands.js.map +1 -0
- package/build/cli/output.d.ts +11 -0
- package/build/cli/output.d.ts.map +1 -0
- package/build/cli/output.js +10 -0
- package/build/cli/output.js.map +1 -0
- package/build/cli.d.ts +9 -0
- package/build/cli.d.ts.map +1 -0
- package/build/cli.js +27 -0
- package/build/cli.js.map +1 -0
- package/build/context-factory.d.ts +10 -0
- package/build/context-factory.d.ts.map +1 -0
- package/build/context-factory.js +61 -0
- package/build/context-factory.js.map +1 -0
- package/build/index.d.ts +9 -11
- package/build/index.d.ts.map +1 -1
- package/build/index.js +14 -1906
- package/build/index.js.map +1 -1
- package/build/models/api-types.d.ts +159 -0
- package/build/models/api-types.d.ts.map +1 -0
- package/build/models/api-types.js +5 -0
- package/build/models/api-types.js.map +1 -0
- package/build/models/index.d.ts +5 -0
- package/build/models/index.d.ts.map +1 -0
- package/build/models/index.js +5 -0
- package/build/models/index.js.map +1 -0
- package/build/prompts/index.d.ts +3 -0
- package/build/prompts/index.d.ts.map +1 -0
- package/build/prompts/index.js +83 -0
- package/build/prompts/index.js.map +1 -0
- package/build/prompts/templates.d.ts +8 -0
- package/build/prompts/templates.d.ts.map +1 -0
- package/build/prompts/templates.js +126 -0
- package/build/prompts/templates.js.map +1 -0
- package/build/services/build-service.d.ts +16 -0
- package/build/services/build-service.d.ts.map +1 -0
- package/build/services/build-service.js +195 -0
- package/build/services/build-service.js.map +1 -0
- package/build/services/configuration-service.d.ts +7 -0
- package/build/services/configuration-service.d.ts.map +1 -0
- package/build/services/configuration-service.js +24 -0
- package/build/services/configuration-service.js.map +1 -0
- package/build/services/index.d.ts +11 -0
- package/build/services/index.d.ts.map +1 -0
- package/build/services/index.js +11 -0
- package/build/services/index.js.map +1 -0
- package/build/services/pull-request-service.d.ts +29 -0
- package/build/services/pull-request-service.d.ts.map +1 -0
- package/build/services/pull-request-service.js +390 -0
- package/build/services/pull-request-service.js.map +1 -0
- package/build/services/sync-service.d.ts +19 -0
- package/build/services/sync-service.d.ts.map +1 -0
- package/build/services/sync-service.js +463 -0
- package/build/services/sync-service.js.map +1 -0
- package/build/services/variable-group-service.d.ts +11 -0
- package/build/services/variable-group-service.d.ts.map +1 -0
- package/build/services/variable-group-service.js +62 -0
- package/build/services/variable-group-service.js.map +1 -0
- package/build/services/wiki-service.d.ts +41 -0
- package/build/services/wiki-service.d.ts.map +1 -0
- package/build/services/wiki-service.js +346 -0
- package/build/services/wiki-service.js.map +1 -0
- package/build/services/work-item-service.d.ts +22 -0
- package/build/services/work-item-service.d.ts.map +1 -0
- package/build/services/work-item-service.js +285 -0
- package/build/services/work-item-service.js.map +1 -0
- package/build/sync/file-utils.d.ts +7 -5
- package/build/sync/file-utils.d.ts.map +1 -1
- package/build/sync/file-utils.js +17 -8
- package/build/sync/file-utils.js.map +1 -1
- package/build/sync/markdown-serializer.d.ts +19 -4
- package/build/sync/markdown-serializer.d.ts.map +1 -1
- package/build/sync/markdown-serializer.js +48 -31
- package/build/sync/markdown-serializer.js.map +1 -1
- package/build/tool-examples.d.ts +9 -8
- package/build/tool-examples.d.ts.map +1 -1
- package/build/tool-examples.js +29 -12
- package/build/tool-examples.js.map +1 -1
- package/build/tools/build-tools.d.ts +3 -0
- package/build/tools/build-tools.d.ts.map +1 -0
- package/build/tools/build-tools.js +56 -0
- package/build/tools/build-tools.js.map +1 -0
- package/build/tools/configuration-tools.d.ts +6 -0
- package/build/tools/configuration-tools.d.ts.map +1 -0
- package/build/tools/configuration-tools.js +30 -0
- package/build/tools/configuration-tools.js.map +1 -0
- package/build/tools/index.d.ts +13 -0
- package/build/tools/index.d.ts.map +1 -0
- package/build/tools/index.js +30 -0
- package/build/tools/index.js.map +1 -0
- package/build/tools/pull-request-tools.d.ts +5 -0
- package/build/tools/pull-request-tools.d.ts.map +1 -0
- package/build/tools/pull-request-tools.js +227 -0
- package/build/tools/pull-request-tools.js.map +1 -0
- package/build/tools/sync-tools.d.ts +3 -0
- package/build/tools/sync-tools.d.ts.map +1 -0
- package/build/tools/sync-tools.js +146 -0
- package/build/tools/sync-tools.js.map +1 -0
- package/build/tools/variable-group-tools.d.ts +3 -0
- package/build/tools/variable-group-tools.d.ts.map +1 -0
- package/build/tools/variable-group-tools.js +32 -0
- package/build/tools/variable-group-tools.js.map +1 -0
- package/build/tools/wiki-tools.d.ts +3 -0
- package/build/tools/wiki-tools.d.ts.map +1 -0
- package/build/tools/wiki-tools.js +151 -0
- package/build/tools/wiki-tools.js.map +1 -0
- package/build/tools/work-item-tools.d.ts +3 -0
- package/build/tools/work-item-tools.d.ts.map +1 -0
- package/build/tools/work-item-tools.js +188 -0
- package/build/tools/work-item-tools.js.map +1 -0
- package/build/types.d.ts +23 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +2 -0
- package/build/types.js.map +1 -0
- package/package.json +5 -3
- package/build/AzureDevOpsService.d.ts +0 -489
- package/build/AzureDevOpsService.d.ts.map +0 -1
- package/build/AzureDevOpsService.js +0 -1558
- package/build/AzureDevOpsService.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-request-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/pull-request-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync CLI Commands - 8 commands for work item sync and task sync
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../types.js';
|
|
6
|
+
export declare function registerSyncCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
//# sourceMappingURL=sync-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sync-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAkJhF"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync CLI Commands - 8 commands for work item sync and task sync
|
|
3
|
+
*/
|
|
4
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
5
|
+
import { outputResult } from '../output.js';
|
|
6
|
+
export function registerSyncCommands(program, ctx) {
|
|
7
|
+
const sync = program.command('sync').description('Work item sync operations');
|
|
8
|
+
sync
|
|
9
|
+
.command('pull')
|
|
10
|
+
.description('Download work item(s) to local markdown files')
|
|
11
|
+
.argument('<project>', 'Project name')
|
|
12
|
+
.option('-i, --ids <ids...>', 'Work item IDs to pull')
|
|
13
|
+
.option('--parent-id <id>', 'Pull all children of this parent')
|
|
14
|
+
.option('--child-type <type>', 'Filter child type (default: User Story)')
|
|
15
|
+
.option('-f, --folder <path>', 'Override folder path')
|
|
16
|
+
.option('--include-comments', 'Also save comments', false)
|
|
17
|
+
.option('--skip-auto-convert', 'Skip HTML-to-markdown conversion', false)
|
|
18
|
+
.action(async (project, opts) => {
|
|
19
|
+
try {
|
|
20
|
+
const ids = opts.ids ? opts.ids.map((id) => parseInt(id, 10)) : [];
|
|
21
|
+
const parentId = opts.parentId ? parseInt(opts.parentId, 10) : undefined;
|
|
22
|
+
const result = await ctx.sync.syncWorkItemsToFile(project, ids, parentId, opts.childType, opts.folder, opts.includeComments, opts.skipAutoConvert);
|
|
23
|
+
outputResult({ fileName: `sync-pull-${project}`, data: result, summary: result.message || `Synced ${result.pulled?.length || 0} work item(s) to local files` }, getGlobalFlags(program));
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
handleCliError(error, 'sync work items to file');
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
sync
|
|
30
|
+
.command('push')
|
|
31
|
+
.description('Upload local markdown changes to ADO (requires AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true)')
|
|
32
|
+
.argument('<project>', 'Project name')
|
|
33
|
+
.option('-i, --ids <ids...>', 'Work item IDs to push')
|
|
34
|
+
.option('-f, --folder <path>', 'Override folder path')
|
|
35
|
+
.option('--skip-auto-convert', 'Skip HTML-to-markdown conversion', false)
|
|
36
|
+
.action(async (project, opts) => {
|
|
37
|
+
try {
|
|
38
|
+
const ids = opts.ids ? opts.ids.map((id) => parseInt(id, 10)) : [];
|
|
39
|
+
const result = await ctx.sync.syncWorkItemsFromFile(project, ids, opts.folder, opts.skipAutoConvert);
|
|
40
|
+
const summary = [];
|
|
41
|
+
if (result.created.length > 0)
|
|
42
|
+
summary.push(`Created ${result.created.length}`);
|
|
43
|
+
if (result.pushed.length > 0)
|
|
44
|
+
summary.push(`Updated ${result.pushed.length}`);
|
|
45
|
+
if (result.failed.length > 0)
|
|
46
|
+
summary.push(`Failed ${result.failed.length}`);
|
|
47
|
+
outputResult({ fileName: `sync-push-${project}`, data: result, summary: summary.join(', ') || 'No changes pushed' }, getGlobalFlags(program));
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
handleCliError(error, 'sync work items from file');
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
sync
|
|
54
|
+
.command('check-markdown')
|
|
55
|
+
.description('Check if work item fields are markdown or HTML')
|
|
56
|
+
.argument('<project>', 'Project name')
|
|
57
|
+
.argument('<ids...>', 'Work item IDs')
|
|
58
|
+
.action(async (project, ids) => {
|
|
59
|
+
try {
|
|
60
|
+
const workItemIds = ids.map(id => parseInt(id, 10));
|
|
61
|
+
const result = await ctx.sync.checkWorkItemMarkdown(project, workItemIds);
|
|
62
|
+
outputResult({ fileName: `sync-check-markdown`, data: result, summary: `Checked format for ${workItemIds.length} work item(s)` }, getGlobalFlags(program));
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
handleCliError(error, 'check work item markdown');
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
sync
|
|
69
|
+
.command('list')
|
|
70
|
+
.description('List locally synced work item files')
|
|
71
|
+
.option('-f, --folder <path>', 'Override folder path')
|
|
72
|
+
.action(async (opts) => {
|
|
73
|
+
try {
|
|
74
|
+
const result = await ctx.sync.listSyncedWorkItems(opts.folder);
|
|
75
|
+
outputResult({ fileName: `sync-list`, data: result, summary: `Synced work items in ${result.folder}` }, getGlobalFlags(program));
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
handleCliError(error, 'list synced work items');
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
sync
|
|
82
|
+
.command('create-file')
|
|
83
|
+
.description('Create a new work item template file locally')
|
|
84
|
+
.argument('<project>', 'Project name')
|
|
85
|
+
.option('--parent-id <id>', 'Parent work item ID')
|
|
86
|
+
.option('-t, --type <type>', 'Work item type', 'User Story')
|
|
87
|
+
.option('-f, --folder <path>', 'Override folder path')
|
|
88
|
+
.action(async (project, opts) => {
|
|
89
|
+
try {
|
|
90
|
+
const parentId = opts.parentId ? parseInt(opts.parentId, 10) : undefined;
|
|
91
|
+
const result = await ctx.sync.createWorkItemFile(project, parentId, opts.type, opts.folder);
|
|
92
|
+
outputResult({ fileName: `sync-create-file`, data: result, summary: `Created new ${opts.type} template` }, getGlobalFlags(program));
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
handleCliError(error, 'create work item file');
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
sync
|
|
99
|
+
.command('create-user-story')
|
|
100
|
+
.description('Create a new user story template file (alias)')
|
|
101
|
+
.argument('<project>', 'Project name')
|
|
102
|
+
.argument('<parentId>', 'Parent Feature ID')
|
|
103
|
+
.option('-f, --folder <path>', 'Override folder path')
|
|
104
|
+
.action(async (project, parentId, opts) => {
|
|
105
|
+
try {
|
|
106
|
+
const result = await ctx.sync.createWorkItemFile(project, parseInt(parentId, 10), 'User Story', opts.folder);
|
|
107
|
+
outputResult({ fileName: `sync-create-user-story`, data: result, summary: `Created new User Story template` }, getGlobalFlags(program));
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
handleCliError(error, 'create user story file');
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
sync
|
|
114
|
+
.command('pull-tasks')
|
|
115
|
+
.description('Download tasks under parent work item(s) to local files')
|
|
116
|
+
.argument('<project>', 'Project name')
|
|
117
|
+
.argument('<parentIds...>', 'Parent work item IDs')
|
|
118
|
+
.option('-f, --folder <path>', 'Override folder path')
|
|
119
|
+
.option('--skip-auto-convert', 'Skip HTML-to-markdown conversion', false)
|
|
120
|
+
.action(async (project, parentIds, opts) => {
|
|
121
|
+
try {
|
|
122
|
+
const ids = parentIds.map(id => parseInt(id, 10));
|
|
123
|
+
const result = await ctx.sync.syncTasksToFile(project, ids, opts.folder, opts.skipAutoConvert);
|
|
124
|
+
outputResult({ fileName: `sync-pull-tasks`, data: result, summary: `Synced tasks for ${result.pulled?.length || 0} parent(s)` }, getGlobalFlags(program));
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
handleCliError(error, 'sync tasks to file');
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
sync
|
|
131
|
+
.command('push-tasks')
|
|
132
|
+
.description('Push local task changes to ADO (requires AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true)')
|
|
133
|
+
.argument('<project>', 'Project name')
|
|
134
|
+
.argument('<parentIds...>', 'Parent work item IDs')
|
|
135
|
+
.option('-f, --folder <path>', 'Override folder path')
|
|
136
|
+
.option('--skip-auto-convert', 'Skip HTML-to-markdown conversion', false)
|
|
137
|
+
.action(async (project, parentIds, opts) => {
|
|
138
|
+
try {
|
|
139
|
+
const ids = parentIds.map(id => parseInt(id, 10));
|
|
140
|
+
const result = await ctx.sync.syncTasksFromFile(project, ids, opts.folder, opts.skipAutoConvert);
|
|
141
|
+
outputResult({ fileName: `sync-push-tasks`, data: result, summary: `Pushed tasks (${result.updated?.length || 0} updated, ${result.created?.length || 0} created)` }, getGlobalFlags(program));
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
handleCliError(error, 'sync tasks from file');
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=sync-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/sync-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variable Group CLI Commands - 2 commands
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../types.js';
|
|
6
|
+
export declare function registerVariableGroupCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
//# sourceMappingURL=variable-group-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-group-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/variable-group-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA+BzF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variable Group CLI Commands - 2 commands
|
|
3
|
+
*/
|
|
4
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
5
|
+
import { outputResult } from '../output.js';
|
|
6
|
+
export function registerVariableGroupCommands(program, ctx) {
|
|
7
|
+
const vg = program.command('variable-group').alias('vg').description('Variable group operations');
|
|
8
|
+
vg
|
|
9
|
+
.command('list')
|
|
10
|
+
.description('List all variable groups in a project')
|
|
11
|
+
.argument('<project>', 'Project name')
|
|
12
|
+
.action(async (project) => {
|
|
13
|
+
try {
|
|
14
|
+
const result = await ctx.variableGroup.getVariableGroups(project);
|
|
15
|
+
outputResult({ fileName: `variable-groups-${project}`, data: result, summary: `Variable groups in '${project}'` }, getGlobalFlags(program));
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
handleCliError(error, 'list variable groups');
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
vg
|
|
22
|
+
.command('get')
|
|
23
|
+
.description('Get a specific variable group by ID')
|
|
24
|
+
.argument('<project>', 'Project name')
|
|
25
|
+
.argument('<groupId>', 'Variable group ID')
|
|
26
|
+
.action(async (project, groupId) => {
|
|
27
|
+
try {
|
|
28
|
+
const result = await ctx.variableGroup.getVariableGroup(project, parseInt(groupId));
|
|
29
|
+
outputResult({ fileName: `variable-group-${groupId}`, data: result, summary: `Variable group #${groupId}` }, getGlobalFlags(program));
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
handleCliError(error, 'get variable group');
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=variable-group-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-group-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/variable-group-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,UAAU,6BAA6B,CAAC,OAAgB,EAAE,GAAmB;IACjF,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAElG,EAAE;SACC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uCAAuC,CAAC;SACpD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;SACrC,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClE,YAAY,CACV,EAAE,QAAQ,EAAE,mBAAmB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,OAAO,GAAG,EAAE,EACpG,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,cAAc,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEL,EAAE;SACC,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,qCAAqC,CAAC;SAClD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;SACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAe,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACpF,YAAY,CACV,EAAE,QAAQ,EAAE,kBAAkB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,OAAO,EAAE,EAAE,EAC9F,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,cAAc,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wiki CLI Commands - 9 commands mapping to wiki MCP tools
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../types.js';
|
|
6
|
+
export declare function registerWikiCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
//# sourceMappingURL=wiki-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wiki-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wiki-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA0JhF"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wiki CLI Commands - 9 commands mapping to wiki MCP tools
|
|
3
|
+
*/
|
|
4
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
5
|
+
import { outputResult } from '../output.js';
|
|
6
|
+
export function registerWikiCommands(program, ctx) {
|
|
7
|
+
const wiki = program.command('wiki').description('Wiki operations');
|
|
8
|
+
wiki
|
|
9
|
+
.command('list')
|
|
10
|
+
.description('List all wikis in a project')
|
|
11
|
+
.argument('<project>', 'Project name')
|
|
12
|
+
.action(async (project) => {
|
|
13
|
+
try {
|
|
14
|
+
const result = await ctx.wiki.getWikis(project);
|
|
15
|
+
outputResult({ fileName: `wikis-${project}`, data: result, summary: `Found ${Array.isArray(result) ? result.length : 0} wiki(s) in '${project}'` }, getGlobalFlags(program));
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
handleCliError(error, 'list wikis');
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
wiki
|
|
22
|
+
.command('search')
|
|
23
|
+
.description('Search wiki pages across projects')
|
|
24
|
+
.argument('<searchText>', 'Text to search for')
|
|
25
|
+
.option('-p, --project <project>', 'Filter by project')
|
|
26
|
+
.option('-m, --max-results <n>', 'Maximum results', '25')
|
|
27
|
+
.action(async (searchText, opts) => {
|
|
28
|
+
try {
|
|
29
|
+
const result = await ctx.wiki.searchWikiPages(searchText, opts.project, parseInt(opts.maxResults));
|
|
30
|
+
outputResult({ fileName: `wiki-search-${searchText.replace(/\s+/g, '-')}`, data: result, summary: `Found wiki pages matching '${searchText}'` }, getGlobalFlags(program));
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
handleCliError(error, 'search wiki pages');
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
wiki
|
|
37
|
+
.command('get')
|
|
38
|
+
.description('Get a specific wiki page with content')
|
|
39
|
+
.argument('<project>', 'Project name')
|
|
40
|
+
.argument('<wikiId>', 'Wiki identifier (ID or name)')
|
|
41
|
+
.argument('<pagePath>', 'Page path (e.g., /Setup/Authentication)')
|
|
42
|
+
.option('--no-content', 'Exclude page content')
|
|
43
|
+
.action(async (project, wikiId, pagePath, opts) => {
|
|
44
|
+
try {
|
|
45
|
+
const result = await ctx.wiki.getWikiPage(project, wikiId, pagePath, opts.content ?? true);
|
|
46
|
+
outputResult({ fileName: `wiki-page-${pagePath.replace(/\//g, '-')}`, data: result, summary: `Wiki page '${pagePath}'` }, getGlobalFlags(program));
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
handleCliError(error, 'get wiki page');
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
wiki
|
|
53
|
+
.command('create')
|
|
54
|
+
.description('Create a new wiki page (requires AZUREDEVOPS_ENABLE_WIKI_WRITE=true)')
|
|
55
|
+
.argument('<project>', 'Project name')
|
|
56
|
+
.argument('<wikiId>', 'Wiki identifier')
|
|
57
|
+
.argument('<pagePath>', 'Path for the new page')
|
|
58
|
+
.argument('<content>', 'Markdown content')
|
|
59
|
+
.action(async (project, wikiId, pagePath, content) => {
|
|
60
|
+
try {
|
|
61
|
+
const result = await ctx.wiki.createWikiPage(project, wikiId, pagePath, content);
|
|
62
|
+
outputResult({ fileName: `wiki-created-${pagePath.replace(/\//g, '-')}`, data: result, summary: `Created wiki page '${pagePath}'` }, getGlobalFlags(program));
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
handleCliError(error, 'create wiki page');
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
wiki
|
|
69
|
+
.command('update')
|
|
70
|
+
.description('Update an existing wiki page (requires AZUREDEVOPS_ENABLE_WIKI_WRITE=true)')
|
|
71
|
+
.argument('<project>', 'Project name')
|
|
72
|
+
.argument('<wikiId>', 'Wiki identifier')
|
|
73
|
+
.argument('<pagePath>', 'Page path')
|
|
74
|
+
.argument('<content>', 'Updated markdown content')
|
|
75
|
+
.option('-v, --version <etag>', 'ETag/version for optimistic concurrency')
|
|
76
|
+
.action(async (project, wikiId, pagePath, content, opts) => {
|
|
77
|
+
try {
|
|
78
|
+
const result = await ctx.wiki.updateWikiPage(project, wikiId, pagePath, content, opts.version);
|
|
79
|
+
outputResult({ fileName: `wiki-updated-${pagePath.replace(/\//g, '-')}`, data: result, summary: `Updated wiki page '${pagePath}'` }, getGlobalFlags(program));
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
handleCliError(error, 'update wiki page');
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
wiki
|
|
86
|
+
.command('str-replace')
|
|
87
|
+
.description('Replace text in a wiki page (requires AZUREDEVOPS_ENABLE_WIKI_WRITE=true)')
|
|
88
|
+
.argument('<project>', 'Project name')
|
|
89
|
+
.argument('<wikiId>', 'Wiki identifier')
|
|
90
|
+
.argument('<pagePath>', 'Page path')
|
|
91
|
+
.requiredOption('--old <text>', 'Text to replace')
|
|
92
|
+
.requiredOption('--new <text>', 'Replacement text')
|
|
93
|
+
.option('--replace-all', 'Replace all occurrences', false)
|
|
94
|
+
.option('-d, --description <text>', 'Change description')
|
|
95
|
+
.action(async (project, wikiId, pagePath, opts) => {
|
|
96
|
+
try {
|
|
97
|
+
const result = await ctx.wiki.strReplaceWikiPage(project, wikiId, pagePath, opts.old, opts.new, opts.replaceAll, opts.description);
|
|
98
|
+
outputResult({ fileName: `wiki-replace-${pagePath.replace(/\//g, '-')}`, data: result, summary: `Replaced text in '${pagePath}' (${result.occurrences} occurrence(s))` }, getGlobalFlags(program));
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
handleCliError(error, 'replace wiki text');
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
wiki
|
|
105
|
+
.command('delete')
|
|
106
|
+
.description('Delete a wiki page (requires AZUREDEVOPS_ENABLE_WIKI_DELETE=true)')
|
|
107
|
+
.argument('<project>', 'Project name')
|
|
108
|
+
.argument('<wikiId>', 'Wiki identifier')
|
|
109
|
+
.argument('<pagePath>', 'Page path')
|
|
110
|
+
.action(async (project, wikiId, pagePath) => {
|
|
111
|
+
try {
|
|
112
|
+
const result = await ctx.wiki.deleteWikiPage(project, wikiId, pagePath);
|
|
113
|
+
outputResult({ fileName: `wiki-deleted-${pagePath.replace(/\//g, '-')}`, data: result, summary: `Deleted wiki page '${pagePath}'` }, getGlobalFlags(program));
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
handleCliError(error, 'delete wiki page');
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
wiki
|
|
120
|
+
.command('download-attachment')
|
|
121
|
+
.description('Download a single wiki attachment/image')
|
|
122
|
+
.argument('<project>', 'Project name')
|
|
123
|
+
.argument('<wikiId>', 'Wiki identifier')
|
|
124
|
+
.argument('<attachmentPath>', 'Attachment path from wiki markdown')
|
|
125
|
+
.option('-o, --output-dir <dir>', 'Output directory (default: OS temp dir)')
|
|
126
|
+
.action(async (project, wikiId, attachmentPath, opts) => {
|
|
127
|
+
try {
|
|
128
|
+
const result = await ctx.wiki.downloadWikiAttachment(project, wikiId, attachmentPath, opts.outputDir);
|
|
129
|
+
outputResult({ fileName: `wiki-attachment`, data: result, summary: `Downloaded attachment to '${result.filePath}'` }, getGlobalFlags(program));
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
handleCliError(error, 'download wiki attachment');
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
wiki
|
|
136
|
+
.command('download-page-attachments')
|
|
137
|
+
.description('Download all attachments from a wiki page')
|
|
138
|
+
.argument('<project>', 'Project name')
|
|
139
|
+
.argument('<wikiId>', 'Wiki identifier')
|
|
140
|
+
.argument('<pagePath>', 'Wiki page path')
|
|
141
|
+
.option('-o, --output-dir <dir>', 'Output directory (default: OS temp dir)')
|
|
142
|
+
.action(async (project, wikiId, pagePath, opts) => {
|
|
143
|
+
try {
|
|
144
|
+
const result = await ctx.wiki.downloadWikiPageAttachments(project, wikiId, pagePath, opts.outputDir);
|
|
145
|
+
outputResult({ fileName: `wiki-attachments-${pagePath.replace(/\//g, '-')}`, data: result, summary: `Downloaded ${result.downloaded}/${result.totalFound} attachments from '${pagePath}'` }, getGlobalFlags(program));
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
handleCliError(error, 'download wiki page attachments');
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=wiki-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wiki-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/wiki-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Work Item CLI Commands - 10 commands mapping to work-item MCP tools
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../types.js';
|
|
6
|
+
export declare function registerWorkItemCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
//# sourceMappingURL=work-item-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-item-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/work-item-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA4KpF"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Work Item CLI Commands - 10 commands mapping to work-item MCP tools
|
|
3
|
+
*/
|
|
4
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
5
|
+
import { outputResult } from '../output.js';
|
|
6
|
+
export function registerWorkItemCommands(program, ctx) {
|
|
7
|
+
const wi = program.command('work-item').alias('wi').description('Work item operations');
|
|
8
|
+
wi
|
|
9
|
+
.command('get')
|
|
10
|
+
.description('Get a work item by ID')
|
|
11
|
+
.argument('<project>', 'Project name')
|
|
12
|
+
.argument('<id>', 'Work item ID')
|
|
13
|
+
.action(async (project, id) => {
|
|
14
|
+
try {
|
|
15
|
+
const workItemId = parseInt(id, 10);
|
|
16
|
+
const result = await ctx.workItem.getWorkItem(project, workItemId);
|
|
17
|
+
outputResult({ fileName: `work-item-${workItemId}`, data: result, summary: `Work item #${workItemId}` }, getGlobalFlags(program));
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
handleCliError(error, 'get work item');
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
wi
|
|
24
|
+
.command('query')
|
|
25
|
+
.description('Query work items using WIQL')
|
|
26
|
+
.argument('<project>', 'Project name')
|
|
27
|
+
.argument('<wiql>', 'WIQL query string')
|
|
28
|
+
.option('-m, --max-results <n>', 'Maximum results', '200')
|
|
29
|
+
.action(async (project, wiql, opts) => {
|
|
30
|
+
try {
|
|
31
|
+
const result = await ctx.workItem.queryWorkItems(project, wiql, parseInt(opts.maxResults));
|
|
32
|
+
outputResult({ fileName: `work-items-query`, data: result, summary: `Query returned results` }, getGlobalFlags(program));
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
handleCliError(error, 'query work items');
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
wi
|
|
39
|
+
.command('run-saved-query')
|
|
40
|
+
.description('Execute a saved ADO query by ID')
|
|
41
|
+
.argument('<project>', 'Project name')
|
|
42
|
+
.argument('<queryId>', 'Saved query GUID')
|
|
43
|
+
.option('-m, --max-results <n>', 'Maximum results', '50')
|
|
44
|
+
.option('-d, --detail <level>', 'Detail level: summary or full', 'summary')
|
|
45
|
+
.option('-f, --fields <fields...>', 'Custom field reference names')
|
|
46
|
+
.option('-g, --group-by <field>', 'Group results by field')
|
|
47
|
+
.action(async (project, queryId, opts) => {
|
|
48
|
+
try {
|
|
49
|
+
const result = await ctx.workItem.runSavedQuery(project, queryId, parseInt(opts.maxResults), opts.detail, opts.fields, opts.groupBy);
|
|
50
|
+
outputResult({ fileName: `saved-query-${queryId}`, data: result, summary: `Saved query results` }, getGlobalFlags(program));
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
handleCliError(error, 'run saved query');
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
wi
|
|
57
|
+
.command('get-saved-query')
|
|
58
|
+
.description('Get a saved query metadata and WIQL without executing')
|
|
59
|
+
.argument('<project>', 'Project name')
|
|
60
|
+
.argument('<queryId>', 'Saved query GUID')
|
|
61
|
+
.action(async (project, queryId) => {
|
|
62
|
+
try {
|
|
63
|
+
const result = await ctx.workItem.getSavedQuery(project, queryId);
|
|
64
|
+
outputResult({ fileName: `saved-query-meta-${queryId}`, data: result, summary: `Saved query: ${result?.name || queryId}` }, getGlobalFlags(program));
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
handleCliError(error, 'get saved query');
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
wi
|
|
71
|
+
.command('comments')
|
|
72
|
+
.description('Get comments for a work item')
|
|
73
|
+
.argument('<project>', 'Project name')
|
|
74
|
+
.argument('<id>', 'Work item ID')
|
|
75
|
+
.action(async (project, id) => {
|
|
76
|
+
try {
|
|
77
|
+
const workItemId = parseInt(id, 10);
|
|
78
|
+
const result = await ctx.workItem.getWorkItemComments(project, workItemId);
|
|
79
|
+
outputResult({ fileName: `work-item-${workItemId}-comments`, data: result, summary: `Comments for work item #${workItemId}` }, getGlobalFlags(program));
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
handleCliError(error, 'get work item comments');
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
wi
|
|
86
|
+
.command('add-comment')
|
|
87
|
+
.description('Add a comment to a work item (requires AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true)')
|
|
88
|
+
.argument('<project>', 'Project name')
|
|
89
|
+
.argument('<id>', 'Work item ID')
|
|
90
|
+
.argument('<text>', 'Comment text (markdown)')
|
|
91
|
+
.action(async (project, id, text) => {
|
|
92
|
+
try {
|
|
93
|
+
const workItemId = parseInt(id, 10);
|
|
94
|
+
const result = await ctx.workItem.addWorkItemComment(project, workItemId, text);
|
|
95
|
+
outputResult({ fileName: `work-item-${workItemId}-comment-added`, data: result, summary: `Added comment to work item #${workItemId}` }, getGlobalFlags(program));
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
handleCliError(error, 'add work item comment');
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
wi
|
|
102
|
+
.command('update-comment')
|
|
103
|
+
.description('Update a comment on a work item (requires AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true)')
|
|
104
|
+
.argument('<project>', 'Project name')
|
|
105
|
+
.argument('<workItemId>', 'Work item ID')
|
|
106
|
+
.argument('<commentId>', 'Comment ID')
|
|
107
|
+
.argument('<text>', 'Updated comment text (markdown)')
|
|
108
|
+
.action(async (project, workItemId, commentId, text) => {
|
|
109
|
+
try {
|
|
110
|
+
const result = await ctx.workItem.updateWorkItemComment(project, parseInt(workItemId, 10), parseInt(commentId, 10), text);
|
|
111
|
+
outputResult({ fileName: `work-item-${workItemId}-comment-${commentId}-updated`, data: result, summary: `Updated comment #${commentId} on work item #${workItemId}` }, getGlobalFlags(program));
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
handleCliError(error, 'update work item comment');
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
wi
|
|
118
|
+
.command('update')
|
|
119
|
+
.description('Update a work item with JSON Patch operations (requires AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true)')
|
|
120
|
+
.argument('<project>', 'Project name')
|
|
121
|
+
.argument('<id>', 'Work item ID')
|
|
122
|
+
.argument('<patchOps>', 'JSON array of patch operations')
|
|
123
|
+
.option('--skip-auto-convert', 'Skip automatic markdown format injection')
|
|
124
|
+
.action(async (project, id, patchOps, opts) => {
|
|
125
|
+
try {
|
|
126
|
+
const workItemId = parseInt(id, 10);
|
|
127
|
+
const operations = JSON.parse(patchOps);
|
|
128
|
+
const result = await ctx.workItem.updateWorkItem(project, workItemId, operations);
|
|
129
|
+
outputResult({ fileName: `work-item-${workItemId}-updated`, data: result, summary: `Updated work item #${workItemId}` }, getGlobalFlags(program));
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
handleCliError(error, 'update work item');
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
wi
|
|
136
|
+
.command('create')
|
|
137
|
+
.description('Create a new work item (requires AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true)')
|
|
138
|
+
.argument('<project>', 'Project name')
|
|
139
|
+
.argument('<type>', 'Work item type (Bug, Task, User Story, Feature, Epic)')
|
|
140
|
+
.argument('<fields>', 'JSON object of field values')
|
|
141
|
+
.option('--parent-id <id>', 'Parent work item ID')
|
|
142
|
+
.action(async (project, type, fieldsJson, opts) => {
|
|
143
|
+
try {
|
|
144
|
+
const fields = JSON.parse(fieldsJson);
|
|
145
|
+
const parentId = opts.parentId ? parseInt(opts.parentId, 10) : undefined;
|
|
146
|
+
const result = await ctx.workItem.createWorkItem(project, type, fields, parentId);
|
|
147
|
+
outputResult({ fileName: `work-item-created`, data: result, summary: `Created ${type} work item` }, getGlobalFlags(program));
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
handleCliError(error, 'create work item');
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
wi
|
|
154
|
+
.command('delete')
|
|
155
|
+
.description('Delete a work item (requires AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE=true)')
|
|
156
|
+
.argument('<project>', 'Project name')
|
|
157
|
+
.argument('<id>', 'Work item ID')
|
|
158
|
+
.action(async (project, id) => {
|
|
159
|
+
try {
|
|
160
|
+
const workItemId = parseInt(id, 10);
|
|
161
|
+
const result = await ctx.workItem.deleteWorkItem(project, workItemId);
|
|
162
|
+
outputResult({ fileName: `work-item-${workItemId}-deleted`, data: result, summary: `Deleted work item #${workItemId}` }, getGlobalFlags(program));
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
handleCliError(error, 'delete work item');
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=work-item-commands.js.map
|