@atlassian-dc-mcp/bitbucket 0.14.2 → 0.14.3
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/CHANGELOG.md +11 -0
- package/build/__tests__/bitbucket-service.test.js +40 -0
- package/build/__tests__/bitbucket-service.test.js.map +1 -1
- package/build/bitbucket-service.d.ts.map +1 -1
- package/build/bitbucket-service.js +26 -0
- package/build/bitbucket-service.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/bitbucket-service.test.ts +74 -0
- package/src/bitbucket-service.ts +26 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -2086,4 +2086,78 @@ describe('BitbucketService', () => {
|
|
|
2086
2086
|
expect(result.error).toBe('Not Found');
|
|
2087
2087
|
});
|
|
2088
2088
|
});
|
|
2089
|
+
|
|
2090
|
+
describe('case-insensitive project keys and repository slugs', () => {
|
|
2091
|
+
it('should uppercase projectKey and lowercase repositorySlug for getPullRequests', async () => {
|
|
2092
|
+
const mockData = { values: [], size: 0, isLastPage: true };
|
|
2093
|
+
(PullRequestsService.getPage as jest.Mock).mockResolvedValue(mockData);
|
|
2094
|
+
|
|
2095
|
+
await bitbucketService.getPullRequests('test', 'Test-Repo');
|
|
2096
|
+
|
|
2097
|
+
expect(PullRequestsService.getPage).toHaveBeenCalledWith(
|
|
2098
|
+
'TEST',
|
|
2099
|
+
'test-repo',
|
|
2100
|
+
undefined, undefined, undefined, undefined, undefined,
|
|
2101
|
+
undefined, undefined, undefined, undefined, 25
|
|
2102
|
+
);
|
|
2103
|
+
});
|
|
2104
|
+
|
|
2105
|
+
it('should uppercase projectKey and lowercase repositorySlug for getPullRequest', async () => {
|
|
2106
|
+
const mockData = { id: 1, title: 'Test PR' };
|
|
2107
|
+
(PullRequestsService.get3 as jest.Mock).mockResolvedValue(mockData);
|
|
2108
|
+
|
|
2109
|
+
await bitbucketService.getPullRequest('test', 'Test-Repo', '1');
|
|
2110
|
+
|
|
2111
|
+
expect(PullRequestsService.get3).toHaveBeenCalledWith('TEST', '1', 'test-repo');
|
|
2112
|
+
});
|
|
2113
|
+
|
|
2114
|
+
it('should uppercase projectKey and lowercase repositorySlug for getPullRequestChanges', async () => {
|
|
2115
|
+
const mockData = { values: [], size: 0, isLastPage: true };
|
|
2116
|
+
(PullRequestsService.streamChanges1 as jest.Mock).mockResolvedValue(mockData);
|
|
2117
|
+
|
|
2118
|
+
await bitbucketService.getPullRequestChanges('test', 'Test-Repo', '1');
|
|
2119
|
+
|
|
2120
|
+
expect(PullRequestsService.streamChanges1).toHaveBeenCalledWith(
|
|
2121
|
+
'TEST', '1', 'test-repo',
|
|
2122
|
+
undefined, undefined, undefined, undefined, undefined, 25
|
|
2123
|
+
);
|
|
2124
|
+
});
|
|
2125
|
+
|
|
2126
|
+
it('should uppercase projectKey and lowercase repositorySlug for createPullRequest', async () => {
|
|
2127
|
+
const mockData = { id: 1, title: 'New PR' };
|
|
2128
|
+
(PullRequestsService.create as jest.Mock).mockResolvedValue(mockData);
|
|
2129
|
+
|
|
2130
|
+
await bitbucketService.createPullRequest(
|
|
2131
|
+
'test', 'Test-Repo', 'title', 'desc',
|
|
2132
|
+
'refs/heads/feature', 'refs/heads/main'
|
|
2133
|
+
);
|
|
2134
|
+
|
|
2135
|
+
expect(PullRequestsService.create).toHaveBeenCalledWith(
|
|
2136
|
+
'TEST', 'test-repo',
|
|
2137
|
+
expect.objectContaining({
|
|
2138
|
+
title: 'title',
|
|
2139
|
+
fromRef: expect.objectContaining({
|
|
2140
|
+
repository: expect.objectContaining({
|
|
2141
|
+
slug: 'test-repo',
|
|
2142
|
+
project: { key: 'TEST' }
|
|
2143
|
+
})
|
|
2144
|
+
})
|
|
2145
|
+
})
|
|
2146
|
+
);
|
|
2147
|
+
});
|
|
2148
|
+
|
|
2149
|
+
it('should uppercase projectKey and lowercase repositorySlug for getRequiredReviewers', async () => {
|
|
2150
|
+
const mockData: never[] = [];
|
|
2151
|
+
(PullRequestsService.getReviewers as jest.Mock).mockResolvedValue(mockData);
|
|
2152
|
+
|
|
2153
|
+
await bitbucketService.getRequiredReviewers(
|
|
2154
|
+
'test', 'Test-Repo', 'refs/heads/feature', 'refs/heads/main'
|
|
2155
|
+
);
|
|
2156
|
+
|
|
2157
|
+
expect(PullRequestsService.getReviewers).toHaveBeenCalledWith(
|
|
2158
|
+
'TEST', 'test-repo', undefined, undefined,
|
|
2159
|
+
'refs/heads/feature', 'refs/heads/main'
|
|
2160
|
+
);
|
|
2161
|
+
});
|
|
2162
|
+
});
|
|
2089
2163
|
});
|
package/src/bitbucket-service.ts
CHANGED
|
@@ -58,6 +58,8 @@ export class BitbucketService {
|
|
|
58
58
|
async getCommits(projectKey: string, repositorySlug: string, path?: string, since?: string, until?: string,
|
|
59
59
|
limit?: number
|
|
60
60
|
) {
|
|
61
|
+
projectKey = projectKey.toUpperCase();
|
|
62
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
61
63
|
return handleApiOperation(
|
|
62
64
|
() => RepositoryService.getCommits(
|
|
63
65
|
projectKey,
|
|
@@ -99,6 +101,7 @@ export class BitbucketService {
|
|
|
99
101
|
* @returns Promise with project data
|
|
100
102
|
*/
|
|
101
103
|
async getProject(projectKey: string) {
|
|
104
|
+
projectKey = projectKey.toUpperCase();
|
|
102
105
|
return handleApiOperation(
|
|
103
106
|
() => ProjectService.getProject(projectKey),
|
|
104
107
|
'Error fetching project'
|
|
@@ -113,6 +116,7 @@ export class BitbucketService {
|
|
|
113
116
|
* @returns Promise with repositories data
|
|
114
117
|
*/
|
|
115
118
|
async getRepositories(projectKey: string, start?: number, limit?: number) {
|
|
119
|
+
projectKey = projectKey.toUpperCase();
|
|
116
120
|
return handleApiOperation(
|
|
117
121
|
() => ProjectService.getRepositories(projectKey, start, limit ?? this.getPageSize()),
|
|
118
122
|
'Error fetching repositories'
|
|
@@ -126,6 +130,8 @@ export class BitbucketService {
|
|
|
126
130
|
* @returns Promise with repository data
|
|
127
131
|
*/
|
|
128
132
|
async getRepository(projectKey: string, repositorySlug: string) {
|
|
133
|
+
projectKey = projectKey.toUpperCase();
|
|
134
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
129
135
|
return handleApiOperation(
|
|
130
136
|
() => ProjectService.getRepository(projectKey, repositorySlug),
|
|
131
137
|
'Error fetching repository'
|
|
@@ -162,6 +168,8 @@ export class BitbucketService {
|
|
|
162
168
|
start?: number,
|
|
163
169
|
limit?: number
|
|
164
170
|
) {
|
|
171
|
+
projectKey = projectKey.toUpperCase();
|
|
172
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
165
173
|
return handleApiOperation(
|
|
166
174
|
() => PullRequestsService.getPage(
|
|
167
175
|
projectKey,
|
|
@@ -193,6 +201,8 @@ export class BitbucketService {
|
|
|
193
201
|
repositorySlug: string,
|
|
194
202
|
pullRequestId: string
|
|
195
203
|
) {
|
|
204
|
+
projectKey = projectKey.toUpperCase();
|
|
205
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
196
206
|
return handleApiOperation(
|
|
197
207
|
() => PullRequestsService.get3(projectKey, pullRequestId, repositorySlug),
|
|
198
208
|
'Error fetching pull request'
|
|
@@ -208,6 +218,8 @@ export class BitbucketService {
|
|
|
208
218
|
output: BitbucketOutputMode = 'compact',
|
|
209
219
|
includeResolved = false
|
|
210
220
|
) {
|
|
221
|
+
projectKey = projectKey.toUpperCase();
|
|
222
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
211
223
|
const result = await handleApiOperation(
|
|
212
224
|
() => PullRequestsService.getActivities(
|
|
213
225
|
projectKey,
|
|
@@ -256,6 +268,8 @@ export class BitbucketService {
|
|
|
256
268
|
limit?: number,
|
|
257
269
|
output: BitbucketOutputMode = 'compact'
|
|
258
270
|
) {
|
|
271
|
+
projectKey = projectKey.toUpperCase();
|
|
272
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
259
273
|
const result = await handleApiOperation(
|
|
260
274
|
() => PullRequestsService.streamChanges1(
|
|
261
275
|
projectKey,
|
|
@@ -308,6 +322,8 @@ export class BitbucketService {
|
|
|
308
322
|
pending?: boolean,
|
|
309
323
|
output: BitbucketMutationOutputMode = 'ack'
|
|
310
324
|
) {
|
|
325
|
+
projectKey = projectKey.toUpperCase();
|
|
326
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
311
327
|
const comment: any = {
|
|
312
328
|
text
|
|
313
329
|
};
|
|
@@ -404,6 +420,8 @@ export class BitbucketService {
|
|
|
404
420
|
status: 'APPROVED' | 'NEEDS_WORK' | 'UNAPPROVED',
|
|
405
421
|
lastReviewedCommit?: string
|
|
406
422
|
) {
|
|
423
|
+
projectKey = projectKey.toUpperCase();
|
|
424
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
407
425
|
const requestBody: any = {
|
|
408
426
|
status,
|
|
409
427
|
...(lastReviewedCommit ? { lastReviewedCommit } : {})
|
|
@@ -448,6 +466,8 @@ export class BitbucketService {
|
|
|
448
466
|
untilId?: string,
|
|
449
467
|
whitespace?: string
|
|
450
468
|
) {
|
|
469
|
+
projectKey = projectKey.toUpperCase();
|
|
470
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
451
471
|
return handleApiOperation(
|
|
452
472
|
() => __request(OpenAPI, {
|
|
453
473
|
method: 'GET',
|
|
@@ -500,6 +520,8 @@ export class BitbucketService {
|
|
|
500
520
|
reviewers?: string[],
|
|
501
521
|
output: BitbucketMutationOutputMode = 'ack'
|
|
502
522
|
) {
|
|
523
|
+
projectKey = projectKey.toUpperCase();
|
|
524
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
503
525
|
const pullRequestData: any = {
|
|
504
526
|
title,
|
|
505
527
|
description,
|
|
@@ -567,6 +589,8 @@ export class BitbucketService {
|
|
|
567
589
|
reviewers?: string[],
|
|
568
590
|
output: BitbucketMutationOutputMode = 'ack'
|
|
569
591
|
) {
|
|
592
|
+
projectKey = projectKey.toUpperCase();
|
|
593
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
570
594
|
const pullRequestData: any = {
|
|
571
595
|
version
|
|
572
596
|
};
|
|
@@ -622,6 +646,8 @@ export class BitbucketService {
|
|
|
622
646
|
sourceRepoId?: string,
|
|
623
647
|
targetRepoId?: string
|
|
624
648
|
) {
|
|
649
|
+
projectKey = projectKey.toUpperCase();
|
|
650
|
+
repositorySlug = repositorySlug.toLowerCase();
|
|
625
651
|
return handleApiOperation(
|
|
626
652
|
() => PullRequestsService.getReviewers(
|
|
627
653
|
projectKey,
|