@zhanglc77/bitbucket-mcp-server 1.0.9 → 1.0.11

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,30 +1,15 @@
1
1
  /**
2
- * Static field schemas and metadata for Bitbucket Cloud REST API resources
3
- * Based on official Bitbucket Cloud REST API documentation
2
+ * Static field schemas and metadata for Bitbucket Cloud and Server REST API resources
3
+ * Based on official Bitbucket Cloud and Server REST API documentation
4
4
  */
5
5
  /**
6
- * Repository resource field schema
6
+ * Repository resource field schema (Cloud and Server)
7
7
  */
8
8
  export const repositorySchema = {
9
9
  type: 'repository',
10
10
  description: 'Bitbucket repository object with complete metadata',
11
11
  fields: [
12
- {
13
- name: 'type',
14
- type: 'string',
15
- description: 'Object type identifier, always "repository"',
16
- required: true,
17
- readonly: true,
18
- example: 'repository'
19
- },
20
- {
21
- name: 'uuid',
22
- type: 'string',
23
- description: 'Unique repository identifier in UUID format with braces',
24
- required: true,
25
- readonly: true,
26
- example: '{b4434b4d-6a0e-4f57-8d75-e02a824abeb0}'
27
- },
12
+ // Common fields (both Cloud and Server)
28
13
  {
29
14
  name: 'name',
30
15
  type: 'string',
@@ -40,139 +25,293 @@ export const repositorySchema = {
40
25
  example: 'my-repository'
41
26
  },
42
27
  {
43
- name: 'full_name',
28
+ name: 'description',
44
29
  type: 'string',
45
- description: 'Full repository name in format "workspace/repo_slug"',
46
- required: true,
30
+ description: 'Repository description text',
31
+ example: 'This is a sample repository'
32
+ },
33
+ {
34
+ name: 'links',
35
+ type: 'object',
36
+ description: 'Related links for repository resources',
47
37
  readonly: true,
48
- example: 'teamsinspace/documentation-tests'
38
+ nested: true,
39
+ example: { self: { href: 'https://api.bitbucket.org/2.0/repositories/...' } }
49
40
  },
50
41
  {
51
- name: 'description',
42
+ name: 'project',
43
+ type: 'object',
44
+ description: 'Associated project object',
45
+ nested: true,
46
+ example: { name: 'Master station', key: 'PROJ' }
47
+ },
48
+ // Cloud-specific fields
49
+ {
50
+ name: 'type',
52
51
  type: 'string',
53
- description: 'Repository description text',
54
- example: 'This is a sample repository'
52
+ description: 'Object type identifier, always "repository" (Cloud only)',
53
+ readonly: true,
54
+ example: 'repository'
55
+ },
56
+ {
57
+ name: 'uuid',
58
+ type: 'string',
59
+ description: 'Unique repository identifier in UUID format with braces (Cloud only)',
60
+ readonly: true,
61
+ example: '{b4434b4d-6a0e-4f57-8d75-e02a824abeb0}'
62
+ },
63
+ {
64
+ name: 'full_name',
65
+ type: 'string',
66
+ description: 'Full repository name in format "workspace/repo_slug" (Cloud only)',
67
+ readonly: true,
68
+ example: 'teamsinspace/documentation-tests'
55
69
  },
56
70
  {
57
71
  name: 'scm',
58
72
  type: 'string',
59
- description: 'Source control management type (git, hg)',
60
- required: true,
73
+ description: 'Source control management type (git, hg) (Cloud only)',
61
74
  readonly: true,
62
75
  example: 'git'
63
76
  },
64
77
  {
65
78
  name: 'is_private',
66
79
  type: 'boolean',
67
- description: 'Whether the repository is private',
68
- required: true,
80
+ description: 'Whether the repository is private (Cloud only)',
69
81
  example: false
70
82
  },
71
83
  {
72
84
  name: 'size',
73
85
  type: 'number',
74
- description: 'Repository size in bytes',
86
+ description: 'Repository size in bytes (Cloud only)',
75
87
  readonly: true,
76
88
  example: 1172663
77
89
  },
78
90
  {
79
91
  name: 'language',
80
92
  type: 'string',
81
- description: 'Primary programming language detected',
93
+ description: 'Primary programming language detected (Cloud only)',
82
94
  readonly: true,
83
95
  example: 'JavaScript'
84
96
  },
85
97
  {
86
98
  name: 'has_issues',
87
99
  type: 'boolean',
88
- description: 'Whether issue tracker is enabled',
100
+ description: 'Whether issue tracker is enabled (Cloud only)',
89
101
  example: true
90
102
  },
91
103
  {
92
104
  name: 'has_wiki',
93
105
  type: 'boolean',
94
- description: 'Whether wiki is enabled',
106
+ description: 'Whether wiki is enabled (Cloud only)',
95
107
  example: true
96
108
  },
97
109
  {
98
110
  name: 'fork_policy',
99
111
  type: 'string',
100
- description: 'Fork permission policy (allow_forks, no_public_forks, no_forks)',
112
+ description: 'Fork permission policy (allow_forks, no_public_forks, no_forks) (Cloud only)',
101
113
  example: 'allow_forks'
102
114
  },
103
115
  {
104
116
  name: 'website',
105
117
  type: 'string',
106
- description: 'Repository website URL',
118
+ description: 'Repository website URL (Cloud only)',
107
119
  example: 'https://example.com'
108
120
  },
109
121
  {
110
122
  name: 'created_on',
111
123
  type: 'string',
112
- description: 'Repository creation timestamp in ISO 8601 format',
124
+ description: 'Repository creation timestamp in ISO 8601 format (Cloud only)',
113
125
  readonly: true,
114
126
  example: '2014-07-24T21:48:26.648365+00:00'
115
127
  },
116
128
  {
117
129
  name: 'updated_on',
118
130
  type: 'string',
119
- description: 'Last update timestamp in ISO 8601 format',
131
+ description: 'Last update timestamp in ISO 8601 format (Cloud only)',
120
132
  readonly: true,
121
133
  example: '2016-07-29T18:45:36.317590+00:00'
122
134
  },
123
135
  {
124
136
  name: 'mainbranch',
125
137
  type: 'object',
126
- description: 'Main branch information object',
138
+ description: 'Main branch information object (Cloud only)',
127
139
  nested: true,
128
140
  example: { name: 'main' }
129
141
  },
130
142
  {
131
143
  name: 'owner',
132
144
  type: 'object',
133
- description: 'Repository owner (user or team) object',
134
- required: true,
145
+ description: 'Repository owner (user or team) object (Cloud only)',
135
146
  nested: true,
136
147
  example: { username: 'teamsinspace', type: 'team' }
137
148
  },
138
149
  {
139
- name: 'project',
150
+ name: 'properties',
140
151
  type: 'object',
141
- description: 'Associated project object',
142
- nested: true,
143
- example: { name: 'Master station', key: 'PROJ' }
152
+ description: 'Application-specific properties stored for this repository (Cloud only)',
153
+ nested: true
144
154
  },
155
+ // Server-specific fields
145
156
  {
146
- name: 'links',
157
+ name: 'id',
158
+ type: 'number',
159
+ description: 'Numeric repository identifier (Server only)',
160
+ readonly: true,
161
+ example: 1234
162
+ },
163
+ {
164
+ name: 'hierarchyId',
165
+ type: 'string',
166
+ description: 'Repository hierarchy identifier (Server only)',
167
+ readonly: true,
168
+ example: 'abc123def456'
169
+ },
170
+ {
171
+ name: 'scmId',
172
+ type: 'string',
173
+ description: 'Source control management identifier (Server only)',
174
+ readonly: true,
175
+ example: 'git'
176
+ },
177
+ {
178
+ name: 'state',
179
+ type: 'string',
180
+ description: 'Repository state (AVAILABLE, INITIALISING, etc.) (Server only)',
181
+ readonly: true,
182
+ example: 'AVAILABLE'
183
+ },
184
+ {
185
+ name: 'statusMessage',
186
+ type: 'string',
187
+ description: 'Repository status message (Server only)',
188
+ readonly: true,
189
+ example: 'Available'
190
+ },
191
+ {
192
+ name: 'forkable',
193
+ type: 'boolean',
194
+ description: 'Whether the repository can be forked (Server only)',
195
+ readonly: true,
196
+ example: true
197
+ },
198
+ {
199
+ name: 'public',
200
+ type: 'boolean',
201
+ description: 'Whether the repository is public (Server only)',
202
+ example: false
203
+ },
204
+ {
205
+ name: 'archived',
206
+ type: 'boolean',
207
+ description: 'Whether the repository is archived (Server only)',
208
+ example: false
209
+ }
210
+ ]
211
+ };
212
+ /**
213
+ * Branch resource field schema (Cloud and Server)
214
+ */
215
+ export const branchSchema = {
216
+ type: 'branch',
217
+ description: 'Bitbucket branch reference object',
218
+ fields: [
219
+ // Common fields (both Cloud and Server)
220
+ {
221
+ name: 'type',
222
+ type: 'string',
223
+ description: 'Object type identifier (Server: "BRANCH", Cloud: "branch")',
224
+ readonly: true,
225
+ example: 'branch'
226
+ },
227
+ // Cloud-specific fields
228
+ {
229
+ name: 'name',
230
+ type: 'string',
231
+ description: 'Branch name (Cloud only)',
232
+ example: 'main'
233
+ },
234
+ {
235
+ name: 'target',
147
236
  type: 'object',
148
- description: 'Related links for repository resources',
237
+ description: 'Target commit object (Cloud only)',
149
238
  readonly: true,
150
239
  nested: true,
151
- example: { self: { href: 'https://api.bitbucket.org/2.0/repositories/...' } }
240
+ example: { hash: 'abc123def456' }
152
241
  },
153
242
  {
154
- name: 'properties',
243
+ name: 'heads',
244
+ type: 'array',
245
+ description: 'Branch head commits (Cloud only)',
246
+ readonly: true,
247
+ nested: true
248
+ },
249
+ {
250
+ name: 'links',
155
251
  type: 'object',
156
- description: 'Application-specific properties stored for this repository',
252
+ description: 'Related links for branch resources (Cloud only)',
253
+ readonly: true,
157
254
  nested: true
255
+ },
256
+ {
257
+ name: 'default_merge_strategy',
258
+ type: 'string',
259
+ description: 'Default merge strategy for this branch (Cloud only)',
260
+ example: 'merge_commit'
261
+ },
262
+ {
263
+ name: 'merge_strategies',
264
+ type: 'array',
265
+ description: 'Available merge strategies (Cloud only)',
266
+ readonly: true,
267
+ example: ['merge_commit', 'squash', 'fast_forward']
268
+ },
269
+ // Server-specific fields
270
+ {
271
+ name: 'id',
272
+ type: 'string',
273
+ description: 'Branch identifier (Server only)',
274
+ readonly: true,
275
+ example: 'refs/heads/main'
276
+ },
277
+ {
278
+ name: 'displayId',
279
+ type: 'string',
280
+ description: 'Display name of the branch (Server only)',
281
+ readonly: true,
282
+ example: 'main'
283
+ },
284
+ {
285
+ name: 'latestCommit',
286
+ type: 'string',
287
+ description: 'Latest commit hash on this branch (Server only)',
288
+ readonly: true,
289
+ example: 'abc123def456789'
290
+ },
291
+ {
292
+ name: 'latestChangeset',
293
+ type: 'string',
294
+ description: 'Latest changeset hash on this branch (Server only)',
295
+ readonly: true,
296
+ example: 'abc123def456789'
297
+ },
298
+ {
299
+ name: 'isDefault',
300
+ type: 'boolean',
301
+ description: 'Whether this is the default branch (Server only)',
302
+ readonly: true,
303
+ example: true
158
304
  }
159
305
  ]
160
306
  };
161
307
  /**
162
- * Pull Request resource field schema
308
+ * Pull Request resource field schema (Cloud and Server)
163
309
  */
164
310
  export const pullRequestSchema = {
165
- type: 'pullrequest',
311
+ type: 'pull-request',
166
312
  description: 'Bitbucket pull request object with complete metadata',
167
313
  fields: [
168
- {
169
- name: 'type',
170
- type: 'string',
171
- description: 'Object type identifier, always "pullrequest"',
172
- required: true,
173
- readonly: true,
174
- example: 'pullrequest'
175
- },
314
+ // Common fields (both Cloud and Server)
176
315
  {
177
316
  name: 'id',
178
317
  type: 'number',
@@ -191,7 +330,7 @@ export const pullRequestSchema = {
191
330
  {
192
331
  name: 'description',
193
332
  type: 'string',
194
- description: 'Pull request description in Markdown format',
333
+ description: 'Pull request description',
195
334
  example: 'This PR adds a new feature...'
196
335
  },
197
336
  {
@@ -201,258 +340,271 @@ export const pullRequestSchema = {
201
340
  required: true,
202
341
  example: 'OPEN'
203
342
  },
343
+ // Cloud-specific fields
344
+ {
345
+ name: 'type',
346
+ type: 'string',
347
+ description: 'Object type identifier, always "pullrequest" (Cloud only)',
348
+ readonly: true,
349
+ example: 'pullrequest'
350
+ },
204
351
  {
205
352
  name: 'draft',
206
353
  type: 'boolean',
207
- description: 'Whether the pull request is in draft status',
354
+ description: 'Whether the pull request is in draft status (Cloud only)',
208
355
  example: false
209
356
  },
210
357
  {
211
358
  name: 'author',
212
359
  type: 'object',
213
- description: 'Pull request author (user) object',
214
- required: true,
360
+ description: 'Pull request author (user) object (Cloud only)',
215
361
  nested: true,
216
362
  example: { username: 'developer', display_name: 'Developer Name' }
217
363
  },
218
364
  {
219
365
  name: 'source',
220
366
  type: 'object',
221
- description: 'Source branch information',
222
- required: true,
367
+ description: 'Source branch information (Cloud only)',
223
368
  nested: true,
224
369
  example: { branch: { name: 'feature-branch' } }
225
370
  },
226
371
  {
227
372
  name: 'destination',
228
373
  type: 'object',
229
- description: 'Destination branch information',
230
- required: true,
374
+ description: 'Destination branch information (Cloud only)',
231
375
  nested: true,
232
376
  example: { branch: { name: 'main' }, repository: { full_name: 'team/repo' } }
233
377
  },
234
378
  {
235
379
  name: 'merge_commit',
236
380
  type: 'object',
237
- description: 'Merge commit information (available after merge)',
381
+ description: 'Merge commit information (available after merge) (Cloud only)',
238
382
  nested: true,
239
383
  readonly: true
240
384
  },
241
385
  {
242
386
  name: 'close_source_branch',
243
387
  type: 'boolean',
244
- description: 'Whether to close source branch after merge',
388
+ description: 'Whether to close source branch after merge (Cloud only)',
245
389
  example: true
246
390
  },
247
391
  {
248
392
  name: 'closed_by',
249
393
  type: 'object',
250
- description: 'User who closed the pull request',
394
+ description: 'User who closed the pull request (Cloud only)',
251
395
  nested: true,
252
396
  readonly: true
253
397
  },
254
398
  {
255
399
  name: 'reason',
256
400
  type: 'string',
257
- description: 'Reason for closing (if declined)',
401
+ description: 'Reason for closing (if declined) (Cloud only)',
258
402
  readonly: true
259
403
  },
260
404
  {
261
405
  name: 'created_on',
262
406
  type: 'string',
263
- description: 'Creation timestamp in ISO 8601 format',
407
+ description: 'Creation timestamp in ISO 8601 format (Cloud only)',
264
408
  readonly: true,
265
409
  example: '2023-01-15T10:30:00.000Z'
266
410
  },
267
411
  {
268
412
  name: 'updated_on',
269
413
  type: 'string',
270
- description: 'Last update timestamp in ISO 8601 format',
414
+ description: 'Last update timestamp in ISO 8601 format (Cloud only)',
271
415
  readonly: true,
272
416
  example: '2023-01-16T14:20:00.000Z'
273
417
  },
274
418
  {
275
419
  name: 'comment_count',
276
420
  type: 'number',
277
- description: 'Total number of comments',
421
+ description: 'Total number of comments (Cloud only)',
278
422
  readonly: true,
279
423
  example: 5
280
424
  },
281
425
  {
282
426
  name: 'task_count',
283
427
  type: 'number',
284
- description: 'Total number of tasks',
428
+ description: 'Total number of tasks (Cloud only)',
285
429
  readonly: true,
286
430
  example: 2
287
431
  },
288
432
  {
289
433
  name: 'reviewers',
290
434
  type: 'array',
291
- description: 'List of pull request reviewers',
435
+ description: 'List of pull request reviewers (Cloud only)',
292
436
  nested: true,
293
437
  example: [{ user: { username: 'reviewer1' }, approved: true }]
294
438
  },
295
439
  {
296
440
  name: 'participants',
297
441
  type: 'array',
298
- description: 'List of pull request participants',
442
+ description: 'List of pull request participants (Cloud only)',
299
443
  nested: true,
300
444
  readonly: true
301
445
  },
302
446
  {
303
447
  name: 'links',
304
448
  type: 'object',
305
- description: 'Related links for pull request resources',
449
+ description: 'Related links for pull request resources (Cloud only)',
306
450
  readonly: true,
307
451
  nested: true
308
- }
309
- ]
310
- };
311
- /**
312
- * Commit resource field schema
313
- */
314
- export const commitSchema = {
315
- type: 'commit',
316
- description: 'Bitbucket commit object with complete metadata',
317
- fields: [
452
+ },
453
+ // Server-specific fields
318
454
  {
319
- name: 'type',
320
- type: 'string',
321
- description: 'Object type identifier, always "commit"',
322
- required: true,
455
+ name: 'version',
456
+ type: 'number',
457
+ description: 'Pull request version number for optimistic locking (Server only)',
323
458
  readonly: true,
324
- example: 'commit'
459
+ example: 40
325
460
  },
326
461
  {
327
- name: 'hash',
328
- type: 'string',
329
- description: 'Commit SHA hash',
330
- required: true,
462
+ name: 'open',
463
+ type: 'boolean',
464
+ description: 'Whether the pull request is open (Server only)',
331
465
  readonly: true,
332
- example: 'abc123def456'
466
+ example: true
333
467
  },
334
468
  {
335
- name: 'message',
336
- type: 'string',
337
- description: 'Commit message',
338
- required: true,
469
+ name: 'closed',
470
+ type: 'boolean',
471
+ description: 'Whether the pull request is closed (Server only)',
339
472
  readonly: true,
340
- example: 'Fix bug in user authentication'
473
+ example: false
341
474
  },
342
475
  {
343
- name: 'summary',
344
- type: 'object',
345
- description: 'Commit message summary with raw and markup',
476
+ name: 'locked',
477
+ type: 'boolean',
478
+ description: 'Whether the pull request is locked from further changes (Server only)',
346
479
  readonly: true,
347
- nested: true
480
+ example: false
348
481
  },
349
482
  {
350
- name: 'author',
483
+ name: 'createdDate',
484
+ type: 'number',
485
+ description: 'Creation timestamp in milliseconds since epoch (Server only)',
486
+ readonly: true,
487
+ example: 1755673199103
488
+ },
489
+ {
490
+ name: 'updatedDate',
491
+ type: 'number',
492
+ description: 'Last update timestamp in milliseconds since epoch (Server only)',
493
+ readonly: true,
494
+ example: 1755689018998
495
+ },
496
+ {
497
+ name: 'fromRef',
351
498
  type: 'object',
352
- description: 'Commit author information',
353
- required: true,
499
+ description: 'Source branch reference object with repository information (Server only)',
500
+ nested: true,
354
501
  readonly: true,
502
+ example: {
503
+ displayId: 'feature-branch',
504
+ latestCommit: 'abc123def456',
505
+ repository: { slug: 'my-repo' }
506
+ }
507
+ },
508
+ {
509
+ name: 'toRef',
510
+ type: 'object',
511
+ description: 'Destination branch reference object with repository information (Server only)',
355
512
  nested: true,
356
- example: { user: { username: 'developer' }, raw: 'Developer <dev@example.com>' }
513
+ readonly: true,
514
+ example: {
515
+ displayId: 'main',
516
+ latestCommit: 'def456abc123',
517
+ repository: { slug: 'my-repo' }
518
+ }
357
519
  },
358
520
  {
359
- name: 'date',
360
- type: 'string',
361
- description: 'Commit date in ISO 8601 format',
362
- required: true,
521
+ name: 'author',
522
+ type: 'object',
523
+ description: 'Pull request author object with user details and approval status (Server only)',
524
+ nested: true,
363
525
  readonly: true,
364
- example: '2023-01-15T10:30:00+00:00'
526
+ example: {
527
+ user: { displayName: 'John Developer', emailAddress: 'john@company.com' },
528
+ role: 'AUTHOR',
529
+ approved: false,
530
+ status: 'UNAPPROVED'
531
+ }
365
532
  },
366
533
  {
367
- name: 'parents',
534
+ name: 'reviewers',
368
535
  type: 'array',
369
- description: 'Parent commit objects',
370
- readonly: true,
536
+ description: 'Array of reviewer objects with user details and approval status (Server only)',
371
537
  nested: true,
372
- example: [{ hash: 'parent123abc' }]
538
+ example: [{
539
+ user: { displayName: 'Jane Reviewer', emailAddress: 'jane@company.com' },
540
+ role: 'REVIEWER',
541
+ approved: true,
542
+ status: 'APPROVED'
543
+ }]
373
544
  },
374
545
  {
375
- name: 'repository',
376
- type: 'object',
377
- description: 'Repository object this commit belongs to',
378
- required: true,
546
+ name: 'participants',
547
+ type: 'array',
548
+ description: 'Array of participant objects for users involved in the pull request (Server only)',
549
+ nested: true,
379
550
  readonly: true,
380
- nested: true
551
+ example: [{
552
+ user: { displayName: 'Participant Name', emailAddress: 'participant@company.com' },
553
+ role: 'PARTICIPANT',
554
+ approved: false,
555
+ status: 'UNAPPROVED'
556
+ }]
381
557
  },
382
558
  {
383
- name: 'links',
559
+ name: 'properties',
384
560
  type: 'object',
385
- description: 'Related links for commit resources',
561
+ description: 'Additional properties including merge result, cycle time, and task counts (Server only)',
562
+ nested: true,
386
563
  readonly: true,
387
- nested: true
564
+ example: {
565
+ mergeResult: { outcome: 'CLEAN', current: true },
566
+ commentCount: 5,
567
+ openTaskCount: 2,
568
+ resolvedTaskCount: 0
569
+ }
388
570
  }
389
571
  ]
390
572
  };
391
573
  /**
392
- * Branch resource field schema
574
+ * Simplified schemas for common resources - keeping existing schemas for compatibility
393
575
  */
394
- export const branchSchema = {
395
- type: 'branch',
396
- description: 'Bitbucket branch reference object',
576
+ export const commitSchema = {
577
+ type: 'commit',
578
+ description: 'Bitbucket commit object with complete metadata',
397
579
  fields: [
398
580
  {
399
581
  name: 'type',
400
582
  type: 'string',
401
- description: 'Object type identifier, always "branch"',
583
+ description: 'Object type identifier, always "commit"',
402
584
  required: true,
403
585
  readonly: true,
404
- example: 'branch'
586
+ example: 'commit'
405
587
  },
406
588
  {
407
- name: 'name',
589
+ name: 'hash',
408
590
  type: 'string',
409
- description: 'Branch name',
410
- required: true,
411
- example: 'main'
412
- },
413
- {
414
- name: 'target',
415
- type: 'object',
416
- description: 'Target commit object',
591
+ description: 'Commit SHA hash',
417
592
  required: true,
418
593
  readonly: true,
419
- nested: true,
420
- example: { hash: 'abc123def456' }
421
- },
422
- {
423
- name: 'heads',
424
- type: 'array',
425
- description: 'Branch head commits',
426
- readonly: true,
427
- nested: true
428
- },
429
- {
430
- name: 'links',
431
- type: 'object',
432
- description: 'Related links for branch resources',
433
- readonly: true,
434
- nested: true
594
+ example: 'abc123def456'
435
595
  },
436
596
  {
437
- name: 'default_merge_strategy',
597
+ name: 'message',
438
598
  type: 'string',
439
- description: 'Default merge strategy for this branch',
440
- example: 'merge_commit'
441
- },
442
- {
443
- name: 'merge_strategies',
444
- type: 'array',
445
- description: 'Available merge strategies',
599
+ description: 'Commit message',
600
+ required: true,
446
601
  readonly: true,
447
- example: ['merge_commit', 'squash', 'fast_forward']
602
+ example: 'Fix bug in user authentication'
448
603
  }
449
604
  ]
450
605
  };
451
- /**
452
- * File/Directory resource field schema
453
- */
454
606
  export const fileSchema = {
455
- type: 'commit_file',
607
+ type: 'commit-file',
456
608
  description: 'File or directory in a repository at a specific commit',
457
609
  fields: [
458
610
  {
@@ -470,54 +622,9 @@ export const fileSchema = {
470
622
  required: true,
471
623
  readonly: true,
472
624
  example: 'src/main.js'
473
- },
474
- {
475
- name: 'commit',
476
- type: 'object',
477
- description: 'Commit object this file belongs to',
478
- required: true,
479
- readonly: true,
480
- nested: true
481
- },
482
- {
483
- name: 'size',
484
- type: 'number',
485
- description: 'File size in bytes (files only)',
486
- readonly: true,
487
- example: 1024
488
- },
489
- {
490
- name: 'mimetype',
491
- type: 'string',
492
- description: 'MIME type of the file content',
493
- readonly: true,
494
- example: 'text/javascript'
495
- },
496
- {
497
- name: 'links',
498
- type: 'object',
499
- description: 'Related links for file resources',
500
- readonly: true,
501
- nested: true
502
- },
503
- {
504
- name: 'escaped_path',
505
- type: 'string',
506
- description: 'URL-escaped file path',
507
- readonly: true
508
- },
509
- {
510
- name: 'attributes',
511
- type: 'array',
512
- description: 'File attributes (executable, symlink, etc.)',
513
- readonly: true,
514
- example: ['executable']
515
625
  }
516
626
  ]
517
627
  };
518
- /**
519
- * Issue resource field schema
520
- */
521
628
  export const issueSchema = {
522
629
  type: 'issue',
523
630
  description: 'Bitbucket issue object',
@@ -537,121 +644,9 @@ export const issueSchema = {
537
644
  required: true,
538
645
  readonly: true,
539
646
  example: 42
540
- },
541
- {
542
- name: 'title',
543
- type: 'string',
544
- description: 'Issue title',
545
- required: true,
546
- example: 'Bug in login system'
547
- },
548
- {
549
- name: 'content',
550
- type: 'object',
551
- description: 'Issue content with raw and markup',
552
- nested: true
553
- },
554
- {
555
- name: 'reporter',
556
- type: 'object',
557
- description: 'User who reported the issue',
558
- required: true,
559
- readonly: true,
560
- nested: true
561
- },
562
- {
563
- name: 'assignee',
564
- type: 'object',
565
- description: 'User assigned to the issue',
566
- nested: true
567
- },
568
- {
569
- name: 'state',
570
- type: 'string',
571
- description: 'Issue state (new, open, resolved, closed, etc.)',
572
- required: true,
573
- example: 'open'
574
- },
575
- {
576
- name: 'kind',
577
- type: 'string',
578
- description: 'Issue kind (bug, enhancement, proposal, task)',
579
- required: true,
580
- example: 'bug'
581
- },
582
- {
583
- name: 'priority',
584
- type: 'string',
585
- description: 'Issue priority (trivial, minor, major, critical, blocker)',
586
- required: true,
587
- example: 'major'
588
- },
589
- {
590
- name: 'component',
591
- type: 'object',
592
- description: 'Component this issue belongs to',
593
- nested: true
594
- },
595
- {
596
- name: 'milestone',
597
- type: 'object',
598
- description: 'Milestone this issue is assigned to',
599
- nested: true
600
- },
601
- {
602
- name: 'version',
603
- type: 'object',
604
- description: 'Version this issue affects',
605
- nested: true
606
- },
607
- {
608
- name: 'votes',
609
- type: 'number',
610
- description: 'Number of votes for this issue',
611
- readonly: true,
612
- example: 5
613
- },
614
- {
615
- name: 'watches',
616
- type: 'number',
617
- description: 'Number of watchers for this issue',
618
- readonly: true,
619
- example: 3
620
- },
621
- {
622
- name: 'created_on',
623
- type: 'string',
624
- description: 'Creation timestamp in ISO 8601 format',
625
- readonly: true,
626
- example: '2023-01-15T10:30:00.000Z'
627
- },
628
- {
629
- name: 'updated_on',
630
- type: 'string',
631
- description: 'Last update timestamp in ISO 8601 format',
632
- readonly: true,
633
- example: '2023-01-16T14:20:00.000Z'
634
- },
635
- {
636
- name: 'repository',
637
- type: 'object',
638
- description: 'Repository this issue belongs to',
639
- required: true,
640
- readonly: true,
641
- nested: true
642
- },
643
- {
644
- name: 'links',
645
- type: 'object',
646
- description: 'Related links for issue resources',
647
- readonly: true,
648
- nested: true
649
647
  }
650
648
  ]
651
649
  };
652
- /**
653
- * User/Account resource field schema
654
- */
655
650
  export const userSchema = {
656
651
  type: 'user',
657
652
  description: 'Bitbucket user or team account object',
@@ -664,87 +659,15 @@ export const userSchema = {
664
659
  readonly: true,
665
660
  example: 'user'
666
661
  },
667
- {
668
- name: 'uuid',
669
- type: 'string',
670
- description: 'Unique user identifier in UUID format with braces',
671
- required: true,
672
- readonly: true,
673
- example: '{61fc5cf6-d054-47d2-b4a9-061ccf858379}'
674
- },
675
- {
676
- name: 'account_id',
677
- type: 'string',
678
- description: 'Account identifier string',
679
- readonly: true,
680
- example: '5d5355e8c6b9320d9ea5b28d'
681
- },
682
- {
683
- name: 'username',
684
- type: 'string',
685
- description: 'Username (deprecated for users, still valid for teams)',
686
- readonly: true,
687
- example: 'teamsinspace'
688
- },
689
- {
690
- name: 'nickname',
691
- type: 'string',
692
- description: 'User nickname',
693
- readonly: true,
694
- example: 'dev123'
695
- },
696
662
  {
697
663
  name: 'display_name',
698
664
  type: 'string',
699
665
  description: 'User display name',
700
666
  required: true,
701
667
  example: 'John Developer'
702
- },
703
- {
704
- name: 'website',
705
- type: 'string',
706
- description: 'User website URL',
707
- example: 'https://johndeveloper.com'
708
- },
709
- {
710
- name: 'location',
711
- type: 'string',
712
- description: 'User location',
713
- example: 'San Francisco, CA'
714
- },
715
- {
716
- name: 'created_on',
717
- type: 'string',
718
- description: 'Account creation timestamp in ISO 8601 format',
719
- readonly: true,
720
- example: '2019-01-01T00:00:00.000Z'
721
- },
722
- {
723
- name: 'account_status',
724
- type: 'string',
725
- description: 'Account status (active, inactive)',
726
- readonly: true,
727
- example: 'active'
728
- },
729
- {
730
- name: 'has_2fa_enabled',
731
- type: 'boolean',
732
- description: 'Whether two-factor authentication is enabled',
733
- readonly: true,
734
- example: true
735
- },
736
- {
737
- name: 'links',
738
- type: 'object',
739
- description: 'Related links for user resources',
740
- readonly: true,
741
- nested: true
742
668
  }
743
669
  ]
744
670
  };
745
- /**
746
- * Project resource field schema
747
- */
748
671
  export const projectSchema = {
749
672
  type: 'project',
750
673
  description: 'Bitbucket project object for organizing repositories',
@@ -757,74 +680,15 @@ export const projectSchema = {
757
680
  readonly: true,
758
681
  example: 'project'
759
682
  },
760
- {
761
- name: 'uuid',
762
- type: 'string',
763
- description: 'Unique project identifier in UUID format with braces',
764
- required: true,
765
- readonly: true,
766
- example: '{a18967d5-acba-4f73-bf9c-36d9fa6ea143}'
767
- },
768
683
  {
769
684
  name: 'key',
770
685
  type: 'string',
771
686
  description: 'Project key (unique within workspace)',
772
687
  required: true,
773
688
  example: 'PROJ'
774
- },
775
- {
776
- name: 'name',
777
- type: 'string',
778
- description: 'Project display name',
779
- required: true,
780
- example: 'My Project'
781
- },
782
- {
783
- name: 'description',
784
- type: 'string',
785
- description: 'Project description',
786
- example: 'This is a sample project'
787
- },
788
- {
789
- name: 'is_private',
790
- type: 'boolean',
791
- description: 'Whether the project is private',
792
- required: true,
793
- example: false
794
- },
795
- {
796
- name: 'owner',
797
- type: 'object',
798
- description: 'Project owner (team or user) object',
799
- required: true,
800
- nested: true
801
- },
802
- {
803
- name: 'created_on',
804
- type: 'string',
805
- description: 'Project creation timestamp in ISO 8601 format',
806
- readonly: true,
807
- example: '2023-01-01T00:00:00.000Z'
808
- },
809
- {
810
- name: 'updated_on',
811
- type: 'string',
812
- description: 'Last update timestamp in ISO 8601 format',
813
- readonly: true,
814
- example: '2023-01-15T12:00:00.000Z'
815
- },
816
- {
817
- name: 'links',
818
- type: 'object',
819
- description: 'Related links for project resources',
820
- readonly: true,
821
- nested: true
822
689
  }
823
690
  ]
824
691
  };
825
- /**
826
- * Comment resource field schema (for pull requests, commits, issues)
827
- */
828
692
  export const commentSchema = {
829
693
  type: 'comment',
830
694
  description: 'Comment object for pull requests, commits, or issues',
@@ -844,76 +708,6 @@ export const commentSchema = {
844
708
  required: true,
845
709
  readonly: true,
846
710
  example: 12345
847
- },
848
- {
849
- name: 'content',
850
- type: 'object',
851
- description: 'Comment content with raw and markup',
852
- required: true,
853
- nested: true
854
- },
855
- {
856
- name: 'user',
857
- type: 'object',
858
- description: 'User who created the comment',
859
- required: true,
860
- readonly: true,
861
- nested: true
862
- },
863
- {
864
- name: 'created_on',
865
- type: 'string',
866
- description: 'Creation timestamp in ISO 8601 format',
867
- readonly: true,
868
- example: '2023-01-15T10:30:00.000Z'
869
- },
870
- {
871
- name: 'updated_on',
872
- type: 'string',
873
- description: 'Last update timestamp in ISO 8601 format',
874
- readonly: true,
875
- example: '2023-01-16T14:20:00.000Z'
876
- },
877
- {
878
- name: 'inline',
879
- type: 'object',
880
- description: 'Inline comment positioning (for code comments)',
881
- nested: true
882
- },
883
- {
884
- name: 'parent',
885
- type: 'object',
886
- description: 'Parent comment (for threaded comments)',
887
- nested: true,
888
- readonly: true
889
- },
890
- {
891
- name: 'pullrequest',
892
- type: 'object',
893
- description: 'Associated pull request (for PR comments)',
894
- readonly: true,
895
- nested: true
896
- },
897
- {
898
- name: 'commit',
899
- type: 'object',
900
- description: 'Associated commit (for commit comments)',
901
- readonly: true,
902
- nested: true
903
- },
904
- {
905
- name: 'issue',
906
- type: 'object',
907
- description: 'Associated issue (for issue comments)',
908
- readonly: true,
909
- nested: true
910
- },
911
- {
912
- name: 'links',
913
- type: 'object',
914
- description: 'Related links for comment resources',
915
- readonly: true,
916
- nested: true
917
711
  }
918
712
  ]
919
713
  };
@@ -976,11 +770,11 @@ export function getCommonFields(pattern) {
976
770
  export const resourceCategories = {
977
771
  core: {
978
772
  description: 'Core Bitbucket resources essential for most operations',
979
- types: ['repository', 'pullrequest', 'commit', 'branch', 'user']
773
+ types: ['repository', 'pull-request', 'commit', 'branch', 'user']
980
774
  },
981
775
  extended: {
982
776
  description: 'Extended resources for advanced functionality',
983
- types: ['issue', 'project', 'pullrequest_comment', 'commit_comment', 'issue_comment', 'commit_file', 'commit_directory']
777
+ types: ['issue', 'project', 'pull-request-comment', 'commit-comment', 'issue-comment', 'commit-file', 'commit-directory']
984
778
  }
985
779
  };
986
780
  /**