bitbucket-mcp-server 1.0.16 → 1.0.18
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 +25 -18
- package/build/bitbucket-api.d.ts +16 -4
- package/build/bitbucket-api.js +64 -18
- package/build/bitbucket-api.js.map +1 -1
- package/build/bitbucket-api.test.js +234 -0
- package/build/bitbucket-api.test.js.map +1 -1
- package/build/config.d.ts +3 -0
- package/build/config.js +2 -0
- package/build/config.js.map +1 -1
- package/build/tools/index.js +93 -44
- package/build/tools/index.js.map +1 -1
- package/build/tools/index.test.d.ts +1 -0
- package/build/tools/index.test.js +111 -0
- package/build/tools/index.test.js.map +1 -0
- package/build/validation.d.ts +1 -0
- package/build/validation.js +16 -0
- package/build/validation.js.map +1 -1
- package/build/validation.test.js +29 -2
- package/build/validation.test.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -73,6 +73,7 @@ To create a User API token:
|
|
|
73
73
|
|
|
74
74
|
| Variable | Default | Description |
|
|
75
75
|
|---|---|---|
|
|
76
|
+
| `BITBUCKET_WORKSPACE` | *(none)* | Default workspace used by all tools when `workspace` parameter is not provided |
|
|
76
77
|
| `BITBUCKET_LOG_LEVEL` | `info` | Log verbosity: `error`, `warn`, `info`, `debug` |
|
|
77
78
|
| `BITBUCKET_TIMEOUT` | `30000` | Request timeout in milliseconds (1000–60000) |
|
|
78
79
|
| `BITBUCKET_ENABLE_METRICS` | `true` | Enable performance metrics collection (`true`/`false`) |
|
|
@@ -96,7 +97,8 @@ Add this server to your MCP client configuration. For Claude Desktop, add to you
|
|
|
96
97
|
"args": ["/ABSOLUTE/PATH/TO/bitbucket_mcp/build/index.js"],
|
|
97
98
|
"env": {
|
|
98
99
|
"BITBUCKET_USERNAME": "your-atlassian-email@example.com",
|
|
99
|
-
"BITBUCKET_API_TOKEN": "your-api-token"
|
|
100
|
+
"BITBUCKET_API_TOKEN": "your-api-token",
|
|
101
|
+
"BITBUCKET_WORKSPACE": "your-workspace-name"
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
}
|
|
@@ -112,7 +114,8 @@ Add this server to your MCP client configuration. For Claude Desktop, add to you
|
|
|
112
114
|
"args": ["C:\\ABSOLUTE\\PATH\\TO\\bitbucket_mcp\\build\\index.js"],
|
|
113
115
|
"env": {
|
|
114
116
|
"BITBUCKET_USERNAME": "your-atlassian-email@example.com",
|
|
115
|
-
"BITBUCKET_API_TOKEN": "your-api-token"
|
|
117
|
+
"BITBUCKET_API_TOKEN": "your-api-token",
|
|
118
|
+
"BITBUCKET_WORKSPACE": "your-workspace-name"
|
|
116
119
|
}
|
|
117
120
|
}
|
|
118
121
|
}
|
|
@@ -128,7 +131,8 @@ Add this server to your MCP client configuration. For Claude Desktop, add to you
|
|
|
128
131
|
"args": ["bitbucket-mcp-server"],
|
|
129
132
|
"env": {
|
|
130
133
|
"BITBUCKET_USERNAME": "your-atlassian-email@example.com",
|
|
131
|
-
"BITBUCKET_API_TOKEN": "your-api-token"
|
|
134
|
+
"BITBUCKET_API_TOKEN": "your-api-token",
|
|
135
|
+
"BITBUCKET_WORKSPACE": "your-workspace-name"
|
|
132
136
|
}
|
|
133
137
|
}
|
|
134
138
|
}
|
|
@@ -137,6 +141,8 @@ Add this server to your MCP client configuration. For Claude Desktop, add to you
|
|
|
137
141
|
|
|
138
142
|
> **Note:** If you are using a Workspace or Project access token instead of a User API token, you can omit `BITBUCKET_USERNAME` from the configuration.
|
|
139
143
|
|
|
144
|
+
> **Tip:** Set `BITBUCKET_WORKSPACE` to your default workspace so you don't need to pass `workspace` on every tool call. You can still override it per-call by providing the `workspace` argument explicitly.
|
|
145
|
+
|
|
140
146
|
## Usage Examples
|
|
141
147
|
|
|
142
148
|
### List Repositories
|
|
@@ -215,7 +221,7 @@ Show the last 5 commits on the main branch of myworkspace/myrepo
|
|
|
215
221
|
Lists repositories in a Bitbucket workspace.
|
|
216
222
|
|
|
217
223
|
**Parameters:**
|
|
218
|
-
- `workspace` (
|
|
224
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
219
225
|
- `role` (optional): Filter by user role (owner, admin, contributor, member)
|
|
220
226
|
- `sort` (optional): Sort by (created_on, updated_on, name, size)
|
|
221
227
|
|
|
@@ -223,14 +229,14 @@ Lists repositories in a Bitbucket workspace.
|
|
|
223
229
|
Gets detailed information about a specific repository.
|
|
224
230
|
|
|
225
231
|
**Parameters:**
|
|
226
|
-
- `workspace` (
|
|
232
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
227
233
|
- `repo_slug` (required): Repository name/slug
|
|
228
234
|
|
|
229
235
|
### list-pull-requests
|
|
230
236
|
Lists pull requests for a repository.
|
|
231
237
|
|
|
232
238
|
**Parameters:**
|
|
233
|
-
- `workspace` (
|
|
239
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
234
240
|
- `repo_slug` (required): Repository name/slug
|
|
235
241
|
- `state` (optional): Filter by state (OPEN, MERGED, DECLINED, SUPERSEDED)
|
|
236
242
|
|
|
@@ -238,7 +244,7 @@ Lists pull requests for a repository.
|
|
|
238
244
|
Gets detailed information about a specific pull request.
|
|
239
245
|
|
|
240
246
|
**Parameters:**
|
|
241
|
-
- `workspace` (
|
|
247
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
242
248
|
- `repo_slug` (required): Repository name/slug
|
|
243
249
|
- `pull_request_id` (required): Pull request ID
|
|
244
250
|
|
|
@@ -246,7 +252,7 @@ Gets detailed information about a specific pull request.
|
|
|
246
252
|
Creates a new pull request in a repository.
|
|
247
253
|
|
|
248
254
|
**Parameters:**
|
|
249
|
-
- `workspace` (
|
|
255
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
250
256
|
- `repo_slug` (required): Repository name/slug
|
|
251
257
|
- `title` (required): Title of the pull request
|
|
252
258
|
- `source_branch` (required): Source branch name (the branch with your changes)
|
|
@@ -261,7 +267,7 @@ Creates a new pull request in a repository.
|
|
|
261
267
|
Updates the title and/or description of an existing pull request.
|
|
262
268
|
|
|
263
269
|
**Parameters:**
|
|
264
|
-
- `workspace` (
|
|
270
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
265
271
|
- `repo_slug` (required): Repository name/slug
|
|
266
272
|
- `pull_request_id` (required): Pull request ID
|
|
267
273
|
- `title` (optional): New title for the pull request
|
|
@@ -273,7 +279,7 @@ Updates the title and/or description of an existing pull request.
|
|
|
273
279
|
Creates a comment on a pull request. This tool can create both regular comments and inline comments on specific files and line numbers.
|
|
274
280
|
|
|
275
281
|
**Parameters:**
|
|
276
|
-
- `workspace` (
|
|
282
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
277
283
|
- `repo_slug` (required): Repository name/slug
|
|
278
284
|
- `pull_request_id` (required): Pull request ID
|
|
279
285
|
- `content` (required): Comment content in plain text
|
|
@@ -287,7 +293,7 @@ Creates a comment on a pull request. This tool can create both regular comments
|
|
|
287
293
|
Lists all comments on a pull request, including inline comments and replies.
|
|
288
294
|
|
|
289
295
|
**Parameters:**
|
|
290
|
-
- `workspace` (
|
|
296
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
291
297
|
- `repo_slug` (required): Repository name/slug
|
|
292
298
|
- `pull_request_id` (required): Pull request ID
|
|
293
299
|
|
|
@@ -295,7 +301,7 @@ Lists all comments on a pull request, including inline comments and replies.
|
|
|
295
301
|
Gets detailed information about a specific comment on a pull request.
|
|
296
302
|
|
|
297
303
|
**Parameters:**
|
|
298
|
-
- `workspace` (
|
|
304
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
299
305
|
- `repo_slug` (required): Repository name/slug
|
|
300
306
|
- `pull_request_id` (required): Pull request ID
|
|
301
307
|
- `comment_id` (required): Comment ID
|
|
@@ -304,7 +310,7 @@ Gets detailed information about a specific comment on a pull request.
|
|
|
304
310
|
Lists issues for a repository.
|
|
305
311
|
|
|
306
312
|
**Parameters:**
|
|
307
|
-
- `workspace` (
|
|
313
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
308
314
|
- `repo_slug` (required): Repository name/slug
|
|
309
315
|
- `state` (optional): Filter by state (new, open, resolved, on hold, invalid, duplicate, wontfix, closed)
|
|
310
316
|
- `kind` (optional): Filter by kind (bug, enhancement, proposal, task)
|
|
@@ -313,23 +319,24 @@ Lists issues for a repository.
|
|
|
313
319
|
Lists branches for a repository.
|
|
314
320
|
|
|
315
321
|
**Parameters:**
|
|
316
|
-
- `workspace` (
|
|
322
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
317
323
|
- `repo_slug` (required): Repository name/slug
|
|
318
324
|
|
|
319
325
|
### get-commits
|
|
320
326
|
Gets recent commits for a repository.
|
|
321
327
|
|
|
322
328
|
**Parameters:**
|
|
323
|
-
- `workspace` (
|
|
329
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
324
330
|
- `repo_slug` (required): Repository name/slug
|
|
325
331
|
- `branch` (optional): Specific branch name
|
|
326
|
-
- `
|
|
332
|
+
- `page` (optional): Page number or opaque next page URL from Bitbucket pagination
|
|
333
|
+
- `pagelen` (optional): Number of commits per page (default: 10, min: 10, max: 100)
|
|
327
334
|
|
|
328
335
|
### get-commit
|
|
329
336
|
Gets detailed information about a specific commit in a repository.
|
|
330
337
|
|
|
331
338
|
**Parameters:**
|
|
332
|
-
- `workspace` (
|
|
339
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
333
340
|
- `repo_slug` (required): Repository name/slug
|
|
334
341
|
- `commit_hash` (required): Commit hash (full 40-char or short 7+ char)
|
|
335
342
|
|
|
@@ -337,7 +344,7 @@ Gets detailed information about a specific commit in a repository.
|
|
|
337
344
|
Searches across repositories, pull requests, issues, and commits in a workspace.
|
|
338
345
|
|
|
339
346
|
**Parameters:**
|
|
340
|
-
- `workspace` (
|
|
347
|
+
- `workspace` (optional): Bitbucket workspace name. Defaults to `BITBUCKET_WORKSPACE` env var if not provided.
|
|
341
348
|
- `query` (required): Search query (searches in titles, descriptions, and content)
|
|
342
349
|
- `types` (optional): Types of items to search (repositories, pull-requests, issues, commits) (default: `["repositories", "pull-requests", "issues"]`)
|
|
343
350
|
- `limit` (optional): Maximum number of results per type (default: 10)
|
package/build/bitbucket-api.d.ts
CHANGED
|
@@ -202,26 +202,38 @@ export declare class BitbucketAPI {
|
|
|
202
202
|
pagelen?: number;
|
|
203
203
|
}>;
|
|
204
204
|
getRepository(workspace: string, repoSlug: string): Promise<Repository>;
|
|
205
|
-
getPullRequests(workspace: string, repoSlug: string, state?: string, page?: string): Promise<{
|
|
205
|
+
getPullRequests(workspace: string, repoSlug: string, state?: string | string[], page?: string, pagelen?: number): Promise<{
|
|
206
206
|
pullRequests: PullRequest[];
|
|
207
207
|
hasMore: boolean;
|
|
208
|
+
next?: string;
|
|
209
|
+
page?: number;
|
|
210
|
+
pagelen?: number;
|
|
208
211
|
}>;
|
|
209
212
|
getPullRequest(workspace: string, repoSlug: string, pullRequestId: number): Promise<PullRequest>;
|
|
210
213
|
updatePullRequest(workspace: string, repoSlug: string, pullRequestId: number, updates: {
|
|
211
214
|
title?: string;
|
|
212
215
|
description?: string;
|
|
213
216
|
}): Promise<PullRequest>;
|
|
214
|
-
getIssues(workspace: string, repoSlug: string, state?: string, page?: string): Promise<{
|
|
217
|
+
getIssues(workspace: string, repoSlug: string, state?: string, page?: string, pagelen?: number): Promise<{
|
|
215
218
|
issues: Issue[];
|
|
216
219
|
hasMore: boolean;
|
|
220
|
+
next?: string;
|
|
221
|
+
page?: number;
|
|
222
|
+
pagelen?: number;
|
|
217
223
|
}>;
|
|
218
|
-
getBranches(workspace: string, repoSlug: string, page?: string): Promise<{
|
|
224
|
+
getBranches(workspace: string, repoSlug: string, page?: string, pagelen?: number): Promise<{
|
|
219
225
|
branches: Branch[];
|
|
220
226
|
hasMore: boolean;
|
|
227
|
+
next?: string;
|
|
228
|
+
page?: number;
|
|
229
|
+
pagelen?: number;
|
|
221
230
|
}>;
|
|
222
|
-
getCommits(workspace: string, repoSlug: string, branch?: string, page?: string): Promise<{
|
|
231
|
+
getCommits(workspace: string, repoSlug: string, branch?: string, page?: string, pagelen?: number): Promise<{
|
|
223
232
|
commits: Commit[];
|
|
224
233
|
hasMore: boolean;
|
|
234
|
+
next?: string;
|
|
235
|
+
page?: number;
|
|
236
|
+
pagelen?: number;
|
|
225
237
|
}>;
|
|
226
238
|
getPullRequestComments(workspace: string, repoSlug: string, pullRequestId: number, options?: string | {
|
|
227
239
|
page?: string;
|
package/build/bitbucket-api.js
CHANGED
|
@@ -209,18 +209,32 @@ export class BitbucketAPI {
|
|
|
209
209
|
const url = `${BITBUCKET_API_BASE}/repositories/${workspace}/${repoSlug}`;
|
|
210
210
|
return this.makeRequest(url);
|
|
211
211
|
}
|
|
212
|
-
async getPullRequests(workspace, repoSlug, state, page) {
|
|
212
|
+
async getPullRequests(workspace, repoSlug, state, page, pagelen) {
|
|
213
213
|
let url = `${BITBUCKET_API_BASE}/repositories/${workspace}/${repoSlug}/pullrequests`;
|
|
214
|
-
if (page) {
|
|
214
|
+
if (page && page.startsWith('http')) {
|
|
215
215
|
url = page;
|
|
216
216
|
}
|
|
217
|
-
else
|
|
218
|
-
|
|
217
|
+
else {
|
|
218
|
+
const queryParams = new URLSearchParams();
|
|
219
|
+
if (state) {
|
|
220
|
+
const states = Array.isArray(state) ? state : [state];
|
|
221
|
+
for (const s of states) {
|
|
222
|
+
queryParams.append('state', s);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
if (page)
|
|
226
|
+
queryParams.append('page', page);
|
|
227
|
+
const clampedPagelen = pagelen !== undefined ? Math.min(100, Math.max(10, pagelen)) : 10;
|
|
228
|
+
queryParams.append('pagelen', clampedPagelen.toString());
|
|
229
|
+
url += `?${queryParams.toString()}`;
|
|
219
230
|
}
|
|
220
231
|
const response = await this.makeRequest(url);
|
|
221
232
|
return {
|
|
222
233
|
pullRequests: response.values,
|
|
223
|
-
hasMore: !!response.next
|
|
234
|
+
hasMore: !!response.next,
|
|
235
|
+
next: response.next,
|
|
236
|
+
page: response.page,
|
|
237
|
+
pagelen: response.pagelen
|
|
224
238
|
};
|
|
225
239
|
}
|
|
226
240
|
async getPullRequest(workspace, repoSlug, pullRequestId) {
|
|
@@ -245,43 +259,75 @@ export class BitbucketAPI {
|
|
|
245
259
|
body: JSON.stringify(payload)
|
|
246
260
|
});
|
|
247
261
|
}
|
|
248
|
-
async getIssues(workspace, repoSlug, state, page) {
|
|
262
|
+
async getIssues(workspace, repoSlug, state, page, pagelen) {
|
|
249
263
|
let url = `${BITBUCKET_API_BASE}/repositories/${workspace}/${repoSlug}/issues`;
|
|
250
|
-
if (page) {
|
|
264
|
+
if (page && page.startsWith('http')) {
|
|
251
265
|
url = page;
|
|
252
266
|
}
|
|
253
|
-
else
|
|
254
|
-
|
|
267
|
+
else {
|
|
268
|
+
const queryParams = new URLSearchParams();
|
|
269
|
+
if (state)
|
|
270
|
+
queryParams.append('state', state);
|
|
271
|
+
if (page)
|
|
272
|
+
queryParams.append('page', page);
|
|
273
|
+
const clampedPagelen = pagelen !== undefined ? Math.min(100, Math.max(10, pagelen)) : 10;
|
|
274
|
+
queryParams.append('pagelen', clampedPagelen.toString());
|
|
275
|
+
url += `?${queryParams.toString()}`;
|
|
255
276
|
}
|
|
256
277
|
const response = await this.makeRequest(url);
|
|
257
278
|
return {
|
|
258
279
|
issues: response.values,
|
|
259
|
-
hasMore: !!response.next
|
|
280
|
+
hasMore: !!response.next,
|
|
281
|
+
next: response.next,
|
|
282
|
+
page: response.page,
|
|
283
|
+
pagelen: response.pagelen
|
|
260
284
|
};
|
|
261
285
|
}
|
|
262
|
-
async getBranches(workspace, repoSlug, page) {
|
|
286
|
+
async getBranches(workspace, repoSlug, page, pagelen) {
|
|
263
287
|
let url = `${BITBUCKET_API_BASE}/repositories/${workspace}/${repoSlug}/refs/branches`;
|
|
264
|
-
if (page) {
|
|
288
|
+
if (page && page.startsWith('http')) {
|
|
265
289
|
url = page;
|
|
266
290
|
}
|
|
291
|
+
else {
|
|
292
|
+
const queryParams = new URLSearchParams();
|
|
293
|
+
if (page)
|
|
294
|
+
queryParams.append('page', page);
|
|
295
|
+
const clampedPagelen = pagelen !== undefined ? Math.min(100, Math.max(10, pagelen)) : 10;
|
|
296
|
+
queryParams.append('pagelen', clampedPagelen.toString());
|
|
297
|
+
url += `?${queryParams.toString()}`;
|
|
298
|
+
}
|
|
267
299
|
const response = await this.makeRequest(url);
|
|
268
300
|
return {
|
|
269
301
|
branches: response.values,
|
|
270
|
-
hasMore: !!response.next
|
|
302
|
+
hasMore: !!response.next,
|
|
303
|
+
next: response.next,
|
|
304
|
+
page: response.page,
|
|
305
|
+
pagelen: response.pagelen
|
|
271
306
|
};
|
|
272
307
|
}
|
|
273
|
-
async getCommits(workspace, repoSlug, branch, page) {
|
|
308
|
+
async getCommits(workspace, repoSlug, branch, page, pagelen) {
|
|
274
309
|
let url = `${BITBUCKET_API_BASE}/repositories/${workspace}/${repoSlug}/commits`;
|
|
275
|
-
if (page) {
|
|
310
|
+
if (page && page.startsWith('http')) {
|
|
276
311
|
url = page;
|
|
277
312
|
}
|
|
278
|
-
else
|
|
279
|
-
|
|
313
|
+
else {
|
|
314
|
+
if (branch) {
|
|
315
|
+
url += `/${branch}`;
|
|
316
|
+
}
|
|
317
|
+
const queryParams = new URLSearchParams();
|
|
318
|
+
if (page)
|
|
319
|
+
queryParams.append('page', page);
|
|
320
|
+
const clampedPagelen = pagelen !== undefined ? Math.min(100, Math.max(10, pagelen)) : 10;
|
|
321
|
+
queryParams.append('pagelen', clampedPagelen.toString());
|
|
322
|
+
url += `?${queryParams.toString()}`;
|
|
280
323
|
}
|
|
281
324
|
const response = await this.makeRequest(url);
|
|
282
325
|
return {
|
|
283
326
|
commits: response.values,
|
|
284
|
-
hasMore: !!response.next
|
|
327
|
+
hasMore: !!response.next,
|
|
328
|
+
next: response.next,
|
|
329
|
+
page: response.page,
|
|
330
|
+
pagelen: response.pagelen
|
|
285
331
|
};
|
|
286
332
|
}
|
|
287
333
|
async getPullRequestComments(workspace, repoSlug, pullRequestId, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitbucket-api.js","sourceRoot":"","sources":["../src/bitbucket-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bitbucket-api.js","sourceRoot":"","sources":["../src/bitbucket-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -764,5 +764,239 @@ describe('BitbucketAPI', () => {
|
|
|
764
764
|
await expect(api.getPullRequestComment('ws', 'repo', 1, 999)).rejects.toThrow();
|
|
765
765
|
});
|
|
766
766
|
});
|
|
767
|
+
describe('getPullRequests', () => {
|
|
768
|
+
it('should return pull requests with pagination metadata', async () => {
|
|
769
|
+
const mockResponse = {
|
|
770
|
+
ok: true,
|
|
771
|
+
status: 200,
|
|
772
|
+
json: vi.fn().mockResolvedValue({
|
|
773
|
+
values: [{ id: 1, title: 'Test PR', state: 'OPEN' }],
|
|
774
|
+
page: 1,
|
|
775
|
+
pagelen: 10,
|
|
776
|
+
next: 'https://api.bitbucket.org/2.0/repositories/ws/repo/pullrequests?page=2',
|
|
777
|
+
}),
|
|
778
|
+
};
|
|
779
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
780
|
+
const result = await api.getPullRequests('ws', 'repo');
|
|
781
|
+
expect(result.pullRequests).toHaveLength(1);
|
|
782
|
+
expect(result.hasMore).toBe(true);
|
|
783
|
+
expect(result.next).toBe('https://api.bitbucket.org/2.0/repositories/ws/repo/pullrequests?page=2');
|
|
784
|
+
expect(result.page).toBe(1);
|
|
785
|
+
expect(result.pagelen).toBe(10);
|
|
786
|
+
});
|
|
787
|
+
it('should use opaque next URL directly when page starts with http', async () => {
|
|
788
|
+
const mockResponse = {
|
|
789
|
+
ok: true,
|
|
790
|
+
status: 200,
|
|
791
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
792
|
+
};
|
|
793
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
794
|
+
await api.getPullRequests('ws', 'repo', undefined, 'https://api.bitbucket.org/2.0/repositories/ws/repo/pullrequests?page=3&pagelen=25');
|
|
795
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/pullrequests?page=3&pagelen=25', expect.any(Object));
|
|
796
|
+
});
|
|
797
|
+
it('should include state filter when page is not an opaque URL', async () => {
|
|
798
|
+
const mockResponse = {
|
|
799
|
+
ok: true,
|
|
800
|
+
status: 200,
|
|
801
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
802
|
+
};
|
|
803
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
804
|
+
await api.getPullRequests('ws', 'repo', 'OPEN');
|
|
805
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/pullrequests?state=OPEN&pagelen=10', expect.any(Object));
|
|
806
|
+
});
|
|
807
|
+
it('should support multiple state values as repeated query parameters', async () => {
|
|
808
|
+
const mockResponse = {
|
|
809
|
+
ok: true,
|
|
810
|
+
status: 200,
|
|
811
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
812
|
+
};
|
|
813
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
814
|
+
await api.getPullRequests('ws', 'repo', ['OPEN', 'MERGED']);
|
|
815
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/pullrequests?state=OPEN&state=MERGED&pagelen=10', expect.any(Object));
|
|
816
|
+
});
|
|
817
|
+
it('should clamp pull request pagelen to Bitbucket minimum', async () => {
|
|
818
|
+
const mockResponse = {
|
|
819
|
+
ok: true,
|
|
820
|
+
status: 200,
|
|
821
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
822
|
+
};
|
|
823
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
824
|
+
await api.getPullRequests('ws', 'repo', undefined, undefined, 1);
|
|
825
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/pullrequests?pagelen=10', expect.any(Object));
|
|
826
|
+
});
|
|
827
|
+
it('should honor custom pull request pagelen within range', async () => {
|
|
828
|
+
const mockResponse = {
|
|
829
|
+
ok: true,
|
|
830
|
+
status: 200,
|
|
831
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
832
|
+
};
|
|
833
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
834
|
+
await api.getPullRequests('ws', 'repo', undefined, undefined, 50);
|
|
835
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/pullrequests?pagelen=50', expect.any(Object));
|
|
836
|
+
});
|
|
837
|
+
});
|
|
838
|
+
describe('getIssues', () => {
|
|
839
|
+
it('should return issues with pagination metadata', async () => {
|
|
840
|
+
const mockResponse = {
|
|
841
|
+
ok: true,
|
|
842
|
+
status: 200,
|
|
843
|
+
json: vi.fn().mockResolvedValue({
|
|
844
|
+
values: [{ id: 10, title: 'Test Issue', state: 'open', kind: 'bug' }],
|
|
845
|
+
page: 1,
|
|
846
|
+
pagelen: 10,
|
|
847
|
+
next: 'https://api.bitbucket.org/2.0/repositories/ws/repo/issues?page=2',
|
|
848
|
+
}),
|
|
849
|
+
};
|
|
850
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
851
|
+
const result = await api.getIssues('ws', 'repo');
|
|
852
|
+
expect(result.issues).toHaveLength(1);
|
|
853
|
+
expect(result.hasMore).toBe(true);
|
|
854
|
+
expect(result.next).toBe('https://api.bitbucket.org/2.0/repositories/ws/repo/issues?page=2');
|
|
855
|
+
expect(result.page).toBe(1);
|
|
856
|
+
expect(result.pagelen).toBe(10);
|
|
857
|
+
});
|
|
858
|
+
it('should use opaque next URL directly when page starts with http', async () => {
|
|
859
|
+
const mockResponse = {
|
|
860
|
+
ok: true,
|
|
861
|
+
status: 200,
|
|
862
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
863
|
+
};
|
|
864
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
865
|
+
await api.getIssues('ws', 'repo', undefined, 'https://api.bitbucket.org/2.0/repositories/ws/repo/issues?page=2&pagelen=25');
|
|
866
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/issues?page=2&pagelen=25', expect.any(Object));
|
|
867
|
+
});
|
|
868
|
+
it('should include state filter when page is not an opaque URL', async () => {
|
|
869
|
+
const mockResponse = {
|
|
870
|
+
ok: true,
|
|
871
|
+
status: 200,
|
|
872
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
873
|
+
};
|
|
874
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
875
|
+
await api.getIssues('ws', 'repo', 'open');
|
|
876
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/issues?state=open&pagelen=10', expect.any(Object));
|
|
877
|
+
});
|
|
878
|
+
it('should clamp issue pagelen to Bitbucket minimum', async () => {
|
|
879
|
+
const mockResponse = {
|
|
880
|
+
ok: true,
|
|
881
|
+
status: 200,
|
|
882
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
883
|
+
};
|
|
884
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
885
|
+
await api.getIssues('ws', 'repo', undefined, undefined, 1);
|
|
886
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/issues?pagelen=10', expect.any(Object));
|
|
887
|
+
});
|
|
888
|
+
});
|
|
889
|
+
describe('getBranches', () => {
|
|
890
|
+
it('should return branches with pagination metadata', async () => {
|
|
891
|
+
const mockResponse = {
|
|
892
|
+
ok: true,
|
|
893
|
+
status: 200,
|
|
894
|
+
json: vi.fn().mockResolvedValue({
|
|
895
|
+
values: [{ name: 'main', target: { hash: 'abc123', author: { raw: 'Test' }, message: 'Init', date: '2023-01-01' }, links: { html: { href: 'https://bitbucket.org' } } }],
|
|
896
|
+
page: 1,
|
|
897
|
+
pagelen: 10,
|
|
898
|
+
next: 'https://api.bitbucket.org/2.0/repositories/ws/repo/refs/branches?page=2',
|
|
899
|
+
}),
|
|
900
|
+
};
|
|
901
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
902
|
+
const result = await api.getBranches('ws', 'repo');
|
|
903
|
+
expect(result.branches).toHaveLength(1);
|
|
904
|
+
expect(result.hasMore).toBe(true);
|
|
905
|
+
expect(result.next).toBe('https://api.bitbucket.org/2.0/repositories/ws/repo/refs/branches?page=2');
|
|
906
|
+
expect(result.page).toBe(1);
|
|
907
|
+
expect(result.pagelen).toBe(10);
|
|
908
|
+
});
|
|
909
|
+
it('should use opaque next URL directly when page starts with http', async () => {
|
|
910
|
+
const mockResponse = {
|
|
911
|
+
ok: true,
|
|
912
|
+
status: 200,
|
|
913
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
914
|
+
};
|
|
915
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
916
|
+
await api.getBranches('ws', 'repo', 'https://api.bitbucket.org/2.0/repositories/ws/repo/refs/branches?page=3&pagelen=25');
|
|
917
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/refs/branches?page=3&pagelen=25', expect.any(Object));
|
|
918
|
+
});
|
|
919
|
+
it('should include default pagelen in the request URL', async () => {
|
|
920
|
+
const mockResponse = {
|
|
921
|
+
ok: true,
|
|
922
|
+
status: 200,
|
|
923
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
924
|
+
};
|
|
925
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
926
|
+
await api.getBranches('ws', 'repo');
|
|
927
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/refs/branches?pagelen=10', expect.any(Object));
|
|
928
|
+
});
|
|
929
|
+
it('should clamp branch pagelen to Bitbucket minimum', async () => {
|
|
930
|
+
const mockResponse = {
|
|
931
|
+
ok: true,
|
|
932
|
+
status: 200,
|
|
933
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
934
|
+
};
|
|
935
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
936
|
+
await api.getBranches('ws', 'repo', undefined, 1);
|
|
937
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/refs/branches?pagelen=10', expect.any(Object));
|
|
938
|
+
});
|
|
939
|
+
});
|
|
940
|
+
describe('getCommits', () => {
|
|
941
|
+
it('should return commits with pagination metadata', async () => {
|
|
942
|
+
const mockResponse = {
|
|
943
|
+
ok: true,
|
|
944
|
+
status: 200,
|
|
945
|
+
json: vi.fn().mockResolvedValue({
|
|
946
|
+
values: [{ hash: 'abc123def456', message: 'Fix bug', author: { raw: 'Dev' }, date: '2023-01-01', parents: [], links: { html: { href: 'https://bitbucket.org' } } }],
|
|
947
|
+
page: 1,
|
|
948
|
+
pagelen: 10,
|
|
949
|
+
next: 'https://api.bitbucket.org/2.0/repositories/ws/repo/commits?page=2',
|
|
950
|
+
}),
|
|
951
|
+
};
|
|
952
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
953
|
+
const result = await api.getCommits('ws', 'repo');
|
|
954
|
+
expect(result.commits).toHaveLength(1);
|
|
955
|
+
expect(result.hasMore).toBe(true);
|
|
956
|
+
expect(result.next).toBe('https://api.bitbucket.org/2.0/repositories/ws/repo/commits?page=2');
|
|
957
|
+
expect(result.page).toBe(1);
|
|
958
|
+
expect(result.pagelen).toBe(10);
|
|
959
|
+
});
|
|
960
|
+
it('should use opaque next URL directly when page starts with http', async () => {
|
|
961
|
+
const mockResponse = {
|
|
962
|
+
ok: true,
|
|
963
|
+
status: 200,
|
|
964
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
965
|
+
};
|
|
966
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
967
|
+
await api.getCommits('ws', 'repo', undefined, 'https://api.bitbucket.org/2.0/repositories/ws/repo/commits?page=3&pagelen=25');
|
|
968
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/commits?page=3&pagelen=25', expect.any(Object));
|
|
969
|
+
});
|
|
970
|
+
it('should append branch to the URL when branch is provided', async () => {
|
|
971
|
+
const mockResponse = {
|
|
972
|
+
ok: true,
|
|
973
|
+
status: 200,
|
|
974
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
975
|
+
};
|
|
976
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
977
|
+
await api.getCommits('ws', 'repo', 'main');
|
|
978
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/commits/main?pagelen=10', expect.any(Object));
|
|
979
|
+
});
|
|
980
|
+
it('should support custom pagelen for commits', async () => {
|
|
981
|
+
const mockResponse = {
|
|
982
|
+
ok: true,
|
|
983
|
+
status: 200,
|
|
984
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
985
|
+
};
|
|
986
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
987
|
+
await api.getCommits('ws', 'repo', undefined, undefined, 50);
|
|
988
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/commits?pagelen=50', expect.any(Object));
|
|
989
|
+
});
|
|
990
|
+
it('should clamp commit pagelen to Bitbucket minimum', async () => {
|
|
991
|
+
const mockResponse = {
|
|
992
|
+
ok: true,
|
|
993
|
+
status: 200,
|
|
994
|
+
json: vi.fn().mockResolvedValue({ values: [], next: null }),
|
|
995
|
+
};
|
|
996
|
+
mockFetch.mockResolvedValue(mockResponse);
|
|
997
|
+
await api.getCommits('ws', 'repo', undefined, undefined, 1);
|
|
998
|
+
expect(mockFetch).toHaveBeenCalledWith('https://api.bitbucket.org/2.0/repositories/ws/repo/commits?pagelen=10', expect.any(Object));
|
|
999
|
+
});
|
|
1000
|
+
});
|
|
767
1001
|
});
|
|
768
1002
|
//# sourceMappingURL=bitbucket-api.test.js.map
|