@atlassian-dc-mcp/bitbucket 0.10.2 → 0.11.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlassian-dc-mcp/bitbucket",
3
- "version": "0.10.2",
3
+ "version": "0.11.0",
4
4
  "main": "build/index.js",
5
5
  "type": "module",
6
6
  "bin": "./bin/run.js",
@@ -14,7 +14,7 @@
14
14
  "test": "jest"
15
15
  },
16
16
  "dependencies": {
17
- "@atlassian-dc-mcp/common": "^0.10.2",
17
+ "@atlassian-dc-mcp/common": "^0.11.0",
18
18
  "@modelcontextprotocol/sdk": "^1.27.1",
19
19
  "dotenv": "^16.4.7",
20
20
  "node-fetch": "^3.3.2",
@@ -32,5 +32,5 @@
32
32
  "publishConfig": {
33
33
  "access": "public"
34
34
  },
35
- "gitHead": "65283173365580fd430bdd0fd9b82f3870e00bf9"
35
+ "gitHead": "d4c36b43da61b3395c89def4350ea99ea129d8b4"
36
36
  }
@@ -1,5 +1,6 @@
1
1
  import { BitbucketService } from '../bitbucket-service.js';
2
2
  import { PullRequestsService } from '../bitbucket-client/index.js';
3
+ import { request as mockRequest } from '../bitbucket-client/core/request.js';
3
4
 
4
5
  // Mock the request function
5
6
  jest.mock('../bitbucket-client/core/request.js', () => ({
@@ -14,6 +15,7 @@ jest.mock('../bitbucket-client/index.js', () => ({
14
15
  streamChanges1: jest.fn(),
15
16
  create: jest.fn(),
16
17
  update: jest.fn(),
18
+ updateStatus: jest.fn(),
17
19
  getPage: jest.fn(),
18
20
  getReviewers: jest.fn(),
19
21
  get3: jest.fn()
@@ -1649,4 +1651,222 @@ describe('BitbucketService', () => {
1649
1651
  expect(missingVars).toEqual([]);
1650
1652
  });
1651
1653
  });
1654
+
1655
+ describe('postPullRequestComment - pending flag', () => {
1656
+ it('should include state: PENDING in the request body when pending is true', async () => {
1657
+ const mockComment = { id: 99, text: 'Draft comment', author: { displayName: 'Test User' } };
1658
+ (PullRequestsService.createComment2 as jest.Mock).mockResolvedValue(mockComment);
1659
+
1660
+ const result = await bitbucketService.postPullRequestComment(
1661
+ mockProjectKey,
1662
+ mockRepositorySlug,
1663
+ mockPullRequestId,
1664
+ 'Draft comment',
1665
+ undefined, // parentId
1666
+ undefined, // filePath
1667
+ undefined, // line
1668
+ undefined, // lineType
1669
+ true // pending
1670
+ );
1671
+
1672
+ expect(result.success).toBe(true);
1673
+ expect(PullRequestsService.createComment2).toHaveBeenCalledWith(
1674
+ mockProjectKey,
1675
+ mockPullRequestId,
1676
+ mockRepositorySlug,
1677
+ { text: 'Draft comment', state: 'PENDING' }
1678
+ );
1679
+ });
1680
+
1681
+ it('should NOT include pending in the request body when pending is false or omitted', async () => {
1682
+ const mockComment = { id: 100, text: 'Normal comment', author: { displayName: 'Test User' } };
1683
+ (PullRequestsService.createComment2 as jest.Mock).mockResolvedValue(mockComment);
1684
+
1685
+ await bitbucketService.postPullRequestComment(
1686
+ mockProjectKey,
1687
+ mockRepositorySlug,
1688
+ mockPullRequestId,
1689
+ 'Normal comment'
1690
+ );
1691
+
1692
+ expect(PullRequestsService.createComment2).toHaveBeenCalledWith(
1693
+ mockProjectKey,
1694
+ mockPullRequestId,
1695
+ mockRepositorySlug,
1696
+ { text: 'Normal comment' } // no pending field
1697
+ );
1698
+ });
1699
+
1700
+ it('should support state: PENDING combined with a file anchor', async () => {
1701
+ const mockComment = { id: 101, text: 'Pending file comment', author: { displayName: 'Test User' } };
1702
+ (PullRequestsService.createComment2 as jest.Mock).mockResolvedValue(mockComment);
1703
+
1704
+ await bitbucketService.postPullRequestComment(
1705
+ mockProjectKey,
1706
+ mockRepositorySlug,
1707
+ mockPullRequestId,
1708
+ 'Pending file comment',
1709
+ undefined, // parentId
1710
+ 'src/index.ts', // filePath
1711
+ 10, // line
1712
+ 'ADDED', // lineType
1713
+ true // pending
1714
+ );
1715
+
1716
+ expect(PullRequestsService.createComment2).toHaveBeenCalledWith(
1717
+ mockProjectKey,
1718
+ mockPullRequestId,
1719
+ mockRepositorySlug,
1720
+ {
1721
+ text: 'Pending file comment',
1722
+ state: 'PENDING',
1723
+ anchor: {
1724
+ path: 'src/index.ts',
1725
+ diffType: 'EFFECTIVE',
1726
+ line: 10,
1727
+ lineType: 'ADDED',
1728
+ fileType: 'TO'
1729
+ }
1730
+ }
1731
+ );
1732
+ });
1733
+ });
1734
+
1735
+ describe('submitPullRequestReview', () => {
1736
+ const mockUserSlug = 'test-user';
1737
+
1738
+ it('should submit a NEEDS_WORK review and call updateStatus with correct args', async () => {
1739
+ const mockParticipant = {
1740
+ user: { name: mockUserSlug },
1741
+ role: 'REVIEWER',
1742
+ status: 'NEEDS_WORK'
1743
+ };
1744
+ (PullRequestsService.updateStatus as jest.Mock).mockResolvedValue(mockParticipant);
1745
+
1746
+ const result = await bitbucketService.submitPullRequestReview(
1747
+ mockProjectKey,
1748
+ mockRepositorySlug,
1749
+ mockPullRequestId,
1750
+ mockUserSlug,
1751
+ 'NEEDS_WORK'
1752
+ );
1753
+
1754
+ expect(result.success).toBe(true);
1755
+ expect(result.data).toBe(mockParticipant);
1756
+ expect(PullRequestsService.updateStatus).toHaveBeenCalledWith(
1757
+ mockProjectKey,
1758
+ mockUserSlug,
1759
+ mockPullRequestId,
1760
+ mockRepositorySlug,
1761
+ { status: 'NEEDS_WORK' }
1762
+ );
1763
+ });
1764
+
1765
+ it('should submit an APPROVED review', async () => {
1766
+ const mockParticipant = { user: { name: mockUserSlug }, status: 'APPROVED' };
1767
+ (PullRequestsService.updateStatus as jest.Mock).mockResolvedValue(mockParticipant);
1768
+
1769
+ const result = await bitbucketService.submitPullRequestReview(
1770
+ mockProjectKey,
1771
+ mockRepositorySlug,
1772
+ mockPullRequestId,
1773
+ mockUserSlug,
1774
+ 'APPROVED'
1775
+ );
1776
+
1777
+ expect(result.success).toBe(true);
1778
+ expect(PullRequestsService.updateStatus).toHaveBeenCalledWith(
1779
+ mockProjectKey,
1780
+ mockUserSlug,
1781
+ mockPullRequestId,
1782
+ mockRepositorySlug,
1783
+ { status: 'APPROVED' }
1784
+ );
1785
+ });
1786
+
1787
+ it('should include lastReviewedCommit when provided', async () => {
1788
+ const mockParticipant = { user: { name: mockUserSlug }, status: 'NEEDS_WORK' };
1789
+ (PullRequestsService.updateStatus as jest.Mock).mockResolvedValue(mockParticipant);
1790
+
1791
+ await bitbucketService.submitPullRequestReview(
1792
+ mockProjectKey,
1793
+ mockRepositorySlug,
1794
+ mockPullRequestId,
1795
+ mockUserSlug,
1796
+ 'NEEDS_WORK',
1797
+ 'abc123def456'
1798
+ );
1799
+
1800
+ expect(PullRequestsService.updateStatus).toHaveBeenCalledWith(
1801
+ mockProjectKey,
1802
+ mockUserSlug,
1803
+ mockPullRequestId,
1804
+ mockRepositorySlug,
1805
+ { status: 'NEEDS_WORK', lastReviewedCommit: 'abc123def456' }
1806
+ );
1807
+ });
1808
+
1809
+ it('should handle API errors gracefully', async () => {
1810
+ const mockError = new Error('Forbidden');
1811
+ (PullRequestsService.updateStatus as jest.Mock).mockRejectedValue(mockError);
1812
+
1813
+ const result = await bitbucketService.submitPullRequestReview(
1814
+ mockProjectKey,
1815
+ mockRepositorySlug,
1816
+ mockPullRequestId,
1817
+ mockUserSlug,
1818
+ 'APPROVED'
1819
+ );
1820
+
1821
+ expect(result.success).toBe(false);
1822
+ expect(result.error).toBe('Forbidden');
1823
+ });
1824
+ });
1825
+
1826
+ describe('getUser', () => {
1827
+ it('should fetch a user by exact slug', async () => {
1828
+ const mockUser = { slug: 'jsmith', displayName: 'John Smith', emailAddress: 'jsmith@example.com' };
1829
+ (mockRequest as jest.Mock).mockResolvedValue(mockUser);
1830
+
1831
+ const result = await bitbucketService.getUser('jsmith', undefined);
1832
+
1833
+ expect(result.success).toBe(true);
1834
+ expect(result.data).toEqual(mockUser);
1835
+ expect(mockRequest).toHaveBeenCalledWith(
1836
+ expect.anything(),
1837
+ expect.objectContaining({
1838
+ method: 'GET',
1839
+ url: '/api/latest/users/{userSlug}',
1840
+ path: { userSlug: 'jsmith' }
1841
+ })
1842
+ );
1843
+ });
1844
+
1845
+ it('should search for users by filter string', async () => {
1846
+ const mockUsers = { values: [{ slug: 'jsmith', displayName: 'John Smith' }], size: 1, isLastPage: true };
1847
+ (mockRequest as jest.Mock).mockResolvedValue(mockUsers);
1848
+
1849
+ const result = await bitbucketService.getUser(undefined, 'John');
1850
+
1851
+ expect(result.success).toBe(true);
1852
+ expect(result.data).toEqual(mockUsers);
1853
+ expect(mockRequest).toHaveBeenCalledWith(
1854
+ expect.anything(),
1855
+ expect.objectContaining({
1856
+ method: 'GET',
1857
+ url: '/api/latest/users',
1858
+ query: { filter: 'John' }
1859
+ })
1860
+ );
1861
+ });
1862
+
1863
+ it('should handle API errors gracefully', async () => {
1864
+ (mockRequest as jest.Mock).mockRejectedValue(new Error('Not Found'));
1865
+
1866
+ const result = await bitbucketService.getUser('nonexistent', undefined);
1867
+
1868
+ expect(result.success).toBe(false);
1869
+ expect(result.error).toBe('Not Found');
1870
+ });
1871
+ });
1652
1872
  });
@@ -256,6 +256,9 @@ export class BitbucketService {
256
256
  * @param filePath Optional file path for file-specific comments
257
257
  * @param line Optional line number for line-specific comments
258
258
  * @param lineType Optional line type ('ADDED', 'REMOVED', 'CONTEXT') for line comments
259
+ * @param pending Optional flag to create a pending (draft) comment, not visible to others until a review is submitted.
260
+ * Only works when filePath is provided (file-level or inline comments).
261
+ * Top-level PR comments (no filePath) are always posted live regardless of this flag.
259
262
  * @returns Promise with created comment data
260
263
  */
261
264
  async postPullRequestComment(
@@ -266,12 +269,19 @@ export class BitbucketService {
266
269
  parentId?: number,
267
270
  filePath?: string,
268
271
  line?: number,
269
- lineType?: 'ADDED' | 'REMOVED' | 'CONTEXT'
272
+ lineType?: 'ADDED' | 'REMOVED' | 'CONTEXT',
273
+ pending?: boolean
270
274
  ) {
271
275
  const comment: any = {
272
276
  text
273
277
  };
274
278
 
279
+ // Mark comment as pending (draft) — not visible to others until review is submitted
280
+ // Note: Bitbucket DC uses state:'PENDING' not pending:true
281
+ if (pending) {
282
+ comment.state = 'PENDING';
283
+ }
284
+
275
285
  // Add parent reference for replies
276
286
  if (parentId) {
277
287
  comment.parent = { id: parentId };
@@ -303,6 +313,69 @@ export class BitbucketService {
303
313
  );
304
314
  }
305
315
 
316
+ /**
317
+ * Get a user by slug, or search for users by name/email filter
318
+ * @param userSlug Optional exact slug to look up a specific user
319
+ * @param filter Optional search string to find users by name or email
320
+ * @returns Promise with user data
321
+ */
322
+ async getUser(userSlug?: string, filter?: string) {
323
+ if (userSlug) {
324
+ return handleApiOperation(
325
+ () => __request(OpenAPI, {
326
+ method: 'GET',
327
+ url: '/api/latest/users/{userSlug}',
328
+ path: { userSlug },
329
+ }),
330
+ 'Error fetching user'
331
+ );
332
+ }
333
+ return handleApiOperation(
334
+ () => __request(OpenAPI, {
335
+ method: 'GET',
336
+ url: '/api/latest/users',
337
+ query: { filter },
338
+ }),
339
+ 'Error fetching users'
340
+ );
341
+ }
342
+
343
+ /**
344
+ * Submit a pull request review, publishing all pending (draft) comments and updating the reviewer's status.
345
+ * This is the equivalent of clicking "Submit Review" in the Bitbucket UI.
346
+ * @param projectKey The project key
347
+ * @param repositorySlug The repository slug
348
+ * @param pullRequestId The pull request ID
349
+ * @param userSlug The username/slug of the reviewer submitting the review (the PAT token owner).
350
+ * @param status The review verdict: 'APPROVED', 'NEEDS_WORK', or 'UNAPPROVED'
351
+ * @param lastReviewedCommit Optional last reviewed commit hash (for tracking review progress)
352
+ * @returns Promise with updated participant data
353
+ */
354
+ async submitPullRequestReview(
355
+ projectKey: string,
356
+ repositorySlug: string,
357
+ pullRequestId: string,
358
+ userSlug: string,
359
+ status: 'APPROVED' | 'NEEDS_WORK' | 'UNAPPROVED',
360
+ lastReviewedCommit?: string
361
+ ) {
362
+ const requestBody: any = {
363
+ status,
364
+ ...(lastReviewedCommit ? { lastReviewedCommit } : {})
365
+ };
366
+
367
+ return handleApiOperation(
368
+ () => PullRequestsService.updateStatus(
369
+ projectKey,
370
+ userSlug,
371
+ pullRequestId,
372
+ repositorySlug,
373
+ requestBody
374
+ ),
375
+ 'Error submitting pull request review'
376
+ );
377
+ }
378
+
306
379
 
307
380
  /**
308
381
  * Get text diff for a specific file in a pull request
@@ -615,7 +688,20 @@ export const bitbucketToolSchemas = {
615
688
  parentId: z.number().optional().describe("Parent comment ID for replies"),
616
689
  filePath: z.string().optional().describe("File path for file-specific comments"),
617
690
  line: z.number().optional().describe("Line number for line-specific comments"),
618
- lineType: z.enum(['ADDED', 'REMOVED', 'CONTEXT']).optional().describe("Line type for line comments")
691
+ lineType: z.enum(['ADDED', 'REMOVED', 'CONTEXT']).optional().describe("Line type for line comments"),
692
+ pending: z.boolean().optional().describe("If true, creates a pending (draft) comment not visible to others until the review is submitted via bitbucket_submitPullRequestReview. Only works when filePath is provided — top-level PR comments (no filePath) are always posted live.")
693
+ },
694
+ getUser: {
695
+ userSlug: z.string().optional().describe("Exact slug of the user to look up (e.g. 'tdepole'). Use this to confirm a known slug or fetch a user's details."),
696
+ filter: z.string().optional().describe("Search string to find users by name or email. Use this to discover a user's slug when it is not known.")
697
+ },
698
+ submitPullRequestReview: {
699
+ projectKey: z.string().describe("The project key"),
700
+ repositorySlug: z.string().describe("The repository slug"),
701
+ pullRequestId: z.string().describe("The pull request ID"),
702
+ userSlug: z.string().describe("The username/slug of the PAT token owner — the same user whose credentials are in BITBUCKET_API_TOKEN. Resolution order: (1) author.slug from any comment posted this session, (2) reviewers/participants array from getPullRequest, (3) bitbucket_getUser with a name/email filter."),
703
+ status: z.enum(['APPROVED', 'NEEDS_WORK', 'UNAPPROVED']).describe("The review verdict: APPROVED, NEEDS_WORK, or UNAPPROVED"),
704
+ lastReviewedCommit: z.string().optional().describe("Optional hash of the last commit reviewed, used to track review progress")
619
705
  },
620
706
  getPullRequestDiff: {
621
707
  projectKey: z.string().describe("The project key"),
package/src/index.ts CHANGED
@@ -112,12 +112,32 @@ server.tool(
112
112
  }
113
113
  );
114
114
 
115
+ server.tool(
116
+ "bitbucket_getUser",
117
+ "Get a Bitbucket user by their slug, or search for users by name/email to discover their slug. Use this to resolve userSlug for bitbucket_submitPullRequestReview when it is not already known from a comment response or PR participant list.",
118
+ bitbucketToolSchemas.getUser,
119
+ async ({ userSlug, filter }) => {
120
+ const result = await bitbucketService.getUser(userSlug, filter);
121
+ return formatToolResponse(result);
122
+ }
123
+ );
124
+
115
125
  server.tool(
116
126
  "bitbucket_postPullRequestComment",
117
- "Post a comment to a Bitbucket pull request",
127
+ "Post a comment to a Bitbucket pull request. Use pending: true to create a draft comment that is only visible to you until you call bitbucket_submitPullRequestReview. NOTE: pending only works when filePath is provided (file-level or inline comments). True top-level PR comments (no filePath) are always posted live and cannot be drafted.",
118
128
  bitbucketToolSchemas.postPullRequestComment,
119
- async ({ projectKey, repositorySlug, pullRequestId, text, parentId, filePath, line, lineType }) => {
120
- const result = await bitbucketService.postPullRequestComment(projectKey, repositorySlug, pullRequestId, text, parentId, filePath, line, lineType);
129
+ async ({ projectKey, repositorySlug, pullRequestId, text, parentId, filePath, line, lineType, pending }) => {
130
+ const result = await bitbucketService.postPullRequestComment(projectKey, repositorySlug, pullRequestId, text, parentId, filePath, line, lineType, pending);
131
+ return formatToolResponse(result);
132
+ }
133
+ );
134
+
135
+ server.tool(
136
+ "bitbucket_submitPullRequestReview",
137
+ "Submit a pull request review, publishing all pending (draft) comments and setting the reviewer's verdict. This is equivalent to clicking 'Submit Review' in the Bitbucket UI. Use after posting comments with pending: true. To resolve userSlug: (1) check author.slug in any comment you posted this session, (2) check the reviewers/participants array from bitbucket_getPullRequest, or (3) call bitbucket_getUser with a name/email filter as a last resort.",
138
+ bitbucketToolSchemas.submitPullRequestReview,
139
+ async ({ projectKey, repositorySlug, pullRequestId, userSlug, status, lastReviewedCommit }) => {
140
+ const result = await bitbucketService.submitPullRequestReview(projectKey, repositorySlug, pullRequestId, userSlug, status, lastReviewedCommit);
121
141
  return formatToolResponse(result);
122
142
  }
123
143
  );