@zhanglc77/bitbucket-mcp-server 1.0.5 → 1.0.7
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 +58 -0
- package/README.md +67 -0
- package/build/handlers/file-handlers.d.ts.map +1 -1
- package/build/handlers/file-handlers.js.map +1 -1
- package/build/index.js +88 -2
- package/build/index.js.map +1 -1
- package/build/resources/field-schemas.d.ts +134 -0
- package/build/resources/field-schemas.d.ts.map +1 -0
- package/build/resources/field-schemas.js +1099 -0
- package/build/resources/field-schemas.js.map +1 -0
- package/build/resources/handlers.d.ts +65 -0
- package/build/resources/handlers.d.ts.map +1 -0
- package/build/resources/handlers.js +560 -0
- package/build/resources/handlers.js.map +1 -0
- package/build/resources/schema-handlers.d.ts +44 -0
- package/build/resources/schema-handlers.d.ts.map +1 -0
- package/build/resources/schema-handlers.js +170 -0
- package/build/resources/schema-handlers.js.map +1 -0
- package/build/resources/templates.d.ts +4 -0
- package/build/resources/templates.d.ts.map +1 -0
- package/build/resources/templates.js +306 -0
- package/build/resources/templates.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-schemas.js","sourceRoot":"","sources":["../../src/resources/field-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { BitbucketApiClient } from '../utils/api-client.js';
|
|
2
|
+
import { PullRequestHandlers } from '../handlers/pull-request-handlers.js';
|
|
3
|
+
import { BranchHandlers } from '../handlers/branch-handlers.js';
|
|
4
|
+
import { FileHandlers } from '../handlers/file-handlers.js';
|
|
5
|
+
import { SearchHandlers } from '../handlers/search-handlers.js';
|
|
6
|
+
import { ReviewHandlers } from '../handlers/review-handlers.js';
|
|
7
|
+
export declare class ResourceHandlers {
|
|
8
|
+
private apiClient;
|
|
9
|
+
private pullRequestHandlers;
|
|
10
|
+
private branchHandlers;
|
|
11
|
+
private fileHandlers;
|
|
12
|
+
private searchHandlers;
|
|
13
|
+
private reviewHandlers;
|
|
14
|
+
private schemaHandlers;
|
|
15
|
+
constructor(apiClient: BitbucketApiClient, pullRequestHandlers: PullRequestHandlers, branchHandlers: BranchHandlers, fileHandlers: FileHandlers, searchHandlers: SearchHandlers, reviewHandlers: ReviewHandlers);
|
|
16
|
+
/**
|
|
17
|
+
* Parse a Bitbucket resource URI and extract components
|
|
18
|
+
*/
|
|
19
|
+
private parseResourceUri;
|
|
20
|
+
/**
|
|
21
|
+
* Handle resource read requests by delegating to appropriate handlers
|
|
22
|
+
*/
|
|
23
|
+
handleResourceRead(uri: string): Promise<any>;
|
|
24
|
+
/**
|
|
25
|
+
* Convert tool response to resource response format with field filtering support
|
|
26
|
+
*/
|
|
27
|
+
private convertToolResponseToResource;
|
|
28
|
+
/**
|
|
29
|
+
* Apply field filtering to response data
|
|
30
|
+
*/
|
|
31
|
+
private applyFieldFiltering;
|
|
32
|
+
/**
|
|
33
|
+
* Extract only specified fields using dot notation
|
|
34
|
+
*/
|
|
35
|
+
private includeOnlyFields;
|
|
36
|
+
/**
|
|
37
|
+
* Exclude specified fields using dot notation
|
|
38
|
+
*/
|
|
39
|
+
private excludeFields;
|
|
40
|
+
/**
|
|
41
|
+
* Get nested field value using dot notation (e.g., "user.name", "files.0.path", "reviewers.*.display_name")
|
|
42
|
+
*/
|
|
43
|
+
private getNestedField;
|
|
44
|
+
/**
|
|
45
|
+
* Set nested field value using dot notation
|
|
46
|
+
*/
|
|
47
|
+
private setNestedField;
|
|
48
|
+
/**
|
|
49
|
+
* Delete nested field using dot notation
|
|
50
|
+
*/
|
|
51
|
+
private deleteNestedField;
|
|
52
|
+
/**
|
|
53
|
+
* Extract minimal fields for different resource types
|
|
54
|
+
*/
|
|
55
|
+
private extractMinimalFields;
|
|
56
|
+
/**
|
|
57
|
+
* Extract summary fields for different resource types
|
|
58
|
+
*/
|
|
59
|
+
private extractSummaryFields;
|
|
60
|
+
/**
|
|
61
|
+
* Extract metadata fields only
|
|
62
|
+
*/
|
|
63
|
+
private extractMetadataFields;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/resources/handlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,qBAAa,gBAAgB;IAIzB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,cAAc;IARxB,OAAO,CAAC,cAAc,CAAiB;gBAG7B,SAAS,EAAE,kBAAkB,EAC7B,mBAAmB,EAAE,mBAAmB,EACxC,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc;IAKxC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuDxB;;OAEG;IACG,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiLnD;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAuCrC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuC3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwEzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,cAAc;IA+BtB;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+C5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6C5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAc9B"}
|
|
@@ -0,0 +1,560 @@
|
|
|
1
|
+
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { SchemaHandlers } from './schema-handlers.js';
|
|
3
|
+
export class ResourceHandlers {
|
|
4
|
+
apiClient;
|
|
5
|
+
pullRequestHandlers;
|
|
6
|
+
branchHandlers;
|
|
7
|
+
fileHandlers;
|
|
8
|
+
searchHandlers;
|
|
9
|
+
reviewHandlers;
|
|
10
|
+
schemaHandlers;
|
|
11
|
+
constructor(apiClient, pullRequestHandlers, branchHandlers, fileHandlers, searchHandlers, reviewHandlers) {
|
|
12
|
+
this.apiClient = apiClient;
|
|
13
|
+
this.pullRequestHandlers = pullRequestHandlers;
|
|
14
|
+
this.branchHandlers = branchHandlers;
|
|
15
|
+
this.fileHandlers = fileHandlers;
|
|
16
|
+
this.searchHandlers = searchHandlers;
|
|
17
|
+
this.reviewHandlers = reviewHandlers;
|
|
18
|
+
this.schemaHandlers = new SchemaHandlers();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parse a Bitbucket resource URI and extract components
|
|
22
|
+
*/
|
|
23
|
+
parseResourceUri(uri) {
|
|
24
|
+
const url = new URL(uri);
|
|
25
|
+
if (url.protocol !== 'bitbucket:') {
|
|
26
|
+
throw new McpError(ErrorCode.InvalidParams, `Invalid URI scheme: ${url.protocol}`);
|
|
27
|
+
}
|
|
28
|
+
const pathParts = url.pathname.split('/').filter(p => p);
|
|
29
|
+
// Special handling for schema URIs: bitbucket://schema/...
|
|
30
|
+
if (pathParts.length >= 1 && pathParts[0] === 'schema') {
|
|
31
|
+
// Parse query parameters
|
|
32
|
+
const params = {};
|
|
33
|
+
url.searchParams.forEach((value, key) => {
|
|
34
|
+
params[key] = value;
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
scheme: url.protocol,
|
|
38
|
+
resourceType: 'schema',
|
|
39
|
+
resourcePath: pathParts.slice(1).join('/'),
|
|
40
|
+
params
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// Regular workspace/repo URIs: bitbucket://workspace/repo/resourceType/...
|
|
44
|
+
if (pathParts.length < 3) {
|
|
45
|
+
throw new McpError(ErrorCode.InvalidParams, `Invalid URI format: ${uri}`);
|
|
46
|
+
}
|
|
47
|
+
const [workspace, repo, resourceType, ...resourcePathParts] = pathParts;
|
|
48
|
+
const resourcePath = resourcePathParts.join('/');
|
|
49
|
+
// Parse query parameters
|
|
50
|
+
const params = {};
|
|
51
|
+
url.searchParams.forEach((value, key) => {
|
|
52
|
+
params[key] = value;
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
scheme: url.protocol,
|
|
56
|
+
workspace,
|
|
57
|
+
repo,
|
|
58
|
+
resourceType,
|
|
59
|
+
resourcePath: resourcePath || undefined,
|
|
60
|
+
params
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Handle resource read requests by delegating to appropriate handlers
|
|
65
|
+
*/
|
|
66
|
+
async handleResourceRead(uri) {
|
|
67
|
+
try {
|
|
68
|
+
const parsed = this.parseResourceUri(uri);
|
|
69
|
+
const { workspace, repo, resourceType, resourcePath, params } = parsed;
|
|
70
|
+
switch (resourceType) {
|
|
71
|
+
case 'schema':
|
|
72
|
+
// Handle schema resources: bitbucket://schema/...
|
|
73
|
+
return await this.schemaHandlers.handleSchemaResource(uri);
|
|
74
|
+
case 'file':
|
|
75
|
+
if (!resourcePath) {
|
|
76
|
+
throw new McpError(ErrorCode.InvalidParams, 'File path is required');
|
|
77
|
+
}
|
|
78
|
+
if (!workspace || !repo) {
|
|
79
|
+
throw new McpError(ErrorCode.InvalidParams, 'Workspace and repository are required for file resources');
|
|
80
|
+
}
|
|
81
|
+
const fileResult = await this.fileHandlers.handleGetFileContent({
|
|
82
|
+
workspace,
|
|
83
|
+
repository: repo,
|
|
84
|
+
file_path: resourcePath,
|
|
85
|
+
branch: params.ref,
|
|
86
|
+
start_line: params.start_line ? parseInt(params.start_line) : undefined,
|
|
87
|
+
line_count: params.line_count ? parseInt(params.line_count) : undefined,
|
|
88
|
+
full_content: params.full_content === 'true'
|
|
89
|
+
});
|
|
90
|
+
return this.convertToolResponseToResource(uri, fileResult);
|
|
91
|
+
case 'dir':
|
|
92
|
+
if (!workspace || !repo) {
|
|
93
|
+
throw new McpError(ErrorCode.InvalidParams, 'Workspace and repository are required for directory resources');
|
|
94
|
+
}
|
|
95
|
+
const dirResult = await this.fileHandlers.handleListDirectoryContent({
|
|
96
|
+
workspace,
|
|
97
|
+
repository: repo,
|
|
98
|
+
path: resourcePath,
|
|
99
|
+
branch: params.ref
|
|
100
|
+
});
|
|
101
|
+
return this.convertToolResponseToResource(uri, dirResult);
|
|
102
|
+
case 'pr':
|
|
103
|
+
if (resourcePath === 'diff') {
|
|
104
|
+
// PR diff: bitbucket://workspace/repo/pr/123/diff
|
|
105
|
+
const prId = params.id || (uri.match(/\/pr\/(\d+)\/diff/) || [])[1];
|
|
106
|
+
if (!prId) {
|
|
107
|
+
throw new McpError(ErrorCode.InvalidParams, 'PR ID is required for diff');
|
|
108
|
+
}
|
|
109
|
+
const diffResult = await this.reviewHandlers.handleGetPullRequestDiff({
|
|
110
|
+
workspace,
|
|
111
|
+
repository: repo,
|
|
112
|
+
pull_request_id: parseInt(prId),
|
|
113
|
+
context: params.context ? parseInt(params.context) : undefined,
|
|
114
|
+
include_patterns: params.include,
|
|
115
|
+
exclude_patterns: params.exclude,
|
|
116
|
+
mode: params.mode
|
|
117
|
+
});
|
|
118
|
+
return this.convertToolResponseToResource(uri, diffResult);
|
|
119
|
+
}
|
|
120
|
+
else if (resourcePath === 'commits') {
|
|
121
|
+
// PR commits: bitbucket://workspace/repo/pr/123/commits
|
|
122
|
+
const prId = params.id || (uri.match(/\/pr\/(\d+)\/commits/) || [])[1];
|
|
123
|
+
if (!prId) {
|
|
124
|
+
throw new McpError(ErrorCode.InvalidParams, 'PR ID is required for commits');
|
|
125
|
+
}
|
|
126
|
+
const commitsResult = await this.pullRequestHandlers.handleListPrCommits({
|
|
127
|
+
workspace,
|
|
128
|
+
repository: repo,
|
|
129
|
+
pull_request_id: parseInt(prId),
|
|
130
|
+
start: params.start ? parseInt(params.start) : undefined,
|
|
131
|
+
limit: params.limit ? parseInt(params.limit) : undefined
|
|
132
|
+
});
|
|
133
|
+
return this.convertToolResponseToResource(uri, commitsResult);
|
|
134
|
+
}
|
|
135
|
+
else if (resourcePath?.startsWith('diff/')) {
|
|
136
|
+
// Single file diff: bitbucket://workspace/repo/pr/123/diff/path/to/file
|
|
137
|
+
const prId = params.id || (uri.match(/\/pr\/(\d+)\/diff/) || [])[1];
|
|
138
|
+
const filePath = resourcePath.substring(5); // Remove 'diff/' prefix
|
|
139
|
+
if (!prId || !filePath) {
|
|
140
|
+
throw new McpError(ErrorCode.InvalidParams, 'PR ID and file path are required');
|
|
141
|
+
}
|
|
142
|
+
const fileDiffResult = await this.reviewHandlers.handleGetPullRequestDiff({
|
|
143
|
+
workspace,
|
|
144
|
+
repository: repo,
|
|
145
|
+
pull_request_id: parseInt(prId),
|
|
146
|
+
file_path: filePath,
|
|
147
|
+
context: params.context ? parseInt(params.context) : undefined,
|
|
148
|
+
mode: params.mode
|
|
149
|
+
});
|
|
150
|
+
return this.convertToolResponseToResource(uri, fileDiffResult);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
// PR details: bitbucket://workspace/repo/pr/123
|
|
154
|
+
const prId = resourcePath || params.id;
|
|
155
|
+
if (!prId) {
|
|
156
|
+
throw new McpError(ErrorCode.InvalidParams, 'PR ID is required');
|
|
157
|
+
}
|
|
158
|
+
const prResult = await this.pullRequestHandlers.handleGetPullRequest({
|
|
159
|
+
workspace,
|
|
160
|
+
repository: repo,
|
|
161
|
+
pull_request_id: parseInt(prId)
|
|
162
|
+
});
|
|
163
|
+
return this.convertToolResponseToResource(uri, prResult);
|
|
164
|
+
}
|
|
165
|
+
case 'branches':
|
|
166
|
+
const branchesResult = await this.branchHandlers.handleListBranches({
|
|
167
|
+
workspace,
|
|
168
|
+
repository: repo,
|
|
169
|
+
filter: params.filter,
|
|
170
|
+
limit: params.limit ? parseInt(params.limit) : undefined,
|
|
171
|
+
start: params.start ? parseInt(params.start) : undefined
|
|
172
|
+
});
|
|
173
|
+
return this.convertToolResponseToResource(uri, branchesResult);
|
|
174
|
+
case 'branch':
|
|
175
|
+
if (!resourcePath) {
|
|
176
|
+
throw new McpError(ErrorCode.InvalidParams, 'Branch name is required');
|
|
177
|
+
}
|
|
178
|
+
const branchResult = await this.branchHandlers.handleGetBranch({
|
|
179
|
+
workspace,
|
|
180
|
+
repository: repo,
|
|
181
|
+
branch_name: resourcePath
|
|
182
|
+
});
|
|
183
|
+
return this.convertToolResponseToResource(uri, branchResult);
|
|
184
|
+
case 'search':
|
|
185
|
+
if (!params.query) {
|
|
186
|
+
throw new McpError(ErrorCode.InvalidParams, 'Search query is required');
|
|
187
|
+
}
|
|
188
|
+
const searchResult = await this.searchHandlers.handleSearchCode({
|
|
189
|
+
workspace,
|
|
190
|
+
repository: repo,
|
|
191
|
+
search_query: params.query,
|
|
192
|
+
file_extensions: params.file_extensions,
|
|
193
|
+
include_paths: params.include_paths,
|
|
194
|
+
exclude_paths: params.exclude_paths,
|
|
195
|
+
limit: params.limit ? parseInt(params.limit) : undefined
|
|
196
|
+
});
|
|
197
|
+
return this.convertToolResponseToResource(uri, searchResult);
|
|
198
|
+
case 'prs':
|
|
199
|
+
const prsResult = await this.pullRequestHandlers.handleListPullRequests({
|
|
200
|
+
workspace,
|
|
201
|
+
repository: repo,
|
|
202
|
+
state: params.state || 'OPEN',
|
|
203
|
+
author: params.author,
|
|
204
|
+
reviewer: params.reviewer,
|
|
205
|
+
limit: params.limit ? parseInt(params.limit) : 25,
|
|
206
|
+
start: params.start ? parseInt(params.start) : 0
|
|
207
|
+
});
|
|
208
|
+
return this.convertToolResponseToResource(uri, prsResult);
|
|
209
|
+
default:
|
|
210
|
+
throw new McpError(ErrorCode.InvalidParams, `Unknown resource type: ${resourceType}`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
if (error instanceof McpError) {
|
|
215
|
+
throw error;
|
|
216
|
+
}
|
|
217
|
+
// Convert API errors to MCP errors
|
|
218
|
+
return {
|
|
219
|
+
contents: [
|
|
220
|
+
{
|
|
221
|
+
uri,
|
|
222
|
+
mimeType: 'application/json',
|
|
223
|
+
text: JSON.stringify({
|
|
224
|
+
error: 'Resource retrieval failed',
|
|
225
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
226
|
+
uri
|
|
227
|
+
}, null, 2),
|
|
228
|
+
},
|
|
229
|
+
],
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Convert tool response to resource response format with field filtering support
|
|
235
|
+
*/
|
|
236
|
+
convertToolResponseToResource(uri, toolResponse) {
|
|
237
|
+
let responseData;
|
|
238
|
+
// Extract the actual data from tool response
|
|
239
|
+
if (Array.isArray(toolResponse.content)) {
|
|
240
|
+
try {
|
|
241
|
+
responseData = JSON.parse(toolResponse.content[0].text);
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
responseData = { text: toolResponse.content[0].text };
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
responseData = toolResponse;
|
|
249
|
+
}
|
|
250
|
+
// Apply field filtering based on URI parameters
|
|
251
|
+
const parsed = new URL(uri);
|
|
252
|
+
const fields = parsed.searchParams.get('fields');
|
|
253
|
+
const exclude = parsed.searchParams.get('exclude');
|
|
254
|
+
const format = parsed.searchParams.get('format') || 'full';
|
|
255
|
+
if (fields || exclude || format !== 'full') {
|
|
256
|
+
responseData = this.applyFieldFiltering(responseData, {
|
|
257
|
+
fields: fields?.split(',').map(f => f.trim()),
|
|
258
|
+
exclude: exclude?.split(',').map(f => f.trim()),
|
|
259
|
+
format
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
return {
|
|
263
|
+
contents: [
|
|
264
|
+
{
|
|
265
|
+
uri,
|
|
266
|
+
mimeType: 'application/json',
|
|
267
|
+
text: JSON.stringify(responseData, null, 2),
|
|
268
|
+
},
|
|
269
|
+
],
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Apply field filtering to response data
|
|
274
|
+
*/
|
|
275
|
+
applyFieldFiltering(data, options) {
|
|
276
|
+
if (!data || typeof data !== 'object') {
|
|
277
|
+
return data;
|
|
278
|
+
}
|
|
279
|
+
let result;
|
|
280
|
+
// Handle different format options
|
|
281
|
+
switch (options.format) {
|
|
282
|
+
case 'minimal':
|
|
283
|
+
result = this.extractMinimalFields(data);
|
|
284
|
+
break;
|
|
285
|
+
case 'summary':
|
|
286
|
+
result = this.extractSummaryFields(data);
|
|
287
|
+
break;
|
|
288
|
+
case 'metadata':
|
|
289
|
+
result = this.extractMetadataFields(data);
|
|
290
|
+
break;
|
|
291
|
+
default:
|
|
292
|
+
result = { ...data };
|
|
293
|
+
}
|
|
294
|
+
// Apply explicit field inclusion
|
|
295
|
+
if (options.fields && options.fields.length > 0) {
|
|
296
|
+
result = this.includeOnlyFields(result, options.fields);
|
|
297
|
+
}
|
|
298
|
+
// Apply field exclusion
|
|
299
|
+
if (options.exclude && options.exclude.length > 0) {
|
|
300
|
+
result = this.excludeFields(result, options.exclude);
|
|
301
|
+
}
|
|
302
|
+
return result;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Extract only specified fields using dot notation
|
|
306
|
+
*/
|
|
307
|
+
includeOnlyFields(data, fields) {
|
|
308
|
+
const result = {};
|
|
309
|
+
for (const field of fields) {
|
|
310
|
+
if (field.includes('*')) {
|
|
311
|
+
// Handle wildcard fields
|
|
312
|
+
const parts = field.split('.');
|
|
313
|
+
const wildcardIndex = parts.indexOf('*');
|
|
314
|
+
const beforeWildcard = parts.slice(0, wildcardIndex);
|
|
315
|
+
const afterWildcard = parts.slice(wildcardIndex + 1);
|
|
316
|
+
// Navigate to the array containing the wildcard
|
|
317
|
+
let current = data;
|
|
318
|
+
for (const part of beforeWildcard) {
|
|
319
|
+
if (current && typeof current === 'object') {
|
|
320
|
+
current = current[part];
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
if (Array.isArray(current)) {
|
|
324
|
+
// Create result array structure
|
|
325
|
+
const resultArray = current.map(item => {
|
|
326
|
+
if (afterWildcard.length > 0) {
|
|
327
|
+
// Extract nested field from each array item
|
|
328
|
+
let nestedValue = item;
|
|
329
|
+
for (const part of afterWildcard) {
|
|
330
|
+
if (nestedValue && typeof nestedValue === 'object') {
|
|
331
|
+
nestedValue = nestedValue[part];
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
if (nestedValue !== undefined) {
|
|
335
|
+
const itemResult = {};
|
|
336
|
+
let buildPath = itemResult;
|
|
337
|
+
for (let i = 0; i < afterWildcard.length - 1; i++) {
|
|
338
|
+
buildPath[afterWildcard[i]] = {};
|
|
339
|
+
buildPath = buildPath[afterWildcard[i]];
|
|
340
|
+
}
|
|
341
|
+
buildPath[afterWildcard[afterWildcard.length - 1]] = nestedValue;
|
|
342
|
+
return itemResult;
|
|
343
|
+
}
|
|
344
|
+
return undefined;
|
|
345
|
+
}
|
|
346
|
+
return item;
|
|
347
|
+
}).filter(item => item !== undefined);
|
|
348
|
+
// Set result in the correct nested structure
|
|
349
|
+
let buildResult = result;
|
|
350
|
+
for (let i = 0; i < beforeWildcard.length - 1; i++) {
|
|
351
|
+
if (!buildResult[beforeWildcard[i]]) {
|
|
352
|
+
buildResult[beforeWildcard[i]] = {};
|
|
353
|
+
}
|
|
354
|
+
buildResult = buildResult[beforeWildcard[i]];
|
|
355
|
+
}
|
|
356
|
+
if (beforeWildcard.length > 0) {
|
|
357
|
+
buildResult[beforeWildcard[beforeWildcard.length - 1]] = resultArray;
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
return resultArray; // Root level wildcard
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
// Handle regular fields
|
|
366
|
+
const value = this.getNestedField(data, field);
|
|
367
|
+
if (value !== undefined) {
|
|
368
|
+
this.setNestedField(result, field, value);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
return result;
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Exclude specified fields using dot notation
|
|
376
|
+
*/
|
|
377
|
+
excludeFields(data, fields) {
|
|
378
|
+
const result = JSON.parse(JSON.stringify(data)); // Deep clone
|
|
379
|
+
for (const field of fields) {
|
|
380
|
+
this.deleteNestedField(result, field);
|
|
381
|
+
}
|
|
382
|
+
return result;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Get nested field value using dot notation (e.g., "user.name", "files.0.path", "reviewers.*.display_name")
|
|
386
|
+
*/
|
|
387
|
+
getNestedField(obj, path) {
|
|
388
|
+
if (obj === null || obj === undefined)
|
|
389
|
+
return undefined;
|
|
390
|
+
const keys = path.split('.');
|
|
391
|
+
let current = obj;
|
|
392
|
+
for (let i = 0; i < keys.length; i++) {
|
|
393
|
+
const key = keys[i];
|
|
394
|
+
if (current === null || current === undefined)
|
|
395
|
+
return undefined;
|
|
396
|
+
// Handle wildcard for arrays
|
|
397
|
+
if (key === '*' && Array.isArray(current)) {
|
|
398
|
+
const remainingPath = keys.slice(i + 1).join('.');
|
|
399
|
+
if (remainingPath) {
|
|
400
|
+
return current.map(item => this.getNestedField(item, remainingPath));
|
|
401
|
+
}
|
|
402
|
+
return current;
|
|
403
|
+
}
|
|
404
|
+
// Handle array indices
|
|
405
|
+
if (Array.isArray(current) && /^\d+$/.test(key)) {
|
|
406
|
+
current = current[parseInt(key)];
|
|
407
|
+
}
|
|
408
|
+
else {
|
|
409
|
+
current = current[key];
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
return current;
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Set nested field value using dot notation
|
|
416
|
+
*/
|
|
417
|
+
setNestedField(obj, path, value) {
|
|
418
|
+
const keys = path.split('.');
|
|
419
|
+
const lastKey = keys.pop();
|
|
420
|
+
let current = obj;
|
|
421
|
+
for (let i = 0; i < keys.length; i++) {
|
|
422
|
+
const key = keys[i];
|
|
423
|
+
const nextKey = keys[i + 1];
|
|
424
|
+
if (!(key in current)) {
|
|
425
|
+
// Determine if next level should be array or object
|
|
426
|
+
if (nextKey && /^\d+$/.test(nextKey)) {
|
|
427
|
+
current[key] = [];
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
current[key] = {};
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
current = current[key];
|
|
434
|
+
}
|
|
435
|
+
// Handle array index assignment
|
|
436
|
+
if (Array.isArray(current) && /^\d+$/.test(lastKey)) {
|
|
437
|
+
const index = parseInt(lastKey);
|
|
438
|
+
current[index] = value;
|
|
439
|
+
}
|
|
440
|
+
else {
|
|
441
|
+
current[lastKey] = value;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Delete nested field using dot notation
|
|
446
|
+
*/
|
|
447
|
+
deleteNestedField(obj, path) {
|
|
448
|
+
const keys = path.split('.');
|
|
449
|
+
const lastKey = keys.pop();
|
|
450
|
+
let current = obj;
|
|
451
|
+
for (const key of keys) {
|
|
452
|
+
if (!current || !(key in current))
|
|
453
|
+
return;
|
|
454
|
+
current = current[key];
|
|
455
|
+
}
|
|
456
|
+
if (current && typeof current === 'object') {
|
|
457
|
+
delete current[lastKey];
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* Extract minimal fields for different resource types
|
|
462
|
+
*/
|
|
463
|
+
extractMinimalFields(data) {
|
|
464
|
+
// Common minimal fields across all resource types
|
|
465
|
+
const commonFields = ['id', 'name', 'title', 'state', 'status'];
|
|
466
|
+
if (data.pull_request_id || (data.id && data.source && data.destination)) {
|
|
467
|
+
// Pull request minimal fields
|
|
468
|
+
return this.includeOnlyFields(data, [
|
|
469
|
+
'pull_request_id', 'id', 'title', 'state', 'author.display_name', 'created_on', 'updated_on'
|
|
470
|
+
]);
|
|
471
|
+
}
|
|
472
|
+
if (data.path !== undefined || data.contents) {
|
|
473
|
+
// File/directory minimal fields
|
|
474
|
+
return this.includeOnlyFields(data, [
|
|
475
|
+
'path', 'name', 'type', 'size', 'total_items'
|
|
476
|
+
]);
|
|
477
|
+
}
|
|
478
|
+
if (data.name && (data.target || data.heads)) {
|
|
479
|
+
// Branch minimal fields
|
|
480
|
+
return this.includeOnlyFields(data, [
|
|
481
|
+
'name', 'target.hash', 'type', 'heads'
|
|
482
|
+
]);
|
|
483
|
+
}
|
|
484
|
+
if (data.hash || data.message) {
|
|
485
|
+
// Commit minimal fields
|
|
486
|
+
return this.includeOnlyFields(data, [
|
|
487
|
+
'hash', 'message', 'author.display_name', 'date'
|
|
488
|
+
]);
|
|
489
|
+
}
|
|
490
|
+
if (Array.isArray(data) && data.length > 0) {
|
|
491
|
+
// Array of items - apply minimal to each
|
|
492
|
+
return data.map(item => this.extractMinimalFields(item));
|
|
493
|
+
}
|
|
494
|
+
// Default minimal extraction for unknown types
|
|
495
|
+
const result = {};
|
|
496
|
+
for (const field of commonFields) {
|
|
497
|
+
if (data[field] !== undefined) {
|
|
498
|
+
result[field] = data[field];
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
return Object.keys(result).length > 0 ? result : data;
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Extract summary fields for different resource types
|
|
505
|
+
*/
|
|
506
|
+
extractSummaryFields(data) {
|
|
507
|
+
if (data.pull_request_id || (data.id && data.source && data.destination)) {
|
|
508
|
+
// Pull request summary
|
|
509
|
+
return this.includeOnlyFields(data, [
|
|
510
|
+
'pull_request_id', 'id', 'title', 'description', 'state', 'author',
|
|
511
|
+
'reviewers', 'created_on', 'updated_on', 'source.branch.name', 'destination.branch.name'
|
|
512
|
+
]);
|
|
513
|
+
}
|
|
514
|
+
if (data.path !== undefined || data.contents) {
|
|
515
|
+
// File/directory summary
|
|
516
|
+
return this.includeOnlyFields(data, [
|
|
517
|
+
'path', 'branch', 'contents', 'total_items', 'size', 'mimeType'
|
|
518
|
+
]);
|
|
519
|
+
}
|
|
520
|
+
if (data.name && (data.target || data.heads)) {
|
|
521
|
+
// Branch summary
|
|
522
|
+
return this.includeOnlyFields(data, [
|
|
523
|
+
'name', 'target', 'heads', 'type'
|
|
524
|
+
]);
|
|
525
|
+
}
|
|
526
|
+
if (data.hash || data.message) {
|
|
527
|
+
// Commit summary
|
|
528
|
+
return this.includeOnlyFields(data, [
|
|
529
|
+
'hash', 'message', 'author', 'date', 'parents'
|
|
530
|
+
]);
|
|
531
|
+
}
|
|
532
|
+
if (data.files && Array.isArray(data.files)) {
|
|
533
|
+
// Diff summary
|
|
534
|
+
return this.includeOnlyFields(data, [
|
|
535
|
+
'files', 'stats', 'description'
|
|
536
|
+
]);
|
|
537
|
+
}
|
|
538
|
+
if (Array.isArray(data) && data.length > 0) {
|
|
539
|
+
// Array of items - apply summary to each
|
|
540
|
+
return data.map(item => this.extractSummaryFields(item));
|
|
541
|
+
}
|
|
542
|
+
return data;
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Extract metadata fields only
|
|
546
|
+
*/
|
|
547
|
+
extractMetadataFields(data) {
|
|
548
|
+
const metadataFields = [
|
|
549
|
+
'id', 'name', 'title', 'description', 'state', 'status', 'type',
|
|
550
|
+
'created_on', 'updated_on', 'author.display_name', 'author.uuid',
|
|
551
|
+
'size', 'mimeType', 'branch', 'hash', 'pull_request_id'
|
|
552
|
+
];
|
|
553
|
+
if (Array.isArray(data) && data.length > 0) {
|
|
554
|
+
// Array of items - apply metadata to each
|
|
555
|
+
return data.map(item => this.extractMetadataFields(item));
|
|
556
|
+
}
|
|
557
|
+
return this.includeOnlyFields(data, metadataFields);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
//# sourceMappingURL=handlers.js.map
|