@andrebuzeli/git-mcp 5.5.1 → 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.
Files changed (224) hide show
  1. package/README.md +25 -0
  2. package/dist/config.d.ts +5 -131
  3. package/dist/config.js +28 -430
  4. package/dist/index.d.ts +1 -21
  5. package/dist/index.js +66 -144
  6. package/dist/providers/giteaProvider.d.ts +3 -0
  7. package/dist/providers/giteaProvider.js +12 -0
  8. package/dist/providers/githubProvider.d.ts +2 -0
  9. package/dist/providers/githubProvider.js +7 -0
  10. package/dist/providers/providerManager.d.ts +11 -0
  11. package/dist/providers/providerManager.js +48 -0
  12. package/dist/server.d.ts +6 -40
  13. package/dist/server.js +30 -700
  14. package/dist/tools/gitAnalytics.d.ts +29 -0
  15. package/dist/tools/gitAnalytics.js +72 -0
  16. package/dist/tools/gitArchive.d.ts +6 -0
  17. package/dist/tools/gitArchive.js +27 -0
  18. package/dist/tools/gitBackup.d.ts +10 -0
  19. package/dist/tools/gitBackup.js +44 -0
  20. package/dist/tools/gitBranches.d.ts +72 -0
  21. package/dist/tools/gitBranches.js +97 -0
  22. package/dist/tools/gitConfig.d.ts +34 -0
  23. package/dist/tools/gitConfig.js +73 -0
  24. package/dist/tools/gitFiles.d.ts +24 -0
  25. package/dist/tools/gitFiles.js +53 -0
  26. package/dist/tools/gitIssues.d.ts +21 -0
  27. package/dist/tools/gitIssues.js +193 -0
  28. package/dist/tools/gitMonitor.d.ts +51 -0
  29. package/dist/tools/gitMonitor.js +102 -0
  30. package/dist/tools/gitPackages.d.ts +6 -0
  31. package/dist/tools/gitPackages.js +28 -0
  32. package/dist/tools/gitPulls.d.ts +74 -0
  33. package/dist/tools/gitPulls.js +190 -0
  34. package/dist/tools/gitRelease.d.ts +34 -0
  35. package/dist/tools/gitRelease.js +99 -0
  36. package/dist/tools/gitRemote.d.ts +51 -0
  37. package/dist/tools/gitRemote.js +68 -0
  38. package/dist/tools/gitReset.d.ts +34 -0
  39. package/dist/tools/gitReset.js +64 -0
  40. package/dist/tools/gitStash.d.ts +41 -0
  41. package/dist/tools/gitStash.js +67 -0
  42. package/dist/tools/gitSync.d.ts +25 -0
  43. package/dist/tools/gitSync.js +51 -0
  44. package/dist/tools/gitTags.d.ts +30 -0
  45. package/dist/tools/gitTags.js +69 -0
  46. package/dist/tools/gitWorkflow.d.ts +69 -0
  47. package/dist/tools/gitWorkflow.js +129 -0
  48. package/dist/types.d.ts +10 -0
  49. package/dist/types.js +2 -0
  50. package/dist/utils/errors.d.ts +13 -0
  51. package/dist/utils/errors.js +22 -0
  52. package/dist/utils/safetyController.d.ts +1 -0
  53. package/dist/utils/safetyController.js +15 -0
  54. package/package.json +7 -2
  55. package/dist/config.d.ts.map +0 -1
  56. package/dist/config.js.map +0 -1
  57. package/dist/index.d.ts.map +0 -1
  58. package/dist/index.js.map +0 -1
  59. package/dist/providers/base-provider.d.ts +0 -66
  60. package/dist/providers/base-provider.d.ts.map +0 -1
  61. package/dist/providers/base-provider.js +0 -65
  62. package/dist/providers/base-provider.js.map +0 -1
  63. package/dist/providers/gitea-provider.d.ts +0 -79
  64. package/dist/providers/gitea-provider.d.ts.map +0 -1
  65. package/dist/providers/gitea-provider.js +0 -576
  66. package/dist/providers/gitea-provider.js.map +0 -1
  67. package/dist/providers/github-provider.d.ts +0 -74
  68. package/dist/providers/github-provider.d.ts.map +0 -1
  69. package/dist/providers/github-provider.js +0 -683
  70. package/dist/providers/github-provider.js.map +0 -1
  71. package/dist/providers/index.d.ts +0 -13
  72. package/dist/providers/index.d.ts.map +0 -1
  73. package/dist/providers/index.js +0 -35
  74. package/dist/providers/index.js.map +0 -1
  75. package/dist/providers/provider-factory.d.ts +0 -49
  76. package/dist/providers/provider-factory.d.ts.map +0 -1
  77. package/dist/providers/provider-factory.js +0 -193
  78. package/dist/providers/provider-factory.js.map +0 -1
  79. package/dist/providers/provider-operation-handler.d.ts +0 -115
  80. package/dist/providers/provider-operation-handler.d.ts.map +0 -1
  81. package/dist/providers/provider-operation-handler.js +0 -449
  82. package/dist/providers/provider-operation-handler.js.map +0 -1
  83. package/dist/providers/types.d.ts +0 -200
  84. package/dist/providers/types.d.ts.map +0 -1
  85. package/dist/providers/types.js +0 -8
  86. package/dist/providers/types.js.map +0 -1
  87. package/dist/server.d.ts.map +0 -1
  88. package/dist/server.js.map +0 -1
  89. package/dist/tools/git-analytics.d.ts +0 -237
  90. package/dist/tools/git-analytics.d.ts.map +0 -1
  91. package/dist/tools/git-analytics.js +0 -819
  92. package/dist/tools/git-analytics.js.map +0 -1
  93. package/dist/tools/git-archive.d.ts +0 -113
  94. package/dist/tools/git-archive.d.ts.map +0 -1
  95. package/dist/tools/git-archive.js +0 -466
  96. package/dist/tools/git-archive.js.map +0 -1
  97. package/dist/tools/git-auto-monitor.d.ts +0 -180
  98. package/dist/tools/git-auto-monitor.d.ts.map +0 -1
  99. package/dist/tools/git-auto-monitor.js +0 -522
  100. package/dist/tools/git-auto-monitor.js.map +0 -1
  101. package/dist/tools/git-backup.d.ts +0 -105
  102. package/dist/tools/git-backup.d.ts.map +0 -1
  103. package/dist/tools/git-backup.js +0 -414
  104. package/dist/tools/git-backup.js.map +0 -1
  105. package/dist/tools/git-branches.d.ts +0 -183
  106. package/dist/tools/git-branches.d.ts.map +0 -1
  107. package/dist/tools/git-branches.js +0 -498
  108. package/dist/tools/git-branches.js.map +0 -1
  109. package/dist/tools/git-config.d.ts +0 -119
  110. package/dist/tools/git-config.d.ts.map +0 -1
  111. package/dist/tools/git-config.js +0 -449
  112. package/dist/tools/git-config.js.map +0 -1
  113. package/dist/tools/git-files.d.ts +0 -150
  114. package/dist/tools/git-files.d.ts.map +0 -1
  115. package/dist/tools/git-files.js +0 -527
  116. package/dist/tools/git-files.js.map +0 -1
  117. package/dist/tools/git-history.d.ts +0 -253
  118. package/dist/tools/git-history.d.ts.map +0 -1
  119. package/dist/tools/git-history.js +0 -824
  120. package/dist/tools/git-history.js.map +0 -1
  121. package/dist/tools/git-issues.d.ts +0 -164
  122. package/dist/tools/git-issues.d.ts.map +0 -1
  123. package/dist/tools/git-issues.js +0 -340
  124. package/dist/tools/git-issues.js.map +0 -1
  125. package/dist/tools/git-monitor.d.ts +0 -154
  126. package/dist/tools/git-monitor.d.ts.map +0 -1
  127. package/dist/tools/git-monitor.js +0 -531
  128. package/dist/tools/git-monitor.js.map +0 -1
  129. package/dist/tools/git-packages.d.ts +0 -157
  130. package/dist/tools/git-packages.d.ts.map +0 -1
  131. package/dist/tools/git-packages.js +0 -534
  132. package/dist/tools/git-packages.js.map +0 -1
  133. package/dist/tools/git-pulls.d.ts +0 -180
  134. package/dist/tools/git-pulls.d.ts.map +0 -1
  135. package/dist/tools/git-pulls.js +0 -369
  136. package/dist/tools/git-pulls.js.map +0 -1
  137. package/dist/tools/git-release.d.ts +0 -161
  138. package/dist/tools/git-release.d.ts.map +0 -1
  139. package/dist/tools/git-release.js +0 -466
  140. package/dist/tools/git-release.js.map +0 -1
  141. package/dist/tools/git-remote.d.ts +0 -128
  142. package/dist/tools/git-remote.d.ts.map +0 -1
  143. package/dist/tools/git-remote.js +0 -542
  144. package/dist/tools/git-remote.js.map +0 -1
  145. package/dist/tools/git-reset.d.ts +0 -120
  146. package/dist/tools/git-reset.d.ts.map +0 -1
  147. package/dist/tools/git-reset.js +0 -479
  148. package/dist/tools/git-reset.js.map +0 -1
  149. package/dist/tools/git-stash.d.ts +0 -124
  150. package/dist/tools/git-stash.d.ts.map +0 -1
  151. package/dist/tools/git-stash.js +0 -506
  152. package/dist/tools/git-stash.js.map +0 -1
  153. package/dist/tools/git-sync.d.ts +0 -154
  154. package/dist/tools/git-sync.d.ts.map +0 -1
  155. package/dist/tools/git-sync.js +0 -479
  156. package/dist/tools/git-sync.js.map +0 -1
  157. package/dist/tools/git-tags.d.ts +0 -136
  158. package/dist/tools/git-tags.d.ts.map +0 -1
  159. package/dist/tools/git-tags.js +0 -461
  160. package/dist/tools/git-tags.js.map +0 -1
  161. package/dist/tools/git-update.d.ts +0 -224
  162. package/dist/tools/git-update.d.ts.map +0 -1
  163. package/dist/tools/git-update.js +0 -948
  164. package/dist/tools/git-update.js.map +0 -1
  165. package/dist/tools/git-workflow.d.ts +0 -189
  166. package/dist/tools/git-workflow.d.ts.map +0 -1
  167. package/dist/tools/git-workflow.js +0 -542
  168. package/dist/tools/git-workflow.js.map +0 -1
  169. package/dist/utils/credential-manager.d.ts +0 -119
  170. package/dist/utils/credential-manager.d.ts.map +0 -1
  171. package/dist/utils/credential-manager.js +0 -450
  172. package/dist/utils/credential-manager.js.map +0 -1
  173. package/dist/utils/data-merger.d.ts +0 -49
  174. package/dist/utils/data-merger.d.ts.map +0 -1
  175. package/dist/utils/data-merger.js +0 -233
  176. package/dist/utils/data-merger.js.map +0 -1
  177. package/dist/utils/git-command-executor.d.ts +0 -330
  178. package/dist/utils/git-command-executor.d.ts.map +0 -1
  179. package/dist/utils/git-command-executor.js +0 -901
  180. package/dist/utils/git-command-executor.js.map +0 -1
  181. package/dist/utils/logger.d.ts +0 -143
  182. package/dist/utils/logger.d.ts.map +0 -1
  183. package/dist/utils/logger.js +0 -473
  184. package/dist/utils/logger.js.map +0 -1
  185. package/dist/utils/operation-error-handler.d.ts +0 -97
  186. package/dist/utils/operation-error-handler.d.ts.map +0 -1
  187. package/dist/utils/operation-error-handler.js +0 -367
  188. package/dist/utils/operation-error-handler.js.map +0 -1
  189. package/dist/utils/parameter-validator.d.ts +0 -49
  190. package/dist/utils/parameter-validator.d.ts.map +0 -1
  191. package/dist/utils/parameter-validator.js +0 -647
  192. package/dist/utils/parameter-validator.js.map +0 -1
  193. package/dist/utils/repository-checker.d.ts +0 -46
  194. package/dist/utils/repository-checker.d.ts.map +0 -1
  195. package/dist/utils/repository-checker.js +0 -151
  196. package/dist/utils/repository-checker.js.map +0 -1
  197. package/dist/utils/repository-detector.d.ts +0 -128
  198. package/dist/utils/repository-detector.d.ts.map +0 -1
  199. package/dist/utils/repository-detector.js +0 -422
  200. package/dist/utils/repository-detector.js.map +0 -1
  201. package/dist/utils/repository-sync.d.ts +0 -67
  202. package/dist/utils/repository-sync.d.ts.map +0 -1
  203. package/dist/utils/repository-sync.js +0 -344
  204. package/dist/utils/repository-sync.js.map +0 -1
  205. package/dist/utils/response-formatter.d.ts +0 -146
  206. package/dist/utils/response-formatter.d.ts.map +0 -1
  207. package/dist/utils/response-formatter.js +0 -378
  208. package/dist/utils/response-formatter.js.map +0 -1
  209. package/dist/utils/retry.d.ts +0 -12
  210. package/dist/utils/retry.d.ts.map +0 -1
  211. package/dist/utils/retry.js +0 -28
  212. package/dist/utils/retry.js.map +0 -1
  213. package/dist/utils/safety-warnings.d.ts +0 -56
  214. package/dist/utils/safety-warnings.d.ts.map +0 -1
  215. package/dist/utils/safety-warnings.js +0 -330
  216. package/dist/utils/safety-warnings.js.map +0 -1
  217. package/dist/utils/terminal-controller.d.ts +0 -79
  218. package/dist/utils/terminal-controller.d.ts.map +0 -1
  219. package/dist/utils/terminal-controller.js +0 -291
  220. package/dist/utils/terminal-controller.js.map +0 -1
  221. package/dist/utils/user-friendly-formatter.d.ts +0 -45
  222. package/dist/utils/user-friendly-formatter.d.ts.map +0 -1
  223. package/dist/utils/user-friendly-formatter.js +0 -175
  224. package/dist/utils/user-friendly-formatter.js.map +0 -1
@@ -1,576 +0,0 @@
1
- "use strict";
2
- /**
3
- * Gitea Provider
4
- *
5
- * Implementation of BaseProvider for Gitea API operations.
6
- * Handles authentication, repository management, issues, PRs, and more.
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.GiteaProvider = void 0;
13
- const axios_1 = __importDefault(require("axios"));
14
- const base_provider_js_1 = require("./base-provider.js");
15
- const retry_js_1 = require("../utils/retry.js");
16
- class GiteaProvider extends base_provider_js_1.BaseProvider {
17
- client = null;
18
- giteaConfig;
19
- constructor(config) {
20
- super('gitea', config);
21
- this.giteaConfig = config;
22
- if (this.isConfigured()) {
23
- this.client = axios_1.default.create({
24
- baseURL: `${this.giteaConfig.url}/api/v1`,
25
- headers: {
26
- 'Authorization': `token ${this.giteaConfig.token}`,
27
- 'Content-Type': 'application/json',
28
- 'User-Agent': 'git-mcp/1.0.0'
29
- },
30
- timeout: 30000
31
- });
32
- }
33
- }
34
- /**
35
- * Check if Gitea provider is properly configured
36
- */
37
- isConfigured() {
38
- return !!(this.giteaConfig.url && this.giteaConfig.token && this.giteaConfig.username);
39
- }
40
- /**
41
- * Validate Gitea credentials by making a test API call
42
- */
43
- async validateCredentials() {
44
- if (!this.isConfigured() || !this.client) {
45
- return false;
46
- }
47
- try {
48
- await this.client.get('/user');
49
- return true;
50
- }
51
- catch (error) {
52
- return false;
53
- }
54
- }
55
- /**
56
- * Execute a Gitea operation
57
- */
58
- async executeOperation(operation, params) {
59
- if (!this.isConfigured()) {
60
- return this.formatError('GITEA_NOT_CONFIGURED', 'Gitea provider is not configured. Please set GITEA_URL, GITEA_TOKEN and GITEA_USERNAME environment variables.', { missingFields: this.getMissingConfigFields() });
61
- }
62
- if (!this.client) {
63
- return this.formatError('GITEA_CLIENT_ERROR', 'Gitea client is not initialized');
64
- }
65
- if (!this.isOperationSupported(operation)) {
66
- return this.formatError('UNSUPPORTED_OPERATION', `Operation '${operation}' is not supported by Gitea provider`, { supportedOperations: this.getSupportedOperations() });
67
- }
68
- try {
69
- const result = await (0, retry_js_1.retry)(() => this.executeGiteaOperation(operation, params), {
70
- retries: 3,
71
- factor: 2,
72
- minTimeout: 200,
73
- maxTimeout: 2000,
74
- retryOn: (err) => {
75
- if (!err)
76
- return false;
77
- const status = err.status || err.statusCode || (err.response && err.response.status);
78
- if (!status)
79
- return true;
80
- return status >= 500 || status === 429;
81
- }
82
- });
83
- return this.formatSuccess(result);
84
- }
85
- catch (error) {
86
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
87
- return this.formatError('GITEA_API_ERROR', `Gitea API error: ${errorMessage}`, error);
88
- }
89
- }
90
- /**
91
- * Get supported operations for Gitea provider
92
- */
93
- getSupportedOperations() {
94
- return [
95
- // Repository operations
96
- 'repo-create', 'repo-list', 'repo-get', 'repo-update', 'repo-delete', 'repo-fork', 'repo-search',
97
- // Issue operations
98
- 'issue-create', 'issue-list', 'issue-get', 'issue-update', 'issue-close', 'issue-comment', 'issue-search',
99
- // Pull request operations
100
- 'pr-create', 'pr-list', 'pr-get', 'pr-update', 'pr-merge', 'pr-close', 'pr-review', 'pr-search',
101
- // Branch operations
102
- 'branch-create', 'branch-list', 'branch-get', 'branch-delete', 'branch-compare',
103
- // Tag operations
104
- 'tag-create', 'tag-list', 'tag-get', 'tag-delete', 'tag-search',
105
- // Release operations
106
- 'release-create', 'release-list', 'release-get', 'release-update', 'release-delete', 'release-publish', 'release-download',
107
- // File operations (read-only only)
108
- 'file-read', 'file-search',
109
- // Backwards/IDE compatibility aliases
110
- 'listFiles', 'getFile',
111
- // Package operations (limited support in Gitea)
112
- 'package-list', 'package-get', 'package-delete'
113
- ];
114
- }
115
- /**
116
- * Get missing configuration fields
117
- */
118
- getMissingConfigFields() {
119
- const missing = [];
120
- if (!this.giteaConfig.url) {
121
- missing.push('GITEA_URL');
122
- }
123
- if (!this.giteaConfig.token) {
124
- missing.push('GITEA_TOKEN');
125
- }
126
- if (!this.giteaConfig.username) {
127
- missing.push('GITEA_USERNAME');
128
- }
129
- return missing;
130
- }
131
- /**
132
- * Execute specific Gitea operations
133
- */
134
- async executeGiteaOperation(operation, params) {
135
- if (!this.client) {
136
- throw new Error('Gitea client not initialized');
137
- }
138
- // Repository operations
139
- if (operation.startsWith('repo-')) {
140
- return this.executeRepositoryOperation(operation, params);
141
- }
142
- // Issue operations
143
- if (operation.startsWith('issue-')) {
144
- return this.executeIssueOperation(operation, params);
145
- }
146
- // Pull request operations
147
- if (operation.startsWith('pr-')) {
148
- return this.executePullRequestOperation(operation, params);
149
- }
150
- // Branch operations
151
- if (operation.startsWith('branch-')) {
152
- return this.executeBranchOperation(operation, params);
153
- }
154
- // Tag operations
155
- if (operation.startsWith('tag-')) {
156
- return this.executeTagOperation(operation, params);
157
- }
158
- // Release operations
159
- if (operation.startsWith('release-')) {
160
- return this.executeReleaseOperation(operation, params);
161
- }
162
- // File operations (including compatibility aliases)
163
- if (operation.startsWith('file-') || operation === 'listFiles' || operation === 'getFile') {
164
- return this.executeFileOperation(operation, params);
165
- }
166
- // Package operations
167
- if (operation.startsWith('package-')) {
168
- return this.executePackageOperation(operation, params);
169
- }
170
- throw new Error(`Unsupported operation: ${operation}`);
171
- }
172
- /**
173
- * Execute repository operations
174
- */
175
- async executeRepositoryOperation(operation, params) {
176
- const { owner = this.giteaConfig.username, repo, ...otherParams } = params;
177
- switch (operation) {
178
- case 'repo-create':
179
- return this.makeRequest('POST', '/user/repos', {
180
- name: params.name,
181
- description: params.description,
182
- private: params.private || false,
183
- ...otherParams
184
- });
185
- case 'repo-list':
186
- return this.makeRequest('GET', `/users/${owner}/repos`, {
187
- params: {
188
- type: params.type || 'all',
189
- ...otherParams
190
- }
191
- });
192
- case 'repo-get':
193
- return this.makeRequest('GET', `/repos/${owner}/${repo}`);
194
- case 'repo-update':
195
- return this.makeRequest('PATCH', `/repos/${owner}/${repo}`, otherParams);
196
- case 'repo-delete':
197
- return this.makeRequest('DELETE', `/repos/${owner}/${repo}`);
198
- case 'repo-fork':
199
- return this.makeRequest('POST', `/repos/${owner}/${repo}/forks`, {
200
- organization: params.organization,
201
- ...otherParams
202
- });
203
- case 'repo-search':
204
- return this.makeRequest('GET', '/repos/search', {
205
- params: {
206
- q: params.query,
207
- sort: params.sort,
208
- order: params.order,
209
- ...otherParams
210
- }
211
- });
212
- default:
213
- throw new Error(`Unsupported repository operation: ${operation}`);
214
- }
215
- }
216
- /**
217
- * Execute issue operations
218
- */
219
- async executeIssueOperation(operation, params) {
220
- const { owner = this.giteaConfig.username, repo, issue_number, ...otherParams } = params;
221
- switch (operation) {
222
- case 'issue-create':
223
- return this.makeRequest('POST', `/repos/${owner}/${repo}/issues`, {
224
- title: params.title,
225
- body: params.body,
226
- labels: params.labels,
227
- ...otherParams
228
- });
229
- case 'issue-list':
230
- return this.makeRequest('GET', `/repos/${owner}/${repo}/issues`, {
231
- params: {
232
- state: params.state || 'open',
233
- ...otherParams
234
- }
235
- });
236
- case 'issue-get':
237
- return this.makeRequest('GET', `/repos/${owner}/${repo}/issues/${issue_number}`);
238
- case 'issue-update':
239
- return this.makeRequest('PATCH', `/repos/${owner}/${repo}/issues/${issue_number}`, otherParams);
240
- case 'issue-close':
241
- return this.makeRequest('PATCH', `/repos/${owner}/${repo}/issues/${issue_number}`, {
242
- state: 'closed',
243
- ...otherParams
244
- });
245
- case 'issue-comment':
246
- return this.makeRequest('POST', `/repos/${owner}/${repo}/issues/${issue_number}/comments`, {
247
- body: params.body,
248
- ...otherParams
249
- });
250
- case 'issue-search':
251
- return this.makeRequest('GET', '/repos/issues/search', {
252
- params: {
253
- q: params.query,
254
- sort: params.sort,
255
- order: params.order,
256
- ...otherParams
257
- }
258
- });
259
- default:
260
- throw new Error(`Unsupported issue operation: ${operation}`);
261
- }
262
- }
263
- /**
264
- * Execute pull request operations
265
- */
266
- async executePullRequestOperation(operation, params) {
267
- const { owner = this.giteaConfig.username, repo, pull_number, ...otherParams } = params;
268
- switch (operation) {
269
- case 'pr-create':
270
- return this.makeRequest('POST', `/repos/${owner}/${repo}/pulls`, {
271
- title: params.title,
272
- head: params.head,
273
- base: params.base,
274
- body: params.body,
275
- ...otherParams
276
- });
277
- case 'pr-list':
278
- return this.makeRequest('GET', `/repos/${owner}/${repo}/pulls`, {
279
- params: {
280
- state: params.state || 'open',
281
- ...otherParams
282
- }
283
- });
284
- case 'pr-get':
285
- return this.makeRequest('GET', `/repos/${owner}/${repo}/pulls/${pull_number}`);
286
- case 'pr-update':
287
- return this.makeRequest('PATCH', `/repos/${owner}/${repo}/pulls/${pull_number}`, otherParams);
288
- case 'pr-merge':
289
- return this.makeRequest('POST', `/repos/${owner}/${repo}/pulls/${pull_number}/merge`, {
290
- Do: params.merge_method || 'merge',
291
- MergeTitleField: params.commit_title,
292
- MergeMessageField: params.commit_message,
293
- ...otherParams
294
- });
295
- case 'pr-close':
296
- return this.makeRequest('PATCH', `/repos/${owner}/${repo}/pulls/${pull_number}`, {
297
- state: 'closed',
298
- ...otherParams
299
- });
300
- case 'pr-review':
301
- return this.makeRequest('POST', `/repos/${owner}/${repo}/pulls/${pull_number}/reviews`, {
302
- event: params.event,
303
- body: params.body,
304
- ...otherParams
305
- });
306
- case 'pr-search':
307
- return this.makeRequest('GET', '/repos/issues/search', {
308
- params: {
309
- q: `${params.query} type:pr`,
310
- sort: params.sort,
311
- order: params.order,
312
- ...otherParams
313
- }
314
- });
315
- default:
316
- throw new Error(`Unsupported pull request operation: ${operation}`);
317
- }
318
- }
319
- /**
320
- * Execute branch operations
321
- */
322
- async executeBranchOperation(operation, params) {
323
- const { owner = this.giteaConfig.username, repo, ...otherParams } = params;
324
- switch (operation) {
325
- case 'branch-create':
326
- return this.makeRequest('POST', `/repos/${owner}/${repo}/branches`, {
327
- new_branch_name: params.branch,
328
- old_branch_name: params.from_branch || 'main',
329
- ...otherParams
330
- });
331
- case 'branch-list':
332
- return this.makeRequest('GET', `/repos/${owner}/${repo}/branches`);
333
- case 'branch-get':
334
- return this.makeRequest('GET', `/repos/${owner}/${repo}/branches/${params.branch}`);
335
- case 'branch-delete':
336
- return this.makeRequest('DELETE', `/repos/${owner}/${repo}/branches/${params.branch}`);
337
- case 'branch-compare':
338
- return this.makeRequest('GET', `/repos/${owner}/${repo}/compare/${params.base}...${params.head}`);
339
- default:
340
- throw new Error(`Unsupported branch operation: ${operation}`);
341
- }
342
- }
343
- /**
344
- * Execute tag operations
345
- */
346
- async executeTagOperation(operation, params) {
347
- const { owner = this.giteaConfig.username, repo, ...otherParams } = params;
348
- switch (operation) {
349
- case 'tag-create':
350
- return this.makeRequest('POST', `/repos/${owner}/${repo}/tags`, {
351
- tag_name: params.tag,
352
- message: params.message,
353
- target: params.object,
354
- ...otherParams
355
- });
356
- case 'tag-list':
357
- return this.makeRequest('GET', `/repos/${owner}/${repo}/tags`);
358
- case 'tag-get':
359
- return this.makeRequest('GET', `/repos/${owner}/${repo}/git/tags/${params.tag_sha}`);
360
- case 'tag-delete':
361
- return this.makeRequest('DELETE', `/repos/${owner}/${repo}/tags/${params.tag}`);
362
- case 'tag-search':
363
- return this.makeRequest('GET', `/repos/${owner}/${repo}/tags`, {
364
- params: otherParams
365
- });
366
- default:
367
- throw new Error(`Unsupported tag operation: ${operation}`);
368
- }
369
- }
370
- /**
371
- * Execute release operations
372
- */
373
- async executeReleaseOperation(operation, params) {
374
- const { owner = this.giteaConfig.username, repo, release_id, ...otherParams } = params;
375
- switch (operation) {
376
- case 'release-create':
377
- return this.makeRequest('POST', `/repos/${owner}/${repo}/releases`, {
378
- tag_name: params.tag_name,
379
- name: params.name,
380
- body: params.body,
381
- draft: params.draft || false,
382
- prerelease: params.prerelease || false,
383
- ...otherParams
384
- });
385
- case 'release-list':
386
- return this.makeRequest('GET', `/repos/${owner}/${repo}/releases`);
387
- case 'release-get':
388
- // If release_id is not provided, get it from tagName
389
- let getReleaseId = release_id;
390
- if (!getReleaseId && params.tagName) {
391
- const releases = await this.makeRequest('GET', `/repos/${owner}/${repo}/releases`);
392
- const release = releases.find((r) => r.tag_name === params.tagName);
393
- if (!release) {
394
- throw new Error(`Release with tag '${params.tagName}' not found`);
395
- }
396
- getReleaseId = release.id;
397
- }
398
- return this.makeRequest('GET', `/repos/${owner}/${repo}/releases/${getReleaseId}`);
399
- case 'release-update':
400
- // If release_id is not provided, get it from tagName
401
- let updateReleaseId = release_id;
402
- if (!updateReleaseId && params.tagName) {
403
- const releases = await this.makeRequest('GET', `/repos/${owner}/${repo}/releases`);
404
- const release = releases.find((r) => r.tag_name === params.tagName);
405
- if (!release) {
406
- throw new Error(`Release with tag '${params.tagName}' not found`);
407
- }
408
- updateReleaseId = release.id;
409
- }
410
- return this.makeRequest('PATCH', `/repos/${owner}/${repo}/releases/${updateReleaseId}`, otherParams);
411
- case 'release-delete':
412
- // If release_id is not provided, get it from tagName
413
- let deleteReleaseId = release_id;
414
- if (!deleteReleaseId && params.tagName) {
415
- const releases = await this.makeRequest('GET', `/repos/${owner}/${repo}/releases`);
416
- const release = releases.find((r) => r.tag_name === params.tagName);
417
- if (!release) {
418
- throw new Error(`Release with tag '${params.tagName}' not found`);
419
- }
420
- deleteReleaseId = release.id;
421
- }
422
- return this.makeRequest('DELETE', `/repos/${owner}/${repo}/releases/${deleteReleaseId}`);
423
- case 'release-publish':
424
- // If release_id is not provided, get it from tagName
425
- let publishReleaseId = release_id;
426
- if (!publishReleaseId && params.tagName) {
427
- const releases = await this.makeRequest('GET', `/repos/${owner}/${repo}/releases`);
428
- const release = releases.find((r) => r.tag_name === params.tagName);
429
- if (!release) {
430
- throw new Error(`Release with tag '${params.tagName}' not found`);
431
- }
432
- publishReleaseId = release.id;
433
- }
434
- return this.makeRequest('PATCH', `/repos/${owner}/${repo}/releases/${publishReleaseId}`, {
435
- draft: false,
436
- ...otherParams
437
- });
438
- case 'release-download':
439
- return this.makeRequest('GET', `/repos/${owner}/${repo}/releases/${release_id}/assets/${params.asset_id}`);
440
- default:
441
- throw new Error(`Unsupported release operation: ${operation}`);
442
- }
443
- }
444
- /**
445
- * Execute file operations
446
- */
447
- async executeFileOperation(operation, params) {
448
- const { owner = this.giteaConfig.username, repo, path, ...otherParams } = params;
449
- switch (operation) {
450
- case 'file-read':
451
- return this.makeRequest('GET', `/repos/${owner}/${repo}/contents/${path}`, {
452
- params: otherParams
453
- });
454
- case 'listFiles': {
455
- const listPath = path || '';
456
- const response = await this.makeRequest('GET', `/repos/${owner}/${repo}/contents/${listPath}`, {
457
- params: otherParams
458
- });
459
- // Gitea returns array for directories
460
- const data = Array.isArray(response)
461
- ? response.map((item) => ({
462
- name: item.name,
463
- path: item.path,
464
- sha: item.sha,
465
- type: item.type,
466
- size: item.size,
467
- url: item.html_url || item.url
468
- }))
469
- : ({
470
- name: response.name,
471
- path: response.path,
472
- sha: response.sha,
473
- type: response.type,
474
- size: response.size,
475
- url: response.html_url || response.url
476
- });
477
- return data;
478
- }
479
- case 'getFile': {
480
- const res = await this.makeRequest('GET', `/repos/${owner}/${repo}/contents/${path}`, {
481
- params: otherParams
482
- });
483
- const fileData = Array.isArray(res) ? res[0] : res;
484
- const contentEncoded = fileData.content;
485
- let contentDecoded = null;
486
- if (contentEncoded) {
487
- try {
488
- contentDecoded = Buffer.from(contentEncoded, 'base64').toString('utf8');
489
- }
490
- catch (e) {
491
- contentDecoded = null;
492
- }
493
- }
494
- return {
495
- filePath: fileData.path,
496
- sha: fileData.sha,
497
- encoding: fileData.encoding || (contentEncoded ? 'base64' : undefined),
498
- content: contentDecoded,
499
- size: fileData.size,
500
- url: fileData.html_url || fileData.url
501
- };
502
- }
503
- case 'file-create':
504
- case 'file-update':
505
- case 'file-delete':
506
- throw new Error(`File modification operations (${operation}) are not allowed. This provider only supports read-only file operations for security reasons.`);
507
- case 'file-search':
508
- return this.makeRequest('GET', `/repos/${owner}/${repo}/search`, {
509
- params: {
510
- q: params.query,
511
- ...otherParams
512
- }
513
- });
514
- default:
515
- throw new Error(`Unsupported file operation: ${operation}`);
516
- }
517
- }
518
- /**
519
- * Execute package operations (limited support in Gitea)
520
- */
521
- async executePackageOperation(operation, params) {
522
- const { owner = this.giteaConfig.username, ...otherParams } = params;
523
- switch (operation) {
524
- case 'package-list':
525
- return this.makeRequest('GET', `/packages/${owner}`, {
526
- params: {
527
- type: params.package_type || 'npm',
528
- ...otherParams
529
- }
530
- });
531
- case 'package-get':
532
- return this.makeRequest('GET', `/packages/${owner}/${params.package_type || 'npm'}/${params.package_name}`);
533
- case 'package-delete':
534
- return this.makeRequest('DELETE', `/packages/${owner}/${params.package_type || 'npm'}/${params.package_name}`);
535
- case 'package-create':
536
- case 'package-update':
537
- case 'package-publish':
538
- throw new Error('Package creation/update/publishing should be done through package managers');
539
- case 'package-download':
540
- return this.makeRequest('GET', `/packages/${owner}/${params.package_type || 'npm'}/${params.package_name}/${params.version}/files`);
541
- default:
542
- throw new Error(`Unsupported package operation: ${operation}`);
543
- }
544
- }
545
- /**
546
- * Make HTTP request to Gitea API
547
- */
548
- async makeRequest(method, endpoint, data) {
549
- if (!this.client) {
550
- throw new Error('Gitea client not initialized');
551
- }
552
- let response;
553
- switch (method.toLowerCase()) {
554
- case 'get':
555
- response = await this.client.get(endpoint, data);
556
- break;
557
- case 'post':
558
- response = await this.client.post(endpoint, data);
559
- break;
560
- case 'put':
561
- response = await this.client.put(endpoint, data);
562
- break;
563
- case 'patch':
564
- response = await this.client.patch(endpoint, data);
565
- break;
566
- case 'delete':
567
- response = await this.client.delete(endpoint, data);
568
- break;
569
- default:
570
- throw new Error(`Unsupported HTTP method: ${method}`);
571
- }
572
- return response.data;
573
- }
574
- }
575
- exports.GiteaProvider = GiteaProvider;
576
- //# sourceMappingURL=gitea-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitea-provider.js","sourceRoot":"","sources":["../../src/providers/gitea-provider.ts"],"names":[],"mappings":"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"}