@atlassian-dc-mcp/bitbucket 0.6.0 → 0.7.0
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 +29 -0
- package/build/__tests__/bitbucket-service.test.d.ts +2 -0
- package/build/__tests__/bitbucket-service.test.d.ts.map +1 -0
- package/build/__tests__/bitbucket-service.test.js +269 -0
- package/build/__tests__/bitbucket-service.test.js.map +1 -0
- package/build/__tests__/pr-changes-mapper.test.d.ts +2 -0
- package/build/__tests__/pr-changes-mapper.test.d.ts.map +1 -0
- package/build/__tests__/pr-changes-mapper.test.js +396 -0
- package/build/__tests__/pr-changes-mapper.test.js.map +1 -0
- package/build/__tests__/pr-comment-mapper.test.d.ts +2 -0
- package/build/__tests__/pr-comment-mapper.test.d.ts.map +1 -0
- package/build/__tests__/pr-comment-mapper.test.js +210 -0
- package/build/__tests__/pr-comment-mapper.test.js.map +1 -0
- package/build/bitbucket-service.d.ts +84 -1
- package/build/bitbucket-service.d.ts.map +1 -1
- package/build/bitbucket-service.js +148 -1
- package/build/bitbucket-service.js.map +1 -1
- package/build/index.js +13 -1
- package/build/index.js.map +1 -1
- package/build/pr-changes-mapper.d.ts +32 -0
- package/build/pr-changes-mapper.d.ts.map +1 -0
- package/build/pr-changes-mapper.js +111 -0
- package/build/pr-changes-mapper.js.map +1 -0
- package/build/pr-comment-mapper.d.ts +48 -0
- package/build/pr-comment-mapper.d.ts.map +1 -0
- package/build/pr-comment-mapper.js +128 -0
- package/build/pr-comment-mapper.js.map +1 -0
- package/jest.config.js +23 -0
- package/package.json +5 -3
- package/src/__tests__/bitbucket-service.test.ts +419 -0
- package/src/__tests__/pr-changes-mapper.test.ts +420 -0
- package/src/__tests__/pr-comment-mapper.test.ts +230 -0
- package/src/bitbucket-service.ts +215 -2
- package/src/index.ts +33 -2
- package/src/pr-changes-mapper.ts +216 -0
- package/src/pr-comment-mapper.ts +318 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,35 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.7.0](https://github.com/b1ff/atlassian-dc-mcp/compare/v0.6.0...v0.7.0) (2025-08-03)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* update bitbucket tool name given that anthropic API does not accept long name generated by claude code. ([c670e7b](https://github.com/b1ff/atlassian-dc-mcp/commit/c670e7ba8e4c509cb486f72fedf012509e9234d2))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* **bitbucket:** add support for fetching pull request diffs based on the specified path ([29150f3](https://github.com/b1ff/atlassian-dc-mcp/commit/29150f32f37966e47bda3d4e322fef4923bf7df3))
|
|
17
|
+
* **bitbucket:** add support for PR changes and comments posting ([3b1f95b](https://github.com/b1ff/atlassian-dc-mcp/commit/3b1f95bcc3731cc787ffb76cfce710e980e1cb58))
|
|
18
|
+
* **bitbucket:** reduce size of PR comments ([125d990](https://github.com/b1ff/atlassian-dc-mcp/commit/125d9907eb1b7b81256e66b86b602ccc472e1200))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## [0.6.1](https://github.com/b1ff/atlassian-dc-mcp/compare/v0.6.0...v0.6.1) (2025-05-26)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* update bitbucket tool name given that anthropic API does not accept long name generated by claude code. ([c670e7b](https://github.com/b1ff/atlassian-dc-mcp/commit/c670e7ba8e4c509cb486f72fedf012509e9234d2))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
6
35
|
# [0.6.0](https://github.com/b1ff/atlassian-dc-mcp/compare/v0.5.0...v0.6.0) (2025-05-26)
|
|
7
36
|
|
|
8
37
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitbucket-service.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/bitbucket-service.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { BitbucketService } from '../bitbucket-service.js';
|
|
2
|
+
import { PullRequestsService } from '../bitbucket-client/index.js';
|
|
3
|
+
// Mock the request function
|
|
4
|
+
jest.mock('../bitbucket-client/core/request.js', () => ({
|
|
5
|
+
request: jest.fn()
|
|
6
|
+
}));
|
|
7
|
+
// Mock the PullRequestsService
|
|
8
|
+
jest.mock('../bitbucket-client/index.js', () => ({
|
|
9
|
+
PullRequestsService: {
|
|
10
|
+
streamRawDiff2: jest.fn(),
|
|
11
|
+
createComment2: jest.fn(),
|
|
12
|
+
streamChanges1: jest.fn()
|
|
13
|
+
},
|
|
14
|
+
OpenAPI: {
|
|
15
|
+
BASE: '',
|
|
16
|
+
TOKEN: '',
|
|
17
|
+
VERSION: ''
|
|
18
|
+
}
|
|
19
|
+
}));
|
|
20
|
+
describe('BitbucketService', () => {
|
|
21
|
+
let bitbucketService;
|
|
22
|
+
const mockProjectKey = 'TEST';
|
|
23
|
+
const mockRepositorySlug = 'test-repo';
|
|
24
|
+
const mockPullRequestId = '123';
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
bitbucketService = new BitbucketService('test-host', 'test-token');
|
|
27
|
+
jest.clearAllMocks();
|
|
28
|
+
});
|
|
29
|
+
describe('getPullRequestChanges', () => {
|
|
30
|
+
it('should successfully get PR changes', async () => {
|
|
31
|
+
const mockChangesData = {
|
|
32
|
+
values: [
|
|
33
|
+
{ path: { toString: 'file.txt' }, type: 'MODIFY' }
|
|
34
|
+
],
|
|
35
|
+
size: 1,
|
|
36
|
+
isLastPage: true
|
|
37
|
+
};
|
|
38
|
+
PullRequestsService.streamChanges1.mockResolvedValue(mockChangesData);
|
|
39
|
+
const result = await bitbucketService.getPullRequestChanges(mockProjectKey, mockRepositorySlug, mockPullRequestId);
|
|
40
|
+
expect(result.success).toBe(true);
|
|
41
|
+
expect(result.data).toBe(mockChangesData);
|
|
42
|
+
expect(PullRequestsService.streamChanges1).toHaveBeenCalledWith(mockProjectKey, mockPullRequestId, mockRepositorySlug, undefined, undefined, undefined, undefined, undefined, 25);
|
|
43
|
+
});
|
|
44
|
+
it('should successfully get PR changes with all parameters', async () => {
|
|
45
|
+
const mockChangesData = {
|
|
46
|
+
values: [
|
|
47
|
+
{ path: { toString: 'file.txt' }, type: 'MODIFY' }
|
|
48
|
+
],
|
|
49
|
+
size: 1,
|
|
50
|
+
isLastPage: true
|
|
51
|
+
};
|
|
52
|
+
PullRequestsService.streamChanges1.mockResolvedValue(mockChangesData);
|
|
53
|
+
const result = await bitbucketService.getPullRequestChanges(mockProjectKey, mockRepositorySlug, mockPullRequestId, 'abc123', 'RANGE', 'def456', 'true', 0, 50);
|
|
54
|
+
expect(result.success).toBe(true);
|
|
55
|
+
expect(result.data).toBe(mockChangesData);
|
|
56
|
+
expect(PullRequestsService.streamChanges1).toHaveBeenCalledWith(mockProjectKey, mockPullRequestId, mockRepositorySlug, 'abc123', 'RANGE', 'def456', 'true', 0, 50);
|
|
57
|
+
});
|
|
58
|
+
it('should handle API errors gracefully', async () => {
|
|
59
|
+
const mockError = new Error('API Error');
|
|
60
|
+
PullRequestsService.streamChanges1.mockRejectedValue(mockError);
|
|
61
|
+
const result = await bitbucketService.getPullRequestChanges(mockProjectKey, mockRepositorySlug, mockPullRequestId);
|
|
62
|
+
expect(result.success).toBe(false);
|
|
63
|
+
expect(result.error).toBe('API Error');
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('postPullRequestComment', () => {
|
|
67
|
+
it('should successfully post a general PR comment', async () => {
|
|
68
|
+
const mockComment = {
|
|
69
|
+
id: 12345,
|
|
70
|
+
text: 'Test comment',
|
|
71
|
+
author: { displayName: 'Test User' }
|
|
72
|
+
};
|
|
73
|
+
PullRequestsService.createComment2.mockResolvedValue(mockComment);
|
|
74
|
+
const result = await bitbucketService.postPullRequestComment(mockProjectKey, mockRepositorySlug, mockPullRequestId, 'Test comment');
|
|
75
|
+
expect(result.success).toBe(true);
|
|
76
|
+
expect(result.data).toBe(mockComment);
|
|
77
|
+
expect(PullRequestsService.createComment2).toHaveBeenCalledWith(mockProjectKey, mockPullRequestId, mockRepositorySlug, { text: 'Test comment' });
|
|
78
|
+
});
|
|
79
|
+
it('should successfully post a reply comment', async () => {
|
|
80
|
+
const mockComment = {
|
|
81
|
+
id: 12346,
|
|
82
|
+
text: 'Reply comment',
|
|
83
|
+
author: { displayName: 'Test User' }
|
|
84
|
+
};
|
|
85
|
+
PullRequestsService.createComment2.mockResolvedValue(mockComment);
|
|
86
|
+
const result = await bitbucketService.postPullRequestComment(mockProjectKey, mockRepositorySlug, mockPullRequestId, 'Reply comment', 123 // parentId
|
|
87
|
+
);
|
|
88
|
+
expect(result.success).toBe(true);
|
|
89
|
+
expect(result.data).toBe(mockComment);
|
|
90
|
+
expect(PullRequestsService.createComment2).toHaveBeenCalledWith(mockProjectKey, mockPullRequestId, mockRepositorySlug, {
|
|
91
|
+
text: 'Reply comment',
|
|
92
|
+
parent: { id: 123 }
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
it('should successfully post a file comment', async () => {
|
|
96
|
+
const mockComment = {
|
|
97
|
+
id: 12347,
|
|
98
|
+
text: 'File comment',
|
|
99
|
+
author: { displayName: 'Test User' }
|
|
100
|
+
};
|
|
101
|
+
PullRequestsService.createComment2.mockResolvedValue(mockComment);
|
|
102
|
+
const result = await bitbucketService.postPullRequestComment(mockProjectKey, mockRepositorySlug, mockPullRequestId, 'File comment', undefined, // parentId
|
|
103
|
+
'src/test.js' // filePath
|
|
104
|
+
);
|
|
105
|
+
expect(result.success).toBe(true);
|
|
106
|
+
expect(result.data).toBe(mockComment);
|
|
107
|
+
expect(PullRequestsService.createComment2).toHaveBeenCalledWith(mockProjectKey, mockPullRequestId, mockRepositorySlug, {
|
|
108
|
+
text: 'File comment',
|
|
109
|
+
anchor: {
|
|
110
|
+
path: 'src/test.js',
|
|
111
|
+
diffType: 'EFFECTIVE'
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
it('should successfully post a line comment', async () => {
|
|
116
|
+
const mockComment = {
|
|
117
|
+
id: 12348,
|
|
118
|
+
text: 'Line comment',
|
|
119
|
+
author: { displayName: 'Test User' }
|
|
120
|
+
};
|
|
121
|
+
PullRequestsService.createComment2.mockResolvedValue(mockComment);
|
|
122
|
+
const result = await bitbucketService.postPullRequestComment(mockProjectKey, mockRepositorySlug, mockPullRequestId, 'Line comment', undefined, // parentId
|
|
123
|
+
'src/test.js', // filePath
|
|
124
|
+
42, // line
|
|
125
|
+
'ADDED' // lineType
|
|
126
|
+
);
|
|
127
|
+
expect(result.success).toBe(true);
|
|
128
|
+
expect(result.data).toBe(mockComment);
|
|
129
|
+
expect(PullRequestsService.createComment2).toHaveBeenCalledWith(mockProjectKey, mockPullRequestId, mockRepositorySlug, {
|
|
130
|
+
text: 'Line comment',
|
|
131
|
+
anchor: {
|
|
132
|
+
path: 'src/test.js',
|
|
133
|
+
diffType: 'EFFECTIVE',
|
|
134
|
+
line: 42,
|
|
135
|
+
lineType: 'ADDED',
|
|
136
|
+
fileType: 'TO'
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
it('should handle API errors gracefully', async () => {
|
|
141
|
+
const mockError = new Error('API Error');
|
|
142
|
+
PullRequestsService.createComment2.mockRejectedValue(mockError);
|
|
143
|
+
const result = await bitbucketService.postPullRequestComment(mockProjectKey, mockRepositorySlug, mockPullRequestId, 'Test comment');
|
|
144
|
+
expect(result.success).toBe(false);
|
|
145
|
+
expect(result.error).toBe('API Error');
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
describe('getPullRequestDiff', () => {
|
|
149
|
+
const { request: mockRequest } = require('../bitbucket-client/core/request.js');
|
|
150
|
+
it('should successfully get raw diff with minimal parameters', async () => {
|
|
151
|
+
const mockRawDiff = 'diff --git a/file.txt b/file.txt\nindex 1234567..abcdefg 100644\n--- a/file.txt\n+++ b/file.txt\n@@ -1,3 +1,4 @@\n line1\n line2\n+new line\n line3';
|
|
152
|
+
mockRequest.mockResolvedValue(mockRawDiff);
|
|
153
|
+
const result = await bitbucketService.getPullRequestDiff(mockProjectKey, mockRepositorySlug, mockPullRequestId, 'src/file.txt');
|
|
154
|
+
expect(result.success).toBe(true);
|
|
155
|
+
expect(result.data).toBe(mockRawDiff);
|
|
156
|
+
expect(mockRequest).toHaveBeenCalledWith(expect.any(Object), // OpenAPI config
|
|
157
|
+
{
|
|
158
|
+
method: 'GET',
|
|
159
|
+
url: '/api/latest/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/diff/{path}',
|
|
160
|
+
path: {
|
|
161
|
+
'path': 'src/file.txt',
|
|
162
|
+
'projectKey': mockProjectKey,
|
|
163
|
+
'pullRequestId': mockPullRequestId,
|
|
164
|
+
'repositorySlug': mockRepositorySlug,
|
|
165
|
+
},
|
|
166
|
+
query: {
|
|
167
|
+
'contextLines': undefined,
|
|
168
|
+
'sinceId': undefined,
|
|
169
|
+
'srcPath': undefined,
|
|
170
|
+
'diffType': undefined,
|
|
171
|
+
'untilId': undefined,
|
|
172
|
+
'whitespace': undefined,
|
|
173
|
+
},
|
|
174
|
+
headers: {
|
|
175
|
+
'Accept': 'text/plain'
|
|
176
|
+
},
|
|
177
|
+
errors: {
|
|
178
|
+
400: `If the request was malformed.`,
|
|
179
|
+
401: `The currently authenticated user has insufficient permissions to view the repository or pull request.`,
|
|
180
|
+
404: `The repository or pull request does not exist.`,
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
it('should successfully get raw diff with all parameters', async () => {
|
|
185
|
+
const mockRawDiff = 'diff --git a/old/file.txt b/new/file.txt\nindex 1234567..abcdefg 100644\n--- a/old/file.txt\n+++ b/new/file.txt\n@@ -1,5 +1,6 @@\n line1\n line2\n+new line\n line3\n line4\n line5';
|
|
186
|
+
mockRequest.mockResolvedValue(mockRawDiff);
|
|
187
|
+
const result = await bitbucketService.getPullRequestDiff(mockProjectKey, mockRepositorySlug, mockPullRequestId, 'src/file.txt', '5', // contextLines
|
|
188
|
+
'abc123', // sinceId
|
|
189
|
+
'old/file.txt', // srcPath
|
|
190
|
+
'EFFECTIVE', // diffType
|
|
191
|
+
'def456', // untilId
|
|
192
|
+
'ignore-all' // whitespace
|
|
193
|
+
);
|
|
194
|
+
expect(result.success).toBe(true);
|
|
195
|
+
expect(result.data).toBe(mockRawDiff);
|
|
196
|
+
expect(mockRequest).toHaveBeenCalledWith(expect.any(Object), // OpenAPI config
|
|
197
|
+
{
|
|
198
|
+
method: 'GET',
|
|
199
|
+
url: '/api/latest/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/diff/{path}',
|
|
200
|
+
path: {
|
|
201
|
+
'path': 'src/file.txt',
|
|
202
|
+
'projectKey': mockProjectKey,
|
|
203
|
+
'pullRequestId': mockPullRequestId,
|
|
204
|
+
'repositorySlug': mockRepositorySlug,
|
|
205
|
+
},
|
|
206
|
+
query: {
|
|
207
|
+
'contextLines': '5',
|
|
208
|
+
'sinceId': 'abc123',
|
|
209
|
+
'srcPath': 'old/file.txt',
|
|
210
|
+
'diffType': 'EFFECTIVE',
|
|
211
|
+
'untilId': 'def456',
|
|
212
|
+
'whitespace': 'ignore-all',
|
|
213
|
+
},
|
|
214
|
+
headers: {
|
|
215
|
+
'Accept': 'text/plain'
|
|
216
|
+
},
|
|
217
|
+
errors: {
|
|
218
|
+
400: `If the request was malformed.`,
|
|
219
|
+
401: `The currently authenticated user has insufficient permissions to view the repository or pull request.`,
|
|
220
|
+
404: `The repository or pull request does not exist.`,
|
|
221
|
+
},
|
|
222
|
+
});
|
|
223
|
+
});
|
|
224
|
+
it('should handle API errors gracefully', async () => {
|
|
225
|
+
const mockError = new Error('API Error');
|
|
226
|
+
mockRequest.mockRejectedValue(mockError);
|
|
227
|
+
const result = await bitbucketService.getPullRequestDiff(mockProjectKey, mockRepositorySlug, mockPullRequestId, 'src/file.txt');
|
|
228
|
+
expect(result.success).toBe(false);
|
|
229
|
+
expect(result.error).toBe('API Error');
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
describe('validateConfig', () => {
|
|
233
|
+
const originalEnv = process.env;
|
|
234
|
+
beforeEach(() => {
|
|
235
|
+
jest.resetModules();
|
|
236
|
+
process.env = { ...originalEnv };
|
|
237
|
+
});
|
|
238
|
+
afterAll(() => {
|
|
239
|
+
process.env = originalEnv;
|
|
240
|
+
});
|
|
241
|
+
it('should return empty array when all required env vars are present', () => {
|
|
242
|
+
process.env.BITBUCKET_API_TOKEN = 'test-token';
|
|
243
|
+
process.env.BITBUCKET_HOST = 'test-host';
|
|
244
|
+
const missingVars = BitbucketService.validateConfig();
|
|
245
|
+
expect(missingVars).toEqual([]);
|
|
246
|
+
});
|
|
247
|
+
it('should return missing vars when BITBUCKET_API_TOKEN is missing', () => {
|
|
248
|
+
delete process.env.BITBUCKET_API_TOKEN;
|
|
249
|
+
process.env.BITBUCKET_HOST = 'test-host';
|
|
250
|
+
const missingVars = BitbucketService.validateConfig();
|
|
251
|
+
expect(missingVars).toContain('BITBUCKET_API_TOKEN');
|
|
252
|
+
});
|
|
253
|
+
it('should return missing vars when both host options are missing', () => {
|
|
254
|
+
process.env.BITBUCKET_API_TOKEN = 'test-token';
|
|
255
|
+
delete process.env.BITBUCKET_HOST;
|
|
256
|
+
delete process.env.BITBUCKET_API_BASE_PATH;
|
|
257
|
+
const missingVars = BitbucketService.validateConfig();
|
|
258
|
+
expect(missingVars).toContain('BITBUCKET_HOST or BITBUCKET_API_BASE_PATH');
|
|
259
|
+
});
|
|
260
|
+
it('should accept BITBUCKET_API_BASE_PATH as alternative to BITBUCKET_HOST', () => {
|
|
261
|
+
process.env.BITBUCKET_API_TOKEN = 'test-token';
|
|
262
|
+
delete process.env.BITBUCKET_HOST;
|
|
263
|
+
process.env.BITBUCKET_API_BASE_PATH = 'https://test-host/rest';
|
|
264
|
+
const missingVars = BitbucketService.validateConfig();
|
|
265
|
+
expect(missingVars).toEqual([]);
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
//# sourceMappingURL=bitbucket-service.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitbucket-service.test.js","sourceRoot":"","sources":["../../src/__tests__/bitbucket-service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr-changes-mapper.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/pr-changes-mapper.test.ts"],"names":[],"mappings":""}
|