@azure-devops/mcp 2.0.0-nightly.20250906 → 2.0.0-nightly.20250908
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/dist/tools/repositories.js +70 -12
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -199,11 +199,17 @@ function configureRepoTools(server, tokenProvider, connectionProvider, userAgent
|
|
|
199
199
|
created_by_me: z.boolean().default(false).describe("Filter pull requests created by the current user."),
|
|
200
200
|
created_by_user: z.string().optional().describe("Filter pull requests created by a specific user (provide email or unique name). Takes precedence over created_by_me if both are provided."),
|
|
201
201
|
i_am_reviewer: z.boolean().default(false).describe("Filter pull requests where the current user is a reviewer."),
|
|
202
|
+
user_is_reviewer: z
|
|
203
|
+
.string()
|
|
204
|
+
.optional()
|
|
205
|
+
.describe("Filter pull requests where a specific user is a reviewer (provide email or unique name). Takes precedence over i_am_reviewer if both are provided."),
|
|
202
206
|
status: z
|
|
203
207
|
.enum(getEnumKeys(PullRequestStatus))
|
|
204
208
|
.default("Active")
|
|
205
209
|
.describe("Filter pull requests by status. Defaults to 'Active'."),
|
|
206
|
-
|
|
210
|
+
sourceRefName: z.string().optional().describe("Filter pull requests from this source branch (e.g., 'refs/heads/feature-branch')."),
|
|
211
|
+
targetRefName: z.string().optional().describe("Filter pull requests into this target branch (e.g., 'refs/heads/main')."),
|
|
212
|
+
}, async ({ repositoryId, top, skip, created_by_me, created_by_user, i_am_reviewer, user_is_reviewer, status, sourceRefName, targetRefName }) => {
|
|
207
213
|
const connection = await connectionProvider();
|
|
208
214
|
const gitApi = await connection.getGitApi();
|
|
209
215
|
// Build the search criteria
|
|
@@ -211,6 +217,12 @@ function configureRepoTools(server, tokenProvider, connectionProvider, userAgent
|
|
|
211
217
|
status: pullRequestStatusStringToInt(status),
|
|
212
218
|
repositoryId: repositoryId,
|
|
213
219
|
};
|
|
220
|
+
if (sourceRefName) {
|
|
221
|
+
searchCriteria.sourceRefName = sourceRefName;
|
|
222
|
+
}
|
|
223
|
+
if (targetRefName) {
|
|
224
|
+
searchCriteria.targetRefName = targetRefName;
|
|
225
|
+
}
|
|
214
226
|
if (created_by_user) {
|
|
215
227
|
try {
|
|
216
228
|
const userId = await getUserIdFromEmail(created_by_user, tokenProvider, connectionProvider, userAgentProvider);
|
|
@@ -228,16 +240,33 @@ function configureRepoTools(server, tokenProvider, connectionProvider, userAgent
|
|
|
228
240
|
};
|
|
229
241
|
}
|
|
230
242
|
}
|
|
231
|
-
else if (created_by_me
|
|
243
|
+
else if (created_by_me) {
|
|
232
244
|
const data = await getCurrentUserDetails(tokenProvider, connectionProvider, userAgentProvider);
|
|
233
245
|
const userId = data.authenticatedUser.id;
|
|
234
|
-
|
|
235
|
-
|
|
246
|
+
searchCriteria.creatorId = userId;
|
|
247
|
+
}
|
|
248
|
+
if (user_is_reviewer) {
|
|
249
|
+
try {
|
|
250
|
+
const reviewerUserId = await getUserIdFromEmail(user_is_reviewer, tokenProvider, connectionProvider, userAgentProvider);
|
|
251
|
+
searchCriteria.reviewerId = reviewerUserId;
|
|
236
252
|
}
|
|
237
|
-
|
|
238
|
-
|
|
253
|
+
catch (error) {
|
|
254
|
+
return {
|
|
255
|
+
content: [
|
|
256
|
+
{
|
|
257
|
+
type: "text",
|
|
258
|
+
text: `Error finding reviewer with email ${user_is_reviewer}: ${error instanceof Error ? error.message : String(error)}`,
|
|
259
|
+
},
|
|
260
|
+
],
|
|
261
|
+
isError: true,
|
|
262
|
+
};
|
|
239
263
|
}
|
|
240
264
|
}
|
|
265
|
+
else if (i_am_reviewer) {
|
|
266
|
+
const data = await getCurrentUserDetails(tokenProvider, connectionProvider, userAgentProvider);
|
|
267
|
+
const userId = data.authenticatedUser.id;
|
|
268
|
+
searchCriteria.reviewerId = userId;
|
|
269
|
+
}
|
|
241
270
|
const pullRequests = await gitApi.getPullRequests(repositoryId, searchCriteria, undefined, // project
|
|
242
271
|
undefined, // maxCommentLength
|
|
243
272
|
skip, top);
|
|
@@ -267,17 +296,29 @@ function configureRepoTools(server, tokenProvider, connectionProvider, userAgent
|
|
|
267
296
|
created_by_me: z.boolean().default(false).describe("Filter pull requests created by the current user."),
|
|
268
297
|
created_by_user: z.string().optional().describe("Filter pull requests created by a specific user (provide email or unique name). Takes precedence over created_by_me if both are provided."),
|
|
269
298
|
i_am_reviewer: z.boolean().default(false).describe("Filter pull requests where the current user is a reviewer."),
|
|
299
|
+
user_is_reviewer: z
|
|
300
|
+
.string()
|
|
301
|
+
.optional()
|
|
302
|
+
.describe("Filter pull requests where a specific user is a reviewer (provide email or unique name). Takes precedence over i_am_reviewer if both are provided."),
|
|
270
303
|
status: z
|
|
271
304
|
.enum(getEnumKeys(PullRequestStatus))
|
|
272
305
|
.default("Active")
|
|
273
306
|
.describe("Filter pull requests by status. Defaults to 'Active'."),
|
|
274
|
-
|
|
307
|
+
sourceRefName: z.string().optional().describe("Filter pull requests from this source branch (e.g., 'refs/heads/feature-branch')."),
|
|
308
|
+
targetRefName: z.string().optional().describe("Filter pull requests into this target branch (e.g., 'refs/heads/main')."),
|
|
309
|
+
}, async ({ project, top, skip, created_by_me, created_by_user, i_am_reviewer, user_is_reviewer, status, sourceRefName, targetRefName }) => {
|
|
275
310
|
const connection = await connectionProvider();
|
|
276
311
|
const gitApi = await connection.getGitApi();
|
|
277
312
|
// Build the search criteria
|
|
278
313
|
const gitPullRequestSearchCriteria = {
|
|
279
314
|
status: pullRequestStatusStringToInt(status),
|
|
280
315
|
};
|
|
316
|
+
if (sourceRefName) {
|
|
317
|
+
gitPullRequestSearchCriteria.sourceRefName = sourceRefName;
|
|
318
|
+
}
|
|
319
|
+
if (targetRefName) {
|
|
320
|
+
gitPullRequestSearchCriteria.targetRefName = targetRefName;
|
|
321
|
+
}
|
|
281
322
|
if (created_by_user) {
|
|
282
323
|
try {
|
|
283
324
|
const userId = await getUserIdFromEmail(created_by_user, tokenProvider, connectionProvider, userAgentProvider);
|
|
@@ -295,16 +336,33 @@ function configureRepoTools(server, tokenProvider, connectionProvider, userAgent
|
|
|
295
336
|
};
|
|
296
337
|
}
|
|
297
338
|
}
|
|
298
|
-
else if (created_by_me
|
|
339
|
+
else if (created_by_me) {
|
|
299
340
|
const data = await getCurrentUserDetails(tokenProvider, connectionProvider, userAgentProvider);
|
|
300
341
|
const userId = data.authenticatedUser.id;
|
|
301
|
-
|
|
302
|
-
|
|
342
|
+
gitPullRequestSearchCriteria.creatorId = userId;
|
|
343
|
+
}
|
|
344
|
+
if (user_is_reviewer) {
|
|
345
|
+
try {
|
|
346
|
+
const reviewerUserId = await getUserIdFromEmail(user_is_reviewer, tokenProvider, connectionProvider, userAgentProvider);
|
|
347
|
+
gitPullRequestSearchCriteria.reviewerId = reviewerUserId;
|
|
303
348
|
}
|
|
304
|
-
|
|
305
|
-
|
|
349
|
+
catch (error) {
|
|
350
|
+
return {
|
|
351
|
+
content: [
|
|
352
|
+
{
|
|
353
|
+
type: "text",
|
|
354
|
+
text: `Error finding reviewer with email ${user_is_reviewer}: ${error instanceof Error ? error.message : String(error)}`,
|
|
355
|
+
},
|
|
356
|
+
],
|
|
357
|
+
isError: true,
|
|
358
|
+
};
|
|
306
359
|
}
|
|
307
360
|
}
|
|
361
|
+
else if (i_am_reviewer) {
|
|
362
|
+
const data = await getCurrentUserDetails(tokenProvider, connectionProvider, userAgentProvider);
|
|
363
|
+
const userId = data.authenticatedUser.id;
|
|
364
|
+
gitPullRequestSearchCriteria.reviewerId = userId;
|
|
365
|
+
}
|
|
308
366
|
const pullRequests = await gitApi.getPullRequestsByProject(project, gitPullRequestSearchCriteria, undefined, // maxCommentLength
|
|
309
367
|
skip, top);
|
|
310
368
|
// Filter out the irrelevant properties
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const packageVersion = "2.0.0-nightly.
|
|
1
|
+
export const packageVersion = "2.0.0-nightly.20250908";
|