@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.
Files changed (37) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/build/__tests__/bitbucket-service.test.d.ts +2 -0
  3. package/build/__tests__/bitbucket-service.test.d.ts.map +1 -0
  4. package/build/__tests__/bitbucket-service.test.js +269 -0
  5. package/build/__tests__/bitbucket-service.test.js.map +1 -0
  6. package/build/__tests__/pr-changes-mapper.test.d.ts +2 -0
  7. package/build/__tests__/pr-changes-mapper.test.d.ts.map +1 -0
  8. package/build/__tests__/pr-changes-mapper.test.js +396 -0
  9. package/build/__tests__/pr-changes-mapper.test.js.map +1 -0
  10. package/build/__tests__/pr-comment-mapper.test.d.ts +2 -0
  11. package/build/__tests__/pr-comment-mapper.test.d.ts.map +1 -0
  12. package/build/__tests__/pr-comment-mapper.test.js +210 -0
  13. package/build/__tests__/pr-comment-mapper.test.js.map +1 -0
  14. package/build/bitbucket-service.d.ts +84 -1
  15. package/build/bitbucket-service.d.ts.map +1 -1
  16. package/build/bitbucket-service.js +148 -1
  17. package/build/bitbucket-service.js.map +1 -1
  18. package/build/index.js +13 -1
  19. package/build/index.js.map +1 -1
  20. package/build/pr-changes-mapper.d.ts +32 -0
  21. package/build/pr-changes-mapper.d.ts.map +1 -0
  22. package/build/pr-changes-mapper.js +111 -0
  23. package/build/pr-changes-mapper.js.map +1 -0
  24. package/build/pr-comment-mapper.d.ts +48 -0
  25. package/build/pr-comment-mapper.d.ts.map +1 -0
  26. package/build/pr-comment-mapper.js +128 -0
  27. package/build/pr-comment-mapper.js.map +1 -0
  28. package/jest.config.js +23 -0
  29. package/package.json +5 -3
  30. package/src/__tests__/bitbucket-service.test.ts +419 -0
  31. package/src/__tests__/pr-changes-mapper.test.ts +420 -0
  32. package/src/__tests__/pr-comment-mapper.test.ts +230 -0
  33. package/src/bitbucket-service.ts +215 -2
  34. package/src/index.ts +33 -2
  35. package/src/pr-changes-mapper.ts +216 -0
  36. package/src/pr-comment-mapper.ts +318 -0
  37. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bitbucket-service.test.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pr-changes-mapper.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-changes-mapper.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/pr-changes-mapper.test.ts"],"names":[],"mappings":""}