@andrebuzeli/git-mcp 5.5.0 → 5.5.2
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/README.md +25 -0
- package/dist/config.d.ts +5 -131
- package/dist/config.js +28 -430
- package/dist/index.d.ts +1 -21
- package/dist/index.js +66 -144
- package/dist/providers/giteaProvider.d.ts +3 -0
- package/dist/providers/giteaProvider.js +12 -0
- package/dist/providers/githubProvider.d.ts +2 -0
- package/dist/providers/githubProvider.js +7 -0
- package/dist/providers/providerManager.d.ts +11 -0
- package/dist/providers/providerManager.js +48 -0
- package/dist/server.d.ts +6 -40
- package/dist/server.js +30 -700
- package/dist/tools/gitAnalytics.d.ts +29 -0
- package/dist/tools/gitAnalytics.js +72 -0
- package/dist/tools/gitArchive.d.ts +6 -0
- package/dist/tools/gitArchive.js +27 -0
- package/dist/tools/gitBackup.d.ts +10 -0
- package/dist/tools/gitBackup.js +44 -0
- package/dist/tools/gitBranches.d.ts +72 -0
- package/dist/tools/gitBranches.js +97 -0
- package/dist/tools/gitConfig.d.ts +34 -0
- package/dist/tools/gitConfig.js +73 -0
- package/dist/tools/gitFiles.d.ts +24 -0
- package/dist/tools/gitFiles.js +53 -0
- package/dist/tools/gitIssues.d.ts +21 -0
- package/dist/tools/gitIssues.js +193 -0
- package/dist/tools/gitMonitor.d.ts +51 -0
- package/dist/tools/gitMonitor.js +102 -0
- package/dist/tools/gitPackages.d.ts +6 -0
- package/dist/tools/gitPackages.js +28 -0
- package/dist/tools/gitPulls.d.ts +74 -0
- package/dist/tools/gitPulls.js +190 -0
- package/dist/tools/gitRelease.d.ts +34 -0
- package/dist/tools/gitRelease.js +99 -0
- package/dist/tools/gitRemote.d.ts +51 -0
- package/dist/tools/gitRemote.js +68 -0
- package/dist/tools/gitReset.d.ts +34 -0
- package/dist/tools/gitReset.js +64 -0
- package/dist/tools/gitStash.d.ts +41 -0
- package/dist/tools/gitStash.js +67 -0
- package/dist/tools/gitSync.d.ts +25 -0
- package/dist/tools/gitSync.js +51 -0
- package/dist/tools/gitTags.d.ts +30 -0
- package/dist/tools/gitTags.js +69 -0
- package/dist/tools/gitWorkflow.d.ts +69 -0
- package/dist/tools/gitWorkflow.js +129 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.js +2 -0
- package/dist/utils/errors.d.ts +13 -0
- package/dist/utils/errors.js +22 -0
- package/dist/utils/safetyController.d.ts +1 -0
- package/dist/utils/safetyController.js +15 -0
- package/package.json +7 -2
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/providers/base-provider.d.ts +0 -66
- package/dist/providers/base-provider.d.ts.map +0 -1
- package/dist/providers/base-provider.js +0 -65
- package/dist/providers/base-provider.js.map +0 -1
- package/dist/providers/gitea-provider.d.ts +0 -79
- package/dist/providers/gitea-provider.d.ts.map +0 -1
- package/dist/providers/gitea-provider.js +0 -576
- package/dist/providers/gitea-provider.js.map +0 -1
- package/dist/providers/github-provider.d.ts +0 -74
- package/dist/providers/github-provider.d.ts.map +0 -1
- package/dist/providers/github-provider.js +0 -683
- package/dist/providers/github-provider.js.map +0 -1
- package/dist/providers/index.d.ts +0 -13
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -35
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/provider-factory.d.ts +0 -49
- package/dist/providers/provider-factory.d.ts.map +0 -1
- package/dist/providers/provider-factory.js +0 -193
- package/dist/providers/provider-factory.js.map +0 -1
- package/dist/providers/provider-operation-handler.d.ts +0 -115
- package/dist/providers/provider-operation-handler.d.ts.map +0 -1
- package/dist/providers/provider-operation-handler.js +0 -449
- package/dist/providers/provider-operation-handler.js.map +0 -1
- package/dist/providers/types.d.ts +0 -200
- package/dist/providers/types.d.ts.map +0 -1
- package/dist/providers/types.js +0 -8
- package/dist/providers/types.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/tools/git-analytics.d.ts +0 -237
- package/dist/tools/git-analytics.d.ts.map +0 -1
- package/dist/tools/git-analytics.js +0 -828
- package/dist/tools/git-analytics.js.map +0 -1
- package/dist/tools/git-archive.d.ts +0 -113
- package/dist/tools/git-archive.d.ts.map +0 -1
- package/dist/tools/git-archive.js +0 -466
- package/dist/tools/git-archive.js.map +0 -1
- package/dist/tools/git-auto-monitor.d.ts +0 -180
- package/dist/tools/git-auto-monitor.d.ts.map +0 -1
- package/dist/tools/git-auto-monitor.js +0 -522
- package/dist/tools/git-auto-monitor.js.map +0 -1
- package/dist/tools/git-backup.d.ts +0 -105
- package/dist/tools/git-backup.d.ts.map +0 -1
- package/dist/tools/git-backup.js +0 -414
- package/dist/tools/git-backup.js.map +0 -1
- package/dist/tools/git-branches.d.ts +0 -183
- package/dist/tools/git-branches.d.ts.map +0 -1
- package/dist/tools/git-branches.js +0 -507
- package/dist/tools/git-branches.js.map +0 -1
- package/dist/tools/git-config.d.ts +0 -119
- package/dist/tools/git-config.d.ts.map +0 -1
- package/dist/tools/git-config.js +0 -449
- package/dist/tools/git-config.js.map +0 -1
- package/dist/tools/git-files.d.ts +0 -150
- package/dist/tools/git-files.d.ts.map +0 -1
- package/dist/tools/git-files.js +0 -536
- package/dist/tools/git-files.js.map +0 -1
- package/dist/tools/git-history.d.ts +0 -253
- package/dist/tools/git-history.d.ts.map +0 -1
- package/dist/tools/git-history.js +0 -824
- package/dist/tools/git-history.js.map +0 -1
- package/dist/tools/git-issues.d.ts +0 -164
- package/dist/tools/git-issues.d.ts.map +0 -1
- package/dist/tools/git-issues.js +0 -349
- package/dist/tools/git-issues.js.map +0 -1
- package/dist/tools/git-monitor.d.ts +0 -154
- package/dist/tools/git-monitor.d.ts.map +0 -1
- package/dist/tools/git-monitor.js +0 -531
- package/dist/tools/git-monitor.js.map +0 -1
- package/dist/tools/git-packages.d.ts +0 -157
- package/dist/tools/git-packages.d.ts.map +0 -1
- package/dist/tools/git-packages.js +0 -534
- package/dist/tools/git-packages.js.map +0 -1
- package/dist/tools/git-pulls.d.ts +0 -180
- package/dist/tools/git-pulls.d.ts.map +0 -1
- package/dist/tools/git-pulls.js +0 -378
- package/dist/tools/git-pulls.js.map +0 -1
- package/dist/tools/git-release.d.ts +0 -161
- package/dist/tools/git-release.d.ts.map +0 -1
- package/dist/tools/git-release.js +0 -466
- package/dist/tools/git-release.js.map +0 -1
- package/dist/tools/git-remote.d.ts +0 -128
- package/dist/tools/git-remote.d.ts.map +0 -1
- package/dist/tools/git-remote.js +0 -542
- package/dist/tools/git-remote.js.map +0 -1
- package/dist/tools/git-reset.d.ts +0 -120
- package/dist/tools/git-reset.d.ts.map +0 -1
- package/dist/tools/git-reset.js +0 -479
- package/dist/tools/git-reset.js.map +0 -1
- package/dist/tools/git-stash.d.ts +0 -124
- package/dist/tools/git-stash.d.ts.map +0 -1
- package/dist/tools/git-stash.js +0 -506
- package/dist/tools/git-stash.js.map +0 -1
- package/dist/tools/git-sync.d.ts +0 -154
- package/dist/tools/git-sync.d.ts.map +0 -1
- package/dist/tools/git-sync.js +0 -479
- package/dist/tools/git-sync.js.map +0 -1
- package/dist/tools/git-tags.d.ts +0 -136
- package/dist/tools/git-tags.d.ts.map +0 -1
- package/dist/tools/git-tags.js +0 -470
- package/dist/tools/git-tags.js.map +0 -1
- package/dist/tools/git-update.d.ts +0 -224
- package/dist/tools/git-update.d.ts.map +0 -1
- package/dist/tools/git-update.js +0 -948
- package/dist/tools/git-update.js.map +0 -1
- package/dist/tools/git-workflow.d.ts +0 -189
- package/dist/tools/git-workflow.d.ts.map +0 -1
- package/dist/tools/git-workflow.js +0 -551
- package/dist/tools/git-workflow.js.map +0 -1
- package/dist/utils/credential-manager.d.ts +0 -119
- package/dist/utils/credential-manager.d.ts.map +0 -1
- package/dist/utils/credential-manager.js +0 -450
- package/dist/utils/credential-manager.js.map +0 -1
- package/dist/utils/data-merger.d.ts +0 -49
- package/dist/utils/data-merger.d.ts.map +0 -1
- package/dist/utils/data-merger.js +0 -233
- package/dist/utils/data-merger.js.map +0 -1
- package/dist/utils/git-command-executor.d.ts +0 -330
- package/dist/utils/git-command-executor.d.ts.map +0 -1
- package/dist/utils/git-command-executor.js +0 -901
- package/dist/utils/git-command-executor.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -143
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -473
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/operation-error-handler.d.ts +0 -97
- package/dist/utils/operation-error-handler.d.ts.map +0 -1
- package/dist/utils/operation-error-handler.js +0 -367
- package/dist/utils/operation-error-handler.js.map +0 -1
- package/dist/utils/parameter-validator.d.ts +0 -49
- package/dist/utils/parameter-validator.d.ts.map +0 -1
- package/dist/utils/parameter-validator.js +0 -647
- package/dist/utils/parameter-validator.js.map +0 -1
- package/dist/utils/repository-checker.d.ts +0 -46
- package/dist/utils/repository-checker.d.ts.map +0 -1
- package/dist/utils/repository-checker.js +0 -151
- package/dist/utils/repository-checker.js.map +0 -1
- package/dist/utils/repository-detector.d.ts +0 -128
- package/dist/utils/repository-detector.d.ts.map +0 -1
- package/dist/utils/repository-detector.js +0 -422
- package/dist/utils/repository-detector.js.map +0 -1
- package/dist/utils/repository-sync.d.ts +0 -67
- package/dist/utils/repository-sync.d.ts.map +0 -1
- package/dist/utils/repository-sync.js +0 -344
- package/dist/utils/repository-sync.js.map +0 -1
- package/dist/utils/response-formatter.d.ts +0 -146
- package/dist/utils/response-formatter.d.ts.map +0 -1
- package/dist/utils/response-formatter.js +0 -378
- package/dist/utils/response-formatter.js.map +0 -1
- package/dist/utils/retry.d.ts +0 -12
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js +0 -28
- package/dist/utils/retry.js.map +0 -1
- package/dist/utils/safety-warnings.d.ts +0 -56
- package/dist/utils/safety-warnings.d.ts.map +0 -1
- package/dist/utils/safety-warnings.js +0 -330
- package/dist/utils/safety-warnings.js.map +0 -1
- package/dist/utils/terminal-controller.d.ts +0 -79
- package/dist/utils/terminal-controller.d.ts.map +0 -1
- package/dist/utils/terminal-controller.js +0 -291
- package/dist/utils/terminal-controller.js.map +0 -1
- package/dist/utils/user-friendly-formatter.d.ts +0 -45
- package/dist/utils/user-friendly-formatter.d.ts.map +0 -1
- package/dist/utils/user-friendly-formatter.js +0 -175
- package/dist/utils/user-friendly-formatter.js.map +0 -1
|
@@ -1,534 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Git Packages Tool
|
|
4
|
-
*
|
|
5
|
-
* Package management tool providing comprehensive Git package operations.
|
|
6
|
-
* Supports both local package operations and remote provider operations.
|
|
7
|
-
*
|
|
8
|
-
* Operations: list, get, create, update, delete, publish, download
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.GitPackagesTool = void 0;
|
|
12
|
-
const git_command_executor_js_1 = require("../utils/git-command-executor.js");
|
|
13
|
-
const parameter_validator_js_1 = require("../utils/parameter-validator.js");
|
|
14
|
-
const operation_error_handler_js_1 = require("../utils/operation-error-handler.js");
|
|
15
|
-
const provider_operation_handler_js_1 = require("../providers/provider-operation-handler.js");
|
|
16
|
-
const config_js_1 = require("../config.js");
|
|
17
|
-
class GitPackagesTool {
|
|
18
|
-
gitExecutor;
|
|
19
|
-
providerHandler;
|
|
20
|
-
constructor(providerConfig) {
|
|
21
|
-
this.gitExecutor = new git_command_executor_js_1.GitCommandExecutor();
|
|
22
|
-
if (providerConfig) {
|
|
23
|
-
this.providerHandler = new provider_operation_handler_js_1.ProviderOperationHandler(providerConfig);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Execute git-packages operation
|
|
28
|
-
*/
|
|
29
|
-
async execute(params) {
|
|
30
|
-
const startTime = Date.now();
|
|
31
|
-
try {
|
|
32
|
-
// Validate basic parameters
|
|
33
|
-
const validation = parameter_validator_js_1.ParameterValidator.validateToolParams('git-packages', params);
|
|
34
|
-
if (!validation.isValid) {
|
|
35
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('VALIDATION_ERROR', `Parameter validation failed: ${validation.errors.join(', ')}`, params.action, { validationErrors: validation.errors }, validation.suggestions);
|
|
36
|
-
}
|
|
37
|
-
// Validate operation-specific parameters
|
|
38
|
-
const operationValidation = parameter_validator_js_1.ParameterValidator.validateOperationParams('git-packages', params.action, params);
|
|
39
|
-
if (!operationValidation.isValid) {
|
|
40
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('VALIDATION_ERROR', `Operation validation failed: ${operationValidation.errors.join(', ')}`, params.action, { validationErrors: operationValidation.errors }, operationValidation.suggestions);
|
|
41
|
-
}
|
|
42
|
-
// Route to appropriate handler
|
|
43
|
-
const isRemoteOperation = this.isRemoteOperation(params.action);
|
|
44
|
-
if (isRemoteOperation) {
|
|
45
|
-
return await this.executeRemoteOperation(params, startTime);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return await this.executeLocalOperation(params, startTime);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
53
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('EXECUTION_ERROR', `Failed to execute ${params.action}: ${errorMessage}`, params.action, { error: errorMessage }, ['Check the error details and try again']);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Execute local Git package operations
|
|
58
|
-
*/
|
|
59
|
-
async executeLocalOperation(params, startTime) {
|
|
60
|
-
switch (params.action) {
|
|
61
|
-
case 'list':
|
|
62
|
-
return await this.handleListLocalPackages(params, startTime);
|
|
63
|
-
case 'get':
|
|
64
|
-
return await this.handleGetLocalPackage(params, startTime);
|
|
65
|
-
default:
|
|
66
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('UNSUPPORTED_LOCAL_OPERATION', `Local operation '${params.action}' is not supported. Use provider for remote package operations.`, params.action, {}, ['Specify a provider (github, gitea, or both) for remote package operations']);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Execute remote provider operations
|
|
71
|
-
*/
|
|
72
|
-
async executeRemoteOperation(params, startTime) {
|
|
73
|
-
if (!this.providerHandler) {
|
|
74
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('PROVIDER_NOT_CONFIGURED', 'Provider handler is not configured for remote operations', params.action, {}, ['Configure GitHub or Gitea provider to use remote operations']);
|
|
75
|
-
}
|
|
76
|
-
if (!params.provider) {
|
|
77
|
-
if (config_js_1.configManager.isUniversalMode()) {
|
|
78
|
-
params.provider = 'both';
|
|
79
|
-
console.error(`[Universal Mode] Auto-applying both providers for ${params.action}`);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('PROVIDER_REQUIRED', 'Provider parameter is required for remote package operations', params.action, {}, ['Specify provider as: github, gitea, or both']);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
const operation = {
|
|
86
|
-
provider: params.provider,
|
|
87
|
-
operation: this.mapActionToProviderOperation(params.action),
|
|
88
|
-
parameters: this.extractRemoteParameters(params),
|
|
89
|
-
requiresAuth: true,
|
|
90
|
-
isRemoteOperation: true
|
|
91
|
-
};
|
|
92
|
-
try {
|
|
93
|
-
const result = await this.providerHandler.executeOperation(operation);
|
|
94
|
-
return {
|
|
95
|
-
success: result.success,
|
|
96
|
-
data: result.partialFailure ? result : result.results[0]?.data,
|
|
97
|
-
error: result.success ? undefined : {
|
|
98
|
-
code: result.errors[0]?.error?.code || 'REMOTE_OPERATION_ERROR',
|
|
99
|
-
message: result.errors[0]?.error?.message || 'Remote operation failed',
|
|
100
|
-
details: result.errors,
|
|
101
|
-
suggestions: ['Check provider configuration and credentials']
|
|
102
|
-
},
|
|
103
|
-
metadata: {
|
|
104
|
-
provider: params.provider,
|
|
105
|
-
operation: params.action,
|
|
106
|
-
timestamp: new Date().toISOString(),
|
|
107
|
-
executionTime: Date.now() - startTime
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
113
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('REMOTE_OPERATION_ERROR', `Remote operation failed: ${errorMessage}`, params.action, { error: errorMessage }, ['Check provider configuration and network connectivity']);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Handle list local packages operation (checks for package files)
|
|
118
|
-
*/
|
|
119
|
-
async handleListLocalPackages(params, startTime) {
|
|
120
|
-
try {
|
|
121
|
-
const packages = [];
|
|
122
|
-
// Check for common package files
|
|
123
|
-
const packageFiles = [
|
|
124
|
-
{ file: 'package.json', type: 'npm' },
|
|
125
|
-
{ file: 'pom.xml', type: 'maven' },
|
|
126
|
-
{ file: 'build.gradle', type: 'gradle' },
|
|
127
|
-
{ file: 'Cargo.toml', type: 'cargo' },
|
|
128
|
-
{ file: 'composer.json', type: 'composer' },
|
|
129
|
-
{ file: 'setup.py', type: 'python' },
|
|
130
|
-
{ file: 'pyproject.toml', type: 'python' },
|
|
131
|
-
{ file: 'Dockerfile', type: 'container' },
|
|
132
|
-
{ file: 'Chart.yaml', type: 'helm' },
|
|
133
|
-
{ file: 'pubspec.yaml', type: 'dart' },
|
|
134
|
-
{ file: 'go.mod', type: 'go' }
|
|
135
|
-
];
|
|
136
|
-
for (const { file, type } of packageFiles) {
|
|
137
|
-
const filePath = `${params.projectPath}/${file}`;
|
|
138
|
-
try {
|
|
139
|
-
// Check if file exists using git ls-files or simple file check
|
|
140
|
-
const result = await this.gitExecutor.executeGitCommand('ls-files', [file], params.projectPath);
|
|
141
|
-
if (result.success && result.stdout.trim()) {
|
|
142
|
-
// File exists in git, try to read package info
|
|
143
|
-
const packageInfo = await this.extractPackageInfo(params.projectPath, file, type);
|
|
144
|
-
if (packageInfo) {
|
|
145
|
-
packages.push({
|
|
146
|
-
type,
|
|
147
|
-
file,
|
|
148
|
-
...packageInfo,
|
|
149
|
-
isLocal: true
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
catch (error) {
|
|
155
|
-
// Continue checking other files
|
|
156
|
-
continue;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return {
|
|
160
|
-
success: true,
|
|
161
|
-
data: {
|
|
162
|
-
packages,
|
|
163
|
-
total: packages.length,
|
|
164
|
-
note: 'These are local package definitions. Use a provider for remote package registry operations.'
|
|
165
|
-
},
|
|
166
|
-
metadata: {
|
|
167
|
-
operation: 'list',
|
|
168
|
-
timestamp: new Date().toISOString(),
|
|
169
|
-
executionTime: Date.now() - startTime
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
catch (error) {
|
|
174
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
175
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('LIST_PACKAGES_ERROR', `Failed to list local packages: ${errorMessage}`, 'list', { error: errorMessage, projectPath: params.projectPath });
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Handle get local package operation (gets package file info)
|
|
180
|
-
*/
|
|
181
|
-
async handleGetLocalPackage(params, startTime) {
|
|
182
|
-
try {
|
|
183
|
-
if (!params.packageName && !params.packageType) {
|
|
184
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('MISSING_PARAMETER', 'Either packageName or packageType is required for get package operation', 'get', {}, [
|
|
185
|
-
'Provide packageName with the actual file path (e.g., "package.json", "pom.xml")',
|
|
186
|
-
'Or provide packageType to auto-detect common package files (e.g., "npm", "maven")',
|
|
187
|
-
'Note: packageName should be the file name, not the package name from the file'
|
|
188
|
-
]);
|
|
189
|
-
}
|
|
190
|
-
// Determine package file based on name or type
|
|
191
|
-
let packageFile = params.packageName;
|
|
192
|
-
let packageType = params.packageType;
|
|
193
|
-
if (!packageFile && packageType) {
|
|
194
|
-
const typeToFile = {
|
|
195
|
-
'npm': 'package.json',
|
|
196
|
-
'maven': 'pom.xml',
|
|
197
|
-
'gradle': 'build.gradle',
|
|
198
|
-
'cargo': 'Cargo.toml',
|
|
199
|
-
'composer': 'composer.json',
|
|
200
|
-
'python': 'setup.py',
|
|
201
|
-
'container': 'Dockerfile',
|
|
202
|
-
'helm': 'Chart.yaml',
|
|
203
|
-
'dart': 'pubspec.yaml',
|
|
204
|
-
'go': 'go.mod'
|
|
205
|
-
};
|
|
206
|
-
packageFile = typeToFile[packageType];
|
|
207
|
-
}
|
|
208
|
-
if (!packageFile) {
|
|
209
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('INVALID_PACKAGE_TYPE', `Unknown package type: ${packageType}`, 'get', { packageType }, ['Use supported package types: npm, maven, gradle, cargo, composer, python, container, helm, dart, go']);
|
|
210
|
-
}
|
|
211
|
-
// Check if package file exists
|
|
212
|
-
const result = await this.gitExecutor.executeGitCommand('ls-files', [packageFile], params.projectPath);
|
|
213
|
-
if (!result.success || !result.stdout.trim()) {
|
|
214
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('PACKAGE_NOT_FOUND', `Package file '${packageFile}' not found in repository`, 'get', { packageFile }, [
|
|
215
|
-
'Check if the package file exists in the repository',
|
|
216
|
-
'Verify the file is tracked by git (not in .gitignore)',
|
|
217
|
-
'Use correct file name (e.g., "package.json" not "@andrebuzeli/git-mcp")',
|
|
218
|
-
'Try using packageType parameter instead to auto-detect common files'
|
|
219
|
-
]);
|
|
220
|
-
}
|
|
221
|
-
// Extract package information
|
|
222
|
-
const packageInfo = await this.extractPackageInfo(params.projectPath, packageFile, packageType);
|
|
223
|
-
if (!packageInfo) {
|
|
224
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('PACKAGE_READ_ERROR', `Failed to read package information from '${packageFile}'`, 'get', { packageFile }, ['Check if the package file is valid and readable']);
|
|
225
|
-
}
|
|
226
|
-
return {
|
|
227
|
-
success: true,
|
|
228
|
-
data: {
|
|
229
|
-
file: packageFile,
|
|
230
|
-
type: packageType,
|
|
231
|
-
...packageInfo,
|
|
232
|
-
isLocal: true,
|
|
233
|
-
note: 'This is a local package definition. Use a provider for remote package registry operations.'
|
|
234
|
-
},
|
|
235
|
-
metadata: {
|
|
236
|
-
operation: 'get',
|
|
237
|
-
timestamp: new Date().toISOString(),
|
|
238
|
-
executionTime: Date.now() - startTime
|
|
239
|
-
}
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
catch (error) {
|
|
243
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
244
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('GET_PACKAGE_ERROR', `Failed to get local package information: ${errorMessage}`, 'get', { error: errorMessage, projectPath: params.projectPath });
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Extract package information from package files
|
|
249
|
-
*/
|
|
250
|
-
async extractPackageInfo(projectPath, file, type) {
|
|
251
|
-
try {
|
|
252
|
-
const result = await this.gitExecutor.executeGitCommand('show', [`HEAD:${file}`], projectPath);
|
|
253
|
-
if (!result.success) {
|
|
254
|
-
return null;
|
|
255
|
-
}
|
|
256
|
-
const content = result.stdout;
|
|
257
|
-
switch (file) {
|
|
258
|
-
case 'package.json':
|
|
259
|
-
try {
|
|
260
|
-
const pkg = JSON.parse(content);
|
|
261
|
-
return {
|
|
262
|
-
name: pkg.name,
|
|
263
|
-
version: pkg.version,
|
|
264
|
-
description: pkg.description,
|
|
265
|
-
author: pkg.author,
|
|
266
|
-
license: pkg.license,
|
|
267
|
-
dependencies: pkg.dependencies ? Object.keys(pkg.dependencies).length : 0,
|
|
268
|
-
devDependencies: pkg.devDependencies ? Object.keys(pkg.devDependencies).length : 0,
|
|
269
|
-
scripts: pkg.scripts ? Object.keys(pkg.scripts) : [],
|
|
270
|
-
repository: pkg.repository,
|
|
271
|
-
homepage: pkg.homepage
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
catch {
|
|
275
|
-
return { name: 'Invalid package.json', error: 'Failed to parse JSON' };
|
|
276
|
-
}
|
|
277
|
-
case 'pom.xml':
|
|
278
|
-
// Basic XML parsing for Maven
|
|
279
|
-
const groupIdMatch = content.match(/<groupId>(.*?)<\/groupId>/);
|
|
280
|
-
const artifactIdMatch = content.match(/<artifactId>(.*?)<\/artifactId>/);
|
|
281
|
-
const versionMatch = content.match(/<version>(.*?)<\/version>/);
|
|
282
|
-
const nameMatch = content.match(/<name>(.*?)<\/name>/);
|
|
283
|
-
const descriptionMatch = content.match(/<description>(.*?)<\/description>/);
|
|
284
|
-
return {
|
|
285
|
-
groupId: groupIdMatch?.[1],
|
|
286
|
-
artifactId: artifactIdMatch?.[1],
|
|
287
|
-
name: nameMatch?.[1] || artifactIdMatch?.[1],
|
|
288
|
-
version: versionMatch?.[1],
|
|
289
|
-
description: descriptionMatch?.[1]
|
|
290
|
-
};
|
|
291
|
-
case 'Cargo.toml':
|
|
292
|
-
// Basic TOML parsing for Rust
|
|
293
|
-
const nameTomlMatch = content.match(/name\s*=\s*"([^"]+)"/);
|
|
294
|
-
const versionTomlMatch = content.match(/version\s*=\s*"([^"]+)"/);
|
|
295
|
-
const descriptionTomlMatch = content.match(/description\s*=\s*"([^"]+)"/);
|
|
296
|
-
const authorTomlMatch = content.match(/authors\s*=\s*\[(.*?)\]/s);
|
|
297
|
-
return {
|
|
298
|
-
name: nameTomlMatch?.[1],
|
|
299
|
-
version: versionTomlMatch?.[1],
|
|
300
|
-
description: descriptionTomlMatch?.[1],
|
|
301
|
-
authors: authorTomlMatch?.[1]?.split(',').map((a) => a.trim().replace(/"/g, ''))
|
|
302
|
-
};
|
|
303
|
-
case 'composer.json':
|
|
304
|
-
try {
|
|
305
|
-
const composer = JSON.parse(content);
|
|
306
|
-
return {
|
|
307
|
-
name: composer.name,
|
|
308
|
-
version: composer.version,
|
|
309
|
-
description: composer.description,
|
|
310
|
-
type: composer.type,
|
|
311
|
-
license: composer.license,
|
|
312
|
-
authors: composer.authors,
|
|
313
|
-
require: composer.require ? Object.keys(composer.require).length : 0,
|
|
314
|
-
requireDev: composer['require-dev'] ? Object.keys(composer['require-dev']).length : 0
|
|
315
|
-
};
|
|
316
|
-
}
|
|
317
|
-
catch {
|
|
318
|
-
return { name: 'Invalid composer.json', error: 'Failed to parse JSON' };
|
|
319
|
-
}
|
|
320
|
-
case 'Chart.yaml':
|
|
321
|
-
// Basic YAML parsing for Helm
|
|
322
|
-
const chartNameMatch = content.match(/name:\s*(.+)/);
|
|
323
|
-
const chartVersionMatch = content.match(/version:\s*(.+)/);
|
|
324
|
-
const chartDescMatch = content.match(/description:\s*(.+)/);
|
|
325
|
-
const appVersionMatch = content.match(/appVersion:\s*(.+)/);
|
|
326
|
-
return {
|
|
327
|
-
name: chartNameMatch?.[1]?.trim(),
|
|
328
|
-
version: chartVersionMatch?.[1]?.trim(),
|
|
329
|
-
description: chartDescMatch?.[1]?.trim(),
|
|
330
|
-
appVersion: appVersionMatch?.[1]?.trim()
|
|
331
|
-
};
|
|
332
|
-
case 'go.mod':
|
|
333
|
-
const moduleMatch = content.match(/module\s+(.+)/);
|
|
334
|
-
const goVersionMatch = content.match(/go\s+(.+)/);
|
|
335
|
-
return {
|
|
336
|
-
module: moduleMatch?.[1]?.trim(),
|
|
337
|
-
goVersion: goVersionMatch?.[1]?.trim(),
|
|
338
|
-
name: moduleMatch?.[1]?.split('/').pop()
|
|
339
|
-
};
|
|
340
|
-
default:
|
|
341
|
-
return {
|
|
342
|
-
name: file,
|
|
343
|
-
type: type || 'unknown',
|
|
344
|
-
size: content.length
|
|
345
|
-
};
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
catch (error) {
|
|
349
|
-
return null;
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
/**
|
|
353
|
-
* Check if operation is a remote operation
|
|
354
|
-
*/
|
|
355
|
-
isRemoteOperation(action) {
|
|
356
|
-
// Most package operations require remote provider APIs
|
|
357
|
-
const remoteOperations = ['create', 'update', 'delete', 'publish', 'download'];
|
|
358
|
-
return remoteOperations.includes(action);
|
|
359
|
-
}
|
|
360
|
-
/**
|
|
361
|
-
* Extract parameters for remote operations
|
|
362
|
-
*/
|
|
363
|
-
extractRemoteParameters(params) {
|
|
364
|
-
const remoteParams = {
|
|
365
|
-
projectPath: params.projectPath
|
|
366
|
-
};
|
|
367
|
-
// Common parameters
|
|
368
|
-
if (params.repo)
|
|
369
|
-
remoteParams.repo = params.repo;
|
|
370
|
-
if (params.packageName)
|
|
371
|
-
remoteParams.package_name = params.packageName;
|
|
372
|
-
if (params.packageType)
|
|
373
|
-
remoteParams.package_type = params.packageType;
|
|
374
|
-
if (params.version)
|
|
375
|
-
remoteParams.version = params.version;
|
|
376
|
-
// Operation-specific parameters
|
|
377
|
-
switch (params.action) {
|
|
378
|
-
case 'list':
|
|
379
|
-
if (params.limit)
|
|
380
|
-
remoteParams.per_page = params.limit;
|
|
381
|
-
if (params.packageType)
|
|
382
|
-
remoteParams.package_type = params.packageType;
|
|
383
|
-
if (params.query)
|
|
384
|
-
remoteParams.q = params.query;
|
|
385
|
-
if (params.includeVersions !== undefined)
|
|
386
|
-
remoteParams.include_versions = params.includeVersions;
|
|
387
|
-
break;
|
|
388
|
-
case 'get':
|
|
389
|
-
// Get operations need packageName (already handled above)
|
|
390
|
-
if (params.includeVersions !== undefined)
|
|
391
|
-
remoteParams.include_versions = params.includeVersions;
|
|
392
|
-
break;
|
|
393
|
-
case 'create':
|
|
394
|
-
if (params.description)
|
|
395
|
-
remoteParams.description = params.description;
|
|
396
|
-
if (params.visibility)
|
|
397
|
-
remoteParams.visibility = params.visibility;
|
|
398
|
-
if (params.packageData)
|
|
399
|
-
remoteParams.package_data = params.packageData;
|
|
400
|
-
if (params.tags)
|
|
401
|
-
remoteParams.tags = params.tags;
|
|
402
|
-
break;
|
|
403
|
-
case 'update':
|
|
404
|
-
if (params.description)
|
|
405
|
-
remoteParams.description = params.description;
|
|
406
|
-
if (params.visibility)
|
|
407
|
-
remoteParams.visibility = params.visibility;
|
|
408
|
-
if (params.packageData)
|
|
409
|
-
remoteParams.package_data = params.packageData;
|
|
410
|
-
if (params.tags)
|
|
411
|
-
remoteParams.tags = params.tags;
|
|
412
|
-
break;
|
|
413
|
-
case 'delete':
|
|
414
|
-
// Delete operations need packageName and version (already handled above)
|
|
415
|
-
break;
|
|
416
|
-
case 'publish':
|
|
417
|
-
if (params.registry)
|
|
418
|
-
remoteParams.registry = params.registry;
|
|
419
|
-
if (params.packageData)
|
|
420
|
-
remoteParams.package_data = params.packageData;
|
|
421
|
-
break;
|
|
422
|
-
case 'download':
|
|
423
|
-
if (params.downloadPath)
|
|
424
|
-
remoteParams.download_path = params.downloadPath;
|
|
425
|
-
if (params.format)
|
|
426
|
-
remoteParams.format = params.format;
|
|
427
|
-
break;
|
|
428
|
-
}
|
|
429
|
-
return remoteParams;
|
|
430
|
-
}
|
|
431
|
-
/**
|
|
432
|
-
* Map git-packages actions to provider operations
|
|
433
|
-
*/
|
|
434
|
-
mapActionToProviderOperation(action) {
|
|
435
|
-
const actionMap = {
|
|
436
|
-
'list': 'package-list',
|
|
437
|
-
'get': 'package-get',
|
|
438
|
-
'create': 'package-create',
|
|
439
|
-
'update': 'package-update',
|
|
440
|
-
'delete': 'package-delete',
|
|
441
|
-
'publish': 'package-publish',
|
|
442
|
-
'download': 'package-download'
|
|
443
|
-
};
|
|
444
|
-
return actionMap[action] || action;
|
|
445
|
-
}
|
|
446
|
-
/**
|
|
447
|
-
* Get tool schema for MCP registration
|
|
448
|
-
*/
|
|
449
|
-
static getToolSchema() {
|
|
450
|
-
return {
|
|
451
|
-
name: 'git-packages',
|
|
452
|
-
description: 'Git package management tool for package operations. Supports list, get, create, update, delete, publish, and download operations. Local operations work with package files, remote operations require a provider. In universal mode (GIT_MCP_MODE=universal), automatically executes on both GitHub and Gitea providers.',
|
|
453
|
-
inputSchema: {
|
|
454
|
-
type: 'object',
|
|
455
|
-
properties: {
|
|
456
|
-
action: {
|
|
457
|
-
type: 'string',
|
|
458
|
-
enum: ['list', 'get', 'create', 'update', 'delete', 'publish', 'download'],
|
|
459
|
-
description: 'The package operation to perform'
|
|
460
|
-
},
|
|
461
|
-
projectPath: {
|
|
462
|
-
type: 'string',
|
|
463
|
-
description: 'Absolute path to the project directory'
|
|
464
|
-
},
|
|
465
|
-
packageName: {
|
|
466
|
-
type: 'string',
|
|
467
|
-
description: 'Name of the package file (e.g., "package.json", "pom.xml") - NOT the package name from inside the file (required for most operations)'
|
|
468
|
-
},
|
|
469
|
-
packageType: {
|
|
470
|
-
type: 'string',
|
|
471
|
-
description: 'Type of package (npm, maven, container, etc.)'
|
|
472
|
-
},
|
|
473
|
-
version: {
|
|
474
|
-
type: 'string',
|
|
475
|
-
description: 'Package version (for get, create, update, delete, publish, download)'
|
|
476
|
-
},
|
|
477
|
-
description: {
|
|
478
|
-
type: 'string',
|
|
479
|
-
description: 'Package description (for create/update)'
|
|
480
|
-
},
|
|
481
|
-
visibility: {
|
|
482
|
-
type: 'string',
|
|
483
|
-
enum: ['public', 'private', 'internal'],
|
|
484
|
-
description: 'Package visibility (for create/update)'
|
|
485
|
-
},
|
|
486
|
-
packageData: {
|
|
487
|
-
type: 'object',
|
|
488
|
-
description: 'Package content/metadata (for create/update/publish)'
|
|
489
|
-
},
|
|
490
|
-
tags: {
|
|
491
|
-
type: 'array',
|
|
492
|
-
items: { type: 'string' },
|
|
493
|
-
description: 'Package tags (for create/update)'
|
|
494
|
-
},
|
|
495
|
-
downloadPath: {
|
|
496
|
-
type: 'string',
|
|
497
|
-
description: 'Path to save downloaded package (for download)'
|
|
498
|
-
},
|
|
499
|
-
format: {
|
|
500
|
-
type: 'string',
|
|
501
|
-
description: 'Package format for download (for download)'
|
|
502
|
-
},
|
|
503
|
-
registry: {
|
|
504
|
-
type: 'string',
|
|
505
|
-
description: 'Target registry for publishing (for publish)'
|
|
506
|
-
},
|
|
507
|
-
force: {
|
|
508
|
-
type: 'boolean',
|
|
509
|
-
description: 'Force operation (for delete, update)'
|
|
510
|
-
},
|
|
511
|
-
includeVersions: {
|
|
512
|
-
type: 'boolean',
|
|
513
|
-
description: 'Include version history (for list, get)'
|
|
514
|
-
},
|
|
515
|
-
repo: {
|
|
516
|
-
type: 'string',
|
|
517
|
-
description: 'Repository name (for remote operations)'
|
|
518
|
-
},
|
|
519
|
-
limit: {
|
|
520
|
-
type: 'number',
|
|
521
|
-
description: 'Maximum number of packages to return (for list)'
|
|
522
|
-
},
|
|
523
|
-
query: {
|
|
524
|
-
type: 'string',
|
|
525
|
-
description: 'Search query for packages (for list)'
|
|
526
|
-
}
|
|
527
|
-
},
|
|
528
|
-
required: ['action', 'projectPath']
|
|
529
|
-
}
|
|
530
|
-
};
|
|
531
|
-
}
|
|
532
|
-
}
|
|
533
|
-
exports.GitPackagesTool = GitPackagesTool;
|
|
534
|
-
//# sourceMappingURL=git-packages.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-packages.js","sourceRoot":"","sources":["../../src/tools/git-packages.ts"],"names":[],"mappings":"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"}
|