@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.
Files changed (153) hide show
  1. package/build/azure-devops-client.d.ts +42 -0
  2. package/build/azure-devops-client.d.ts.map +1 -0
  3. package/build/azure-devops-client.js +144 -0
  4. package/build/azure-devops-client.js.map +1 -0
  5. package/build/cli/commands/build-commands.d.ts +7 -0
  6. package/build/cli/commands/build-commands.d.ts.map +1 -0
  7. package/build/cli/commands/build-commands.js +59 -0
  8. package/build/cli/commands/build-commands.js.map +1 -0
  9. package/build/cli/commands/configuration-commands.d.ts +7 -0
  10. package/build/cli/commands/configuration-commands.d.ts.map +1 -0
  11. package/build/cli/commands/configuration-commands.js +24 -0
  12. package/build/cli/commands/configuration-commands.js.map +1 -0
  13. package/build/cli/commands/index.d.ts +14 -0
  14. package/build/cli/commands/index.d.ts.map +1 -0
  15. package/build/cli/commands/index.js +27 -0
  16. package/build/cli/commands/index.js.map +1 -0
  17. package/build/cli/commands/pull-request-commands.d.ts +7 -0
  18. package/build/cli/commands/pull-request-commands.d.ts.map +1 -0
  19. package/build/cli/commands/pull-request-commands.js +234 -0
  20. package/build/cli/commands/pull-request-commands.js.map +1 -0
  21. package/build/cli/commands/sync-commands.d.ts +7 -0
  22. package/build/cli/commands/sync-commands.d.ts.map +1 -0
  23. package/build/cli/commands/sync-commands.js +148 -0
  24. package/build/cli/commands/sync-commands.js.map +1 -0
  25. package/build/cli/commands/variable-group-commands.d.ts +7 -0
  26. package/build/cli/commands/variable-group-commands.d.ts.map +1 -0
  27. package/build/cli/commands/variable-group-commands.js +36 -0
  28. package/build/cli/commands/variable-group-commands.js.map +1 -0
  29. package/build/cli/commands/wiki-commands.d.ts +7 -0
  30. package/build/cli/commands/wiki-commands.d.ts.map +1 -0
  31. package/build/cli/commands/wiki-commands.js +152 -0
  32. package/build/cli/commands/wiki-commands.js.map +1 -0
  33. package/build/cli/commands/work-item-commands.d.ts +7 -0
  34. package/build/cli/commands/work-item-commands.d.ts.map +1 -0
  35. package/build/cli/commands/work-item-commands.js +169 -0
  36. package/build/cli/commands/work-item-commands.js.map +1 -0
  37. package/build/cli/output.d.ts +11 -0
  38. package/build/cli/output.d.ts.map +1 -0
  39. package/build/cli/output.js +10 -0
  40. package/build/cli/output.js.map +1 -0
  41. package/build/cli.d.ts +9 -0
  42. package/build/cli.d.ts.map +1 -0
  43. package/build/cli.js +27 -0
  44. package/build/cli.js.map +1 -0
  45. package/build/context-factory.d.ts +10 -0
  46. package/build/context-factory.d.ts.map +1 -0
  47. package/build/context-factory.js +61 -0
  48. package/build/context-factory.js.map +1 -0
  49. package/build/index.d.ts +9 -11
  50. package/build/index.d.ts.map +1 -1
  51. package/build/index.js +14 -1906
  52. package/build/index.js.map +1 -1
  53. package/build/models/api-types.d.ts +159 -0
  54. package/build/models/api-types.d.ts.map +1 -0
  55. package/build/models/api-types.js +5 -0
  56. package/build/models/api-types.js.map +1 -0
  57. package/build/models/index.d.ts +5 -0
  58. package/build/models/index.d.ts.map +1 -0
  59. package/build/models/index.js +5 -0
  60. package/build/models/index.js.map +1 -0
  61. package/build/prompts/index.d.ts +3 -0
  62. package/build/prompts/index.d.ts.map +1 -0
  63. package/build/prompts/index.js +83 -0
  64. package/build/prompts/index.js.map +1 -0
  65. package/build/prompts/templates.d.ts +8 -0
  66. package/build/prompts/templates.d.ts.map +1 -0
  67. package/build/prompts/templates.js +126 -0
  68. package/build/prompts/templates.js.map +1 -0
  69. package/build/services/build-service.d.ts +16 -0
  70. package/build/services/build-service.d.ts.map +1 -0
  71. package/build/services/build-service.js +195 -0
  72. package/build/services/build-service.js.map +1 -0
  73. package/build/services/configuration-service.d.ts +7 -0
  74. package/build/services/configuration-service.d.ts.map +1 -0
  75. package/build/services/configuration-service.js +24 -0
  76. package/build/services/configuration-service.js.map +1 -0
  77. package/build/services/index.d.ts +11 -0
  78. package/build/services/index.d.ts.map +1 -0
  79. package/build/services/index.js +11 -0
  80. package/build/services/index.js.map +1 -0
  81. package/build/services/pull-request-service.d.ts +29 -0
  82. package/build/services/pull-request-service.d.ts.map +1 -0
  83. package/build/services/pull-request-service.js +390 -0
  84. package/build/services/pull-request-service.js.map +1 -0
  85. package/build/services/sync-service.d.ts +19 -0
  86. package/build/services/sync-service.d.ts.map +1 -0
  87. package/build/services/sync-service.js +463 -0
  88. package/build/services/sync-service.js.map +1 -0
  89. package/build/services/variable-group-service.d.ts +11 -0
  90. package/build/services/variable-group-service.d.ts.map +1 -0
  91. package/build/services/variable-group-service.js +62 -0
  92. package/build/services/variable-group-service.js.map +1 -0
  93. package/build/services/wiki-service.d.ts +41 -0
  94. package/build/services/wiki-service.d.ts.map +1 -0
  95. package/build/services/wiki-service.js +346 -0
  96. package/build/services/wiki-service.js.map +1 -0
  97. package/build/services/work-item-service.d.ts +22 -0
  98. package/build/services/work-item-service.d.ts.map +1 -0
  99. package/build/services/work-item-service.js +285 -0
  100. package/build/services/work-item-service.js.map +1 -0
  101. package/build/sync/file-utils.d.ts +7 -5
  102. package/build/sync/file-utils.d.ts.map +1 -1
  103. package/build/sync/file-utils.js +17 -8
  104. package/build/sync/file-utils.js.map +1 -1
  105. package/build/sync/markdown-serializer.d.ts +19 -4
  106. package/build/sync/markdown-serializer.d.ts.map +1 -1
  107. package/build/sync/markdown-serializer.js +48 -31
  108. package/build/sync/markdown-serializer.js.map +1 -1
  109. package/build/tool-examples.d.ts +9 -8
  110. package/build/tool-examples.d.ts.map +1 -1
  111. package/build/tool-examples.js +29 -12
  112. package/build/tool-examples.js.map +1 -1
  113. package/build/tools/build-tools.d.ts +3 -0
  114. package/build/tools/build-tools.d.ts.map +1 -0
  115. package/build/tools/build-tools.js +56 -0
  116. package/build/tools/build-tools.js.map +1 -0
  117. package/build/tools/configuration-tools.d.ts +6 -0
  118. package/build/tools/configuration-tools.d.ts.map +1 -0
  119. package/build/tools/configuration-tools.js +30 -0
  120. package/build/tools/configuration-tools.js.map +1 -0
  121. package/build/tools/index.d.ts +13 -0
  122. package/build/tools/index.d.ts.map +1 -0
  123. package/build/tools/index.js +30 -0
  124. package/build/tools/index.js.map +1 -0
  125. package/build/tools/pull-request-tools.d.ts +5 -0
  126. package/build/tools/pull-request-tools.d.ts.map +1 -0
  127. package/build/tools/pull-request-tools.js +227 -0
  128. package/build/tools/pull-request-tools.js.map +1 -0
  129. package/build/tools/sync-tools.d.ts +3 -0
  130. package/build/tools/sync-tools.d.ts.map +1 -0
  131. package/build/tools/sync-tools.js +146 -0
  132. package/build/tools/sync-tools.js.map +1 -0
  133. package/build/tools/variable-group-tools.d.ts +3 -0
  134. package/build/tools/variable-group-tools.d.ts.map +1 -0
  135. package/build/tools/variable-group-tools.js +32 -0
  136. package/build/tools/variable-group-tools.js.map +1 -0
  137. package/build/tools/wiki-tools.d.ts +3 -0
  138. package/build/tools/wiki-tools.d.ts.map +1 -0
  139. package/build/tools/wiki-tools.js +151 -0
  140. package/build/tools/wiki-tools.js.map +1 -0
  141. package/build/tools/work-item-tools.d.ts +3 -0
  142. package/build/tools/work-item-tools.d.ts.map +1 -0
  143. package/build/tools/work-item-tools.js +188 -0
  144. package/build/tools/work-item-tools.js.map +1 -0
  145. package/build/types.d.ts +23 -0
  146. package/build/types.d.ts.map +1 -0
  147. package/build/types.js +2 -0
  148. package/build/types.js.map +1 -0
  149. package/package.json +5 -3
  150. package/build/AzureDevOpsService.d.ts +0 -489
  151. package/build/AzureDevOpsService.d.ts.map +0 -1
  152. package/build/AzureDevOpsService.js +0 -1558
  153. package/build/AzureDevOpsService.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Build Service - Azure DevOps build/pipeline troubleshooting operations
3
+ *
4
+ * NOTE: These methods are duplicated in azure-devops-admin package.
5
+ * If you update these, also update packages/azure-devops-admin/src/AzureDevOpsAdminService.ts
6
+ */
7
+ import type { AzureDevOpsClient } from '../azure-devops-client.js';
8
+ export declare class BuildService {
9
+ private readonly client;
10
+ constructor(client: AzureDevOpsClient);
11
+ private filterLogContent;
12
+ getBuildStatus(project: string, buildId: number, detail?: string, timelineScope?: 'stages' | 'jobs' | 'all' | 'problems', maxIssues?: number): Promise<any>;
13
+ getBuildTimeline(project: string, buildId: number, scope?: 'stages' | 'jobs' | 'all' | 'problems', maxIssues?: number): Promise<any>;
14
+ getBuildLogs(project: string, buildId: number, logId?: number, mode?: 'summary' | 'full' | 'errors'): Promise<any>;
15
+ }
16
+ //# sourceMappingURL=build-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-service.d.ts","sourceRoot":"","sources":["../../src/services/build-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,iBAAiB;IAEtD,OAAO,CAAC,gBAAgB;IA2ClB,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAkB,EAC1B,aAAa,GAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,UAAuB,EAClE,SAAS,GAAE,MAAU,GACpB,OAAO,CAAC,GAAG,CAAC;IA0CT,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,UAAuB,EAC1D,SAAS,GAAE,MAAU,GACpB,OAAO,CAAC,GAAG,CAAC;IAqGT,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,GAAG,MAAM,GAAG,QAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;CAuCpI"}
@@ -0,0 +1,195 @@
1
+ export class BuildService {
2
+ client;
3
+ constructor(client) {
4
+ this.client = client;
5
+ }
6
+ filterLogContent(content, mode) {
7
+ const lines = content.split('\n');
8
+ const originalLineCount = lines.length;
9
+ if (mode === 'full') {
10
+ return { filtered: content, originalLineCount, filteredLineCount: originalLineCount };
11
+ }
12
+ const PROGRESS_PATTERNS = [
13
+ /remote: Counting objects:\s+\d+%/,
14
+ /remote: Compressing objects:\s+\d+%/,
15
+ /Receiving objects:\s+\d+%/,
16
+ /Resolving deltas:\s+\d+%/,
17
+ /Unpacking objects:\s+\d+%/,
18
+ /Updating files:\s+\d+%/,
19
+ ];
20
+ const ERROR_PATTERNS = [
21
+ /##\[error\]/i,
22
+ /##\[warning\]/i,
23
+ /\berror\b.*:/i,
24
+ /\bfailed\b/i,
25
+ /\bexception\b/i,
26
+ /\bfatal\b/i,
27
+ ];
28
+ const filteredLines = lines.filter(line => {
29
+ const trimmedLine = line.replace(/^\d{4}-\d{2}-\d{2}T[\d:.]+Z\s*/, '');
30
+ if (mode === 'errors') {
31
+ return ERROR_PATTERNS.some(p => p.test(trimmedLine));
32
+ }
33
+ return !PROGRESS_PATTERNS.some(p => p.test(trimmedLine));
34
+ });
35
+ return {
36
+ filtered: filteredLines.join('\n'),
37
+ originalLineCount,
38
+ filteredLineCount: filteredLines.length
39
+ };
40
+ }
41
+ async getBuildStatus(project, buildId, detail = 'summary', timelineScope = 'problems', maxIssues = 5) {
42
+ this.client.validateProject(project);
43
+ const response = await this.client.get(`${project}/_apis/build/builds/${buildId}?api-version=${this.client.apiVersion}`);
44
+ const result = {
45
+ id: response.id,
46
+ buildNumber: response.buildNumber,
47
+ status: response.status,
48
+ result: response.result,
49
+ queueTime: response.queueTime,
50
+ startTime: response.startTime,
51
+ finishTime: response.finishTime,
52
+ sourceBranch: response.sourceBranch,
53
+ sourceVersion: response.sourceVersion,
54
+ definition: response.definition ? {
55
+ id: response.definition.id,
56
+ name: response.definition.name
57
+ } : null,
58
+ requestedBy: response.requestedBy?.displayName,
59
+ requestedFor: response.requestedFor?.displayName,
60
+ reason: response.reason,
61
+ priority: response.priority,
62
+ project: response.project?.name,
63
+ url: response._links?.web?.href
64
+ };
65
+ if (detail === 'timeline' || detail === 'full') {
66
+ const timeline = await this.getBuildTimeline(project, buildId, timelineScope, maxIssues);
67
+ result.timeline = timeline;
68
+ }
69
+ if (detail === 'full') {
70
+ const logs = await this.getBuildLogs(project, buildId);
71
+ result.logs = logs;
72
+ }
73
+ return result;
74
+ }
75
+ async getBuildTimeline(project, buildId, scope = 'problems', maxIssues = 5) {
76
+ this.client.validateProject(project);
77
+ const response = await this.client.get(`${project}/_apis/build/builds/${buildId}/timeline?api-version=${this.client.apiVersion}`);
78
+ const allRecords = response.records || [];
79
+ const summary = {
80
+ total: allRecords.length,
81
+ byType: {},
82
+ byResult: {},
83
+ totalErrors: 0,
84
+ totalWarnings: 0,
85
+ failed: [],
86
+ };
87
+ for (const record of allRecords) {
88
+ summary.byType[record.type] = (summary.byType[record.type] || 0) + 1;
89
+ if (record.result) {
90
+ summary.byResult[record.result] = (summary.byResult[record.result] || 0) + 1;
91
+ }
92
+ summary.totalErrors += record.errorCount || 0;
93
+ summary.totalWarnings += record.warningCount || 0;
94
+ if (record.result === 'failed' || record.result === 'canceled') {
95
+ summary.failed.push(`${record.type}: ${record.name}`);
96
+ }
97
+ }
98
+ let filteredRecords = allRecords;
99
+ switch (scope) {
100
+ case 'stages':
101
+ filteredRecords = allRecords.filter((r) => r.type === 'Stage');
102
+ break;
103
+ case 'jobs':
104
+ filteredRecords = allRecords.filter((r) => r.type === 'Stage' || r.type === 'Job');
105
+ break;
106
+ case 'problems':
107
+ filteredRecords = allRecords.filter((r) => (r.errorCount && r.errorCount > 0) ||
108
+ (r.warningCount && r.warningCount > 0) ||
109
+ r.result === 'failed' ||
110
+ r.result === 'canceled');
111
+ break;
112
+ case 'all':
113
+ default:
114
+ break;
115
+ }
116
+ const truncateIssues = (issues, max) => {
117
+ if (!issues || issues.length === 0)
118
+ return { items: [], totalCount: 0, truncated: false };
119
+ const sorted = [...issues].sort((a, b) => {
120
+ const priority = (issue) => {
121
+ if (issue.type === 'error')
122
+ return 0;
123
+ if (issue.type === 'warning')
124
+ return 1;
125
+ return 2;
126
+ };
127
+ return priority(a) - priority(b);
128
+ });
129
+ return {
130
+ items: sorted.slice(0, max),
131
+ totalCount: issues.length,
132
+ truncated: issues.length > max
133
+ };
134
+ };
135
+ const mappedRecords = filteredRecords.map((record) => {
136
+ const truncatedIssues = truncateIssues(record.issues, maxIssues);
137
+ return {
138
+ id: record.id,
139
+ parentId: record.parentId,
140
+ type: record.type,
141
+ name: record.name,
142
+ state: record.state,
143
+ result: record.result,
144
+ startTime: record.startTime,
145
+ finishTime: record.finishTime,
146
+ order: record.order,
147
+ errorCount: record.errorCount,
148
+ warningCount: record.warningCount,
149
+ log: record.log ? { id: record.log.id } : null,
150
+ issues: truncatedIssues.items,
151
+ issuesTruncated: truncatedIssues.truncated,
152
+ totalIssueCount: truncatedIssues.totalCount
153
+ };
154
+ });
155
+ return {
156
+ buildId,
157
+ project,
158
+ scope,
159
+ summary,
160
+ recordCount: mappedRecords.length,
161
+ records: mappedRecords
162
+ };
163
+ }
164
+ async getBuildLogs(project, buildId, logId, mode = 'summary') {
165
+ this.client.validateProject(project);
166
+ if (logId !== undefined) {
167
+ const response = await this.client.get(`${project}/_apis/build/builds/${buildId}/logs/${logId}?api-version=${this.client.apiVersion}`);
168
+ const { filtered, originalLineCount, filteredLineCount } = this.filterLogContent(response, mode);
169
+ return {
170
+ buildId,
171
+ logId,
172
+ project,
173
+ mode,
174
+ originalLineCount,
175
+ filteredLineCount,
176
+ content: filtered
177
+ };
178
+ }
179
+ const response = await this.client.get(`${project}/_apis/build/builds/${buildId}/logs?api-version=${this.client.apiVersion}`);
180
+ return {
181
+ buildId,
182
+ project,
183
+ totalCount: response.value.length,
184
+ logs: response.value.map((log) => ({
185
+ id: log.id,
186
+ type: log.type,
187
+ lineCount: log.lineCount,
188
+ createdOn: log.createdOn,
189
+ lastChangedOn: log.lastChangedOn,
190
+ url: log.url
191
+ }))
192
+ };
193
+ }
194
+ }
195
+ //# sourceMappingURL=build-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-service.js","sourceRoot":"","sources":["../../src/services/build-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Configuration Service - Reads environment configuration
3
+ */
4
+ export declare class ConfigurationService {
5
+ getConfiguration(): any;
6
+ }
7
+ //# sourceMappingURL=configuration-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration-service.d.ts","sourceRoot":"","sources":["../../src/services/configuration-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,oBAAoB;IAC/B,gBAAgB,IAAI,GAAG;CAoBxB"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Configuration Service - Reads environment configuration
3
+ */
4
+ export class ConfigurationService {
5
+ getConfiguration() {
6
+ const organization = process.env.AZUREDEVOPS_ORGANIZATION;
7
+ const projects = process.env.AZUREDEVOPS_PROJECTS?.split(",").map(p => p.trim()).filter(p => p) || [];
8
+ const syncFolder = process.env.AZUREDEVOPS_SYNC_FOLDER || 'docs/user-stories';
9
+ if (!organization || projects.length === 0) {
10
+ return null;
11
+ }
12
+ return {
13
+ organization,
14
+ projects,
15
+ syncFolder,
16
+ urlPatterns: {
17
+ workItem: `https://dev.azure.com/${organization}/{project}/_workitems/edit/{id}`,
18
+ pullRequest: `https://dev.azure.com/${organization}/{project}/_git/{repo}/pullrequest/{id}`,
19
+ wiki: `https://dev.azure.com/${organization}/{project}/_wiki/wikis/{wikiName}/{pagePath}`,
20
+ },
21
+ };
22
+ }
23
+ }
24
+ //# sourceMappingURL=configuration-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration-service.js","sourceRoot":"","sources":["../../src/services/configuration-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,oBAAoB;IAC/B,gBAAgB;QACd,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;QAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtG,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,mBAAmB,CAAC;QAE9E,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,YAAY;YACZ,QAAQ;YACR,UAAU;YACV,WAAW,EAAE;gBACX,QAAQ,EAAE,yBAAyB,YAAY,iCAAiC;gBAChF,WAAW,EAAE,yBAAyB,YAAY,yCAAyC;gBAC3F,IAAI,EAAE,yBAAyB,YAAY,8CAA8C;aAC1F;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Services barrel export
3
+ */
4
+ export { WikiService } from './wiki-service.js';
5
+ export { WorkItemService } from './work-item-service.js';
6
+ export { PullRequestService } from './pull-request-service.js';
7
+ export { BuildService } from './build-service.js';
8
+ export { VariableGroupService } from './variable-group-service.js';
9
+ export { SyncService } from './sync-service.js';
10
+ export { ConfigurationService } from './configuration-service.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Services barrel export
3
+ */
4
+ export { WikiService } from './wiki-service.js';
5
+ export { WorkItemService } from './work-item-service.js';
6
+ export { PullRequestService } from './pull-request-service.js';
7
+ export { BuildService } from './build-service.js';
8
+ export { VariableGroupService } from './variable-group-service.js';
9
+ export { SyncService } from './sync-service.js';
10
+ export { ConfigurationService } from './configuration-service.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Pull Request Service - Azure DevOps pull request operations
3
+ */
4
+ import type { AzureDevOpsClient } from '../azure-devops-client.js';
5
+ export declare class PullRequestService {
6
+ private readonly client;
7
+ constructor(client: AzureDevOpsClient);
8
+ private truncate;
9
+ private getVoteLabel;
10
+ listRepositories(project: string): Promise<any>;
11
+ listPullRequests(project: string, repositoryId: string, status?: 'active' | 'completed' | 'abandoned' | 'all', top?: number, creatorId?: string, reviewerId?: string): Promise<any>;
12
+ getPullRequest(project: string, repositoryId: string, pullRequestId: number): Promise<any>;
13
+ getPullRequestCommits(project: string, repositoryId: string, pullRequestId: number): Promise<any>;
14
+ getPullRequestThreads(project: string, repositoryId: string, pullRequestId: number): Promise<any>;
15
+ getPullRequestChanges(project: string, repositoryId: string, pullRequestId: number, iterationId?: number): Promise<any>;
16
+ addPullRequestThread(project: string, repositoryId: string, pullRequestId: number, content: string, filePath?: string, lineNumber?: number, status?: 'active' | 'fixed' | 'wontFix' | 'closed' | 'byDesign' | 'pending'): Promise<any>;
17
+ createPullRequest(project: string, repositoryId: string, sourceRefName: string, targetRefName: string, title: string, description?: string, reviewerIds?: string[], isDraft?: boolean): Promise<any>;
18
+ updatePullRequest(project: string, repositoryId: string, pullRequestId: number, updates: {
19
+ title?: string;
20
+ description?: string;
21
+ status?: 'abandoned' | 'active';
22
+ isDraft?: boolean;
23
+ }): Promise<any>;
24
+ completePullRequest(project: string, repositoryId: string, pullRequestId: number, mergeStrategy?: 'squash' | 'noFastForward' | 'rebase' | 'rebaseMerge', deleteSourceBranch?: boolean, transitionWorkItems?: boolean, mergeCommitMessage?: string): Promise<any>;
25
+ addOrRemovePrReviewer(project: string, repositoryId: string, pullRequestId: number, reviewerId: string, isRequired?: boolean, remove?: boolean): Promise<any>;
26
+ votePullRequest(project: string, repositoryId: string, pullRequestId: number, vote: 'approve' | 'approveWithSuggestions' | 'noResponse' | 'waitForAuthor' | 'reject', reviewerId?: string): Promise<any>;
27
+ replyToPrThread(project: string, repositoryId: string, pullRequestId: number, threadId: number, content?: string, status?: 'active' | 'fixed' | 'wontFix' | 'closed' | 'byDesign' | 'pending'): Promise<any>;
28
+ }
29
+ //# sourceMappingURL=pull-request-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-request-service.d.ts","sourceRoot":"","sources":["../../src/services/pull-request-service.ts"],"names":[],"mappings":"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"}