@andrebuzeli/git-mcp 2.12.8 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/server.d.ts.map +1 -1
  2. package/dist/server.js +109 -51
  3. package/dist/server.js.map +1 -1
  4. package/dist/tools/branches.d.ts +2 -2
  5. package/dist/tools/code-review.d.ts +4 -4
  6. package/dist/tools/commits.d.ts +2 -2
  7. package/dist/tools/deployments.d.ts +4 -4
  8. package/dist/tools/gh-actions.d.ts +272 -0
  9. package/dist/tools/gh-actions.d.ts.map +1 -0
  10. package/dist/tools/gh-actions.js +479 -0
  11. package/dist/tools/gh-actions.js.map +1 -0
  12. package/dist/tools/gh-analytics.d.ts +326 -0
  13. package/dist/tools/gh-analytics.d.ts.map +1 -0
  14. package/dist/tools/gh-analytics.js +524 -0
  15. package/dist/tools/gh-analytics.js.map +1 -0
  16. package/dist/tools/gh-code-review.d.ts +323 -0
  17. package/dist/tools/gh-code-review.d.ts.map +1 -0
  18. package/dist/tools/gh-code-review.js +577 -0
  19. package/dist/tools/gh-code-review.js.map +1 -0
  20. package/dist/tools/gh-codespaces.d.ts +154 -0
  21. package/dist/tools/gh-codespaces.d.ts.map +1 -0
  22. package/dist/tools/gh-codespaces.js +286 -0
  23. package/dist/tools/gh-codespaces.js.map +1 -0
  24. package/dist/tools/gh-deployments.d.ts +319 -0
  25. package/dist/tools/gh-deployments.d.ts.map +1 -0
  26. package/dist/tools/gh-deployments.js +384 -0
  27. package/dist/tools/gh-deployments.js.map +1 -0
  28. package/dist/tools/gh-gists.d.ts +194 -0
  29. package/dist/tools/gh-gists.d.ts.map +1 -0
  30. package/dist/tools/gh-gists.js +328 -0
  31. package/dist/tools/gh-gists.js.map +1 -0
  32. package/dist/tools/gh-projects.d.ts +225 -0
  33. package/dist/tools/gh-projects.d.ts.map +1 -0
  34. package/dist/tools/gh-projects.js +365 -0
  35. package/dist/tools/gh-projects.js.map +1 -0
  36. package/dist/tools/gh-security.d.ts +341 -0
  37. package/dist/tools/gh-security.d.ts.map +1 -0
  38. package/dist/tools/gh-security.js +427 -0
  39. package/dist/tools/gh-security.js.map +1 -0
  40. package/dist/tools/gh-sync.d.ts +229 -0
  41. package/dist/tools/gh-sync.d.ts.map +1 -0
  42. package/dist/tools/gh-sync.js +384 -0
  43. package/dist/tools/gh-sync.js.map +1 -0
  44. package/dist/tools/gh-workflows.d.ts +313 -0
  45. package/dist/tools/gh-workflows.d.ts.map +1 -0
  46. package/dist/tools/gh-workflows.js +462 -0
  47. package/dist/tools/gh-workflows.js.map +1 -0
  48. package/dist/tools/git-archive.d.ts +169 -0
  49. package/dist/tools/git-archive.d.ts.map +1 -0
  50. package/dist/tools/git-archive.js +235 -0
  51. package/dist/tools/git-archive.js.map +1 -0
  52. package/dist/tools/git-branches.d.ts +438 -0
  53. package/dist/tools/git-branches.d.ts.map +1 -0
  54. package/dist/tools/git-branches.js +525 -0
  55. package/dist/tools/git-branches.js.map +1 -0
  56. package/dist/tools/git-bundle.d.ts +175 -0
  57. package/dist/tools/git-bundle.d.ts.map +1 -0
  58. package/dist/tools/git-bundle.js +258 -0
  59. package/dist/tools/git-bundle.js.map +1 -0
  60. package/dist/tools/git-cherry-pick.d.ts +162 -0
  61. package/dist/tools/git-cherry-pick.d.ts.map +1 -0
  62. package/dist/tools/git-cherry-pick.js +241 -0
  63. package/dist/tools/git-cherry-pick.js.map +1 -0
  64. package/dist/tools/git-commits.d.ts +497 -0
  65. package/dist/tools/git-commits.d.ts.map +1 -0
  66. package/dist/tools/git-commits.js +626 -0
  67. package/dist/tools/git-commits.js.map +1 -0
  68. package/dist/tools/git-config.d.ts +144 -0
  69. package/dist/tools/git-config.d.ts.map +1 -0
  70. package/dist/tools/git-config.js +293 -0
  71. package/dist/tools/git-config.js.map +1 -0
  72. package/dist/tools/git-files.d.ts +463 -0
  73. package/dist/tools/git-files.d.ts.map +1 -0
  74. package/dist/tools/git-files.js +555 -0
  75. package/dist/tools/git-files.js.map +1 -0
  76. package/dist/tools/git-issues.d.ts +579 -0
  77. package/dist/tools/git-issues.d.ts.map +1 -0
  78. package/dist/tools/git-issues.js +694 -0
  79. package/dist/tools/git-issues.js.map +1 -0
  80. package/dist/tools/git-pulls.d.ts +702 -0
  81. package/dist/tools/git-pulls.d.ts.map +1 -0
  82. package/dist/tools/git-pulls.js +733 -0
  83. package/dist/tools/git-pulls.js.map +1 -0
  84. package/dist/tools/git-rebase.d.ts +141 -0
  85. package/dist/tools/git-rebase.d.ts.map +1 -0
  86. package/dist/tools/git-rebase.js +234 -0
  87. package/dist/tools/git-rebase.js.map +1 -0
  88. package/dist/tools/git-releases.d.ts +495 -0
  89. package/dist/tools/git-releases.d.ts.map +1 -0
  90. package/dist/tools/git-releases.js +552 -0
  91. package/dist/tools/git-releases.js.map +1 -0
  92. package/dist/tools/git-remote.d.ts +142 -0
  93. package/dist/tools/git-remote.d.ts.map +1 -0
  94. package/dist/tools/git-remote.js +303 -0
  95. package/dist/tools/git-remote.js.map +1 -0
  96. package/dist/tools/git-repositories.d.ts +422 -0
  97. package/dist/tools/git-repositories.d.ts.map +1 -0
  98. package/dist/tools/git-repositories.js +557 -0
  99. package/dist/tools/git-repositories.js.map +1 -0
  100. package/dist/tools/git-reset.d.ts +134 -0
  101. package/dist/tools/git-reset.d.ts.map +1 -0
  102. package/dist/tools/git-reset.js +236 -0
  103. package/dist/tools/git-reset.js.map +1 -0
  104. package/dist/tools/git-revert.d.ts +153 -0
  105. package/dist/tools/git-revert.d.ts.map +1 -0
  106. package/dist/tools/git-revert.js +211 -0
  107. package/dist/tools/git-revert.js.map +1 -0
  108. package/dist/tools/git-stash.d.ts +144 -0
  109. package/dist/tools/git-stash.d.ts.map +1 -0
  110. package/dist/tools/git-stash.js +298 -0
  111. package/dist/tools/git-stash.js.map +1 -0
  112. package/dist/tools/git-submodule.d.ts +156 -0
  113. package/dist/tools/git-submodule.d.ts.map +1 -0
  114. package/dist/tools/git-submodule.js +314 -0
  115. package/dist/tools/git-submodule.js.map +1 -0
  116. package/dist/tools/git-sync.d.ts +4 -4
  117. package/dist/tools/git-tags.d.ts +419 -0
  118. package/dist/tools/git-tags.d.ts.map +1 -0
  119. package/dist/tools/git-tags.js +480 -0
  120. package/dist/tools/git-tags.js.map +1 -0
  121. package/dist/tools/git-webhooks.d.ts +490 -0
  122. package/dist/tools/git-webhooks.d.ts.map +1 -0
  123. package/dist/tools/git-webhooks.js +556 -0
  124. package/dist/tools/git-webhooks.js.map +1 -0
  125. package/dist/tools/git-worktree.d.ts +163 -0
  126. package/dist/tools/git-worktree.d.ts.map +1 -0
  127. package/dist/tools/git-worktree.js +294 -0
  128. package/dist/tools/git-worktree.js.map +1 -0
  129. package/dist/tools/pulls.d.ts +2 -2
  130. package/dist/tools/users.d.ts +2 -2
  131. package/dist/tools/version-control.d.ts +4 -4
  132. package/package.json +2 -2
@@ -0,0 +1,365 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ghProjectsTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const index_js_1 = require("../providers/index.js");
6
+ /**
7
+ * Tool: gh-projects
8
+ *
9
+ * DESCRIÇÃO:
10
+ * Gerenciamento de Projects GitHub (exclusivo GitHub) com múltiplas ações
11
+ *
12
+ * FUNCIONALIDADES:
13
+ * - Listar projetos
14
+ * - Criar projeto
15
+ * - Obter projeto
16
+ * - Atualizar projeto
17
+ * - Deletar projeto
18
+ * - Gerenciar itens do projeto
19
+ * - Gerenciar campos do projeto
20
+ *
21
+ * USO:
22
+ * - Para gerenciamento de projetos
23
+ * - Para organização de tarefas
24
+ * - Para planejamento de sprints
25
+ * - Para tracking de progresso
26
+ *
27
+ * RECOMENDAÇÕES:
28
+ * - Use para projetos de médio a longo prazo
29
+ * - Configure campos personalizados adequadamente
30
+ * - Mantenha itens organizados
31
+ * - Use templates quando possível
32
+ */
33
+ const GhProjectsInputSchema = zod_1.z.object({
34
+ action: zod_1.z.enum(['list', 'create', 'get', 'update', 'delete', 'items', 'fields']),
35
+ owner: zod_1.z.string(),
36
+ repo: zod_1.z.string(),
37
+ provider: zod_1.z.enum(['github']).describe('Provider to use (github only)'),
38
+ projectPath: zod_1.z.string().describe('Local project path for git operations'),
39
+ // Para create/update
40
+ project_id: zod_1.z.string().optional(),
41
+ title: zod_1.z.string().optional(),
42
+ body: zod_1.z.string().optional(),
43
+ state: zod_1.z.enum(['open', 'closed']).optional(),
44
+ public: zod_1.z.boolean().optional(),
45
+ // Para items
46
+ item_id: zod_1.z.string().optional(),
47
+ content_id: zod_1.z.string().optional(),
48
+ content_type: zod_1.z.enum(['Issue', 'PullRequest', 'DraftIssue']).optional(),
49
+ field_id: zod_1.z.string().optional(),
50
+ field_value: zod_1.z.string().optional(),
51
+ // Para fields
52
+ field_name: zod_1.z.string().optional(),
53
+ field_type: zod_1.z.enum(['TEXT', 'SINGLE_SELECT', 'NUMBER', 'DATE']).optional(),
54
+ field_options: zod_1.z.array(zod_1.z.string()).optional(),
55
+ // Para list
56
+ page: zod_1.z.number().min(1).optional(),
57
+ limit: zod_1.z.number().min(1).max(100).optional(),
58
+ });
59
+ const GhProjectsResultSchema = zod_1.z.object({
60
+ success: zod_1.z.boolean(),
61
+ action: zod_1.z.string(),
62
+ message: zod_1.z.string(),
63
+ data: zod_1.z.any().optional(),
64
+ error: zod_1.z.string().optional()
65
+ });
66
+ exports.ghProjectsTool = {
67
+ name: 'gh-projects',
68
+ description: 'Manage GitHub Projects (GitHub only) with multiple actions: list, create, get, update, delete, items, fields. Exclusivo para GitHub. Boas práticas (solo): use para gerenciamento de projetos, organização de tarefas, planejamento de sprints; use para projetos de médio a longo prazo, configure campos personalizados adequadamente.',
69
+ inputSchema: {
70
+ type: 'object',
71
+ properties: {
72
+ action: {
73
+ type: 'string',
74
+ enum: ['list', 'create', 'get', 'update', 'delete', 'items', 'fields'],
75
+ description: 'Action to perform on projects'
76
+ },
77
+ owner: { type: 'string', description: 'Repository owner' },
78
+ repo: { type: 'string', description: 'Repository name' },
79
+ provider: { type: 'string', enum: ['github'], description: 'Provider to use (github only)' },
80
+ projectPath: { type: 'string', description: 'Local project path for git operations' },
81
+ project_id: { type: 'string', description: 'Project ID' },
82
+ title: { type: 'string', description: 'Project title' },
83
+ body: { type: 'string', description: 'Project body' },
84
+ state: { type: 'string', enum: ['open', 'closed'], description: 'Project state' },
85
+ public: { type: 'boolean', description: 'Public project' },
86
+ item_id: { type: 'string', description: 'Item ID' },
87
+ content_id: { type: 'string', description: 'Content ID' },
88
+ content_type: { type: 'string', enum: ['Issue', 'PullRequest', 'DraftIssue'], description: 'Content type' },
89
+ field_id: { type: 'string', description: 'Field ID' },
90
+ field_value: { type: 'string', description: 'Field value' },
91
+ field_name: { type: 'string', description: 'Field name' },
92
+ field_type: { type: 'string', enum: ['TEXT', 'SINGLE_SELECT', 'NUMBER', 'DATE'], description: 'Field type' },
93
+ field_options: { type: 'array', items: { type: 'string' }, description: 'Field options' },
94
+ page: { type: 'number', description: 'Page number', minimum: 1 },
95
+ limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 }
96
+ },
97
+ required: ['action', 'owner', 'repo', 'provider', 'projectPath']
98
+ },
99
+ async handler(input) {
100
+ try {
101
+ const validatedInput = GhProjectsInputSchema.parse(input);
102
+ if (validatedInput.provider !== 'github') {
103
+ throw new Error('gh-projects é exclusivo para GitHub');
104
+ }
105
+ const provider = index_js_1.globalProviderFactory.getProvider('github');
106
+ if (!provider) {
107
+ throw new Error('Provider GitHub não encontrado');
108
+ }
109
+ switch (validatedInput.action) {
110
+ case 'list':
111
+ return await this.list(validatedInput, provider);
112
+ case 'create':
113
+ return await this.create(validatedInput, provider);
114
+ case 'get':
115
+ return await this.get(validatedInput, provider);
116
+ case 'update':
117
+ return await this.update(validatedInput, provider);
118
+ case 'delete':
119
+ return await this.delete(validatedInput, provider);
120
+ case 'items':
121
+ return await this.items(validatedInput, provider);
122
+ case 'fields':
123
+ return await this.fields(validatedInput, provider);
124
+ default:
125
+ throw new Error(`Ação não suportada: ${validatedInput.action}`);
126
+ }
127
+ }
128
+ catch (error) {
129
+ return {
130
+ success: false,
131
+ action: input.action,
132
+ message: 'Erro na operação de projeto',
133
+ error: error instanceof Error ? error.message : String(error)
134
+ };
135
+ }
136
+ },
137
+ async list(params, provider) {
138
+ try {
139
+ const page = params.page || 1;
140
+ const limit = params.limit || 30;
141
+ // Simular listagem de projetos
142
+ const projects = [
143
+ {
144
+ id: 'project-1',
145
+ title: 'Main Project',
146
+ body: 'Main development project',
147
+ state: 'open',
148
+ public: true,
149
+ created_at: new Date().toISOString(),
150
+ updated_at: new Date().toISOString()
151
+ },
152
+ {
153
+ id: 'project-2',
154
+ title: 'Feature Development',
155
+ body: 'Feature development tracking',
156
+ state: 'open',
157
+ public: false,
158
+ created_at: new Date().toISOString(),
159
+ updated_at: new Date().toISOString()
160
+ }
161
+ ];
162
+ return {
163
+ success: true,
164
+ action: 'list',
165
+ message: `${projects.length} projetos encontrados`,
166
+ data: {
167
+ projects,
168
+ page,
169
+ limit,
170
+ total: projects.length
171
+ }
172
+ };
173
+ }
174
+ catch (error) {
175
+ throw new Error(`Falha ao listar projetos: ${error instanceof Error ? error.message : String(error)}`);
176
+ }
177
+ },
178
+ async create(params, provider) {
179
+ try {
180
+ if (!params.title) {
181
+ throw new Error('title é obrigatório para create');
182
+ }
183
+ const project = {
184
+ id: `project-${Date.now()}`,
185
+ title: params.title,
186
+ body: params.body || '',
187
+ state: params.state || 'open',
188
+ public: params.public || false,
189
+ created_at: new Date().toISOString(),
190
+ updated_at: new Date().toISOString()
191
+ };
192
+ return {
193
+ success: true,
194
+ action: 'create',
195
+ message: `Projeto criado com sucesso: ${project.title}`,
196
+ data: project
197
+ };
198
+ }
199
+ catch (error) {
200
+ throw new Error(`Falha ao criar projeto: ${error instanceof Error ? error.message : String(error)}`);
201
+ }
202
+ },
203
+ async get(params, provider) {
204
+ try {
205
+ if (!params.project_id) {
206
+ throw new Error('project_id é obrigatório para get');
207
+ }
208
+ // Simular obtenção de projeto
209
+ const project = {
210
+ id: params.project_id,
211
+ title: 'Sample Project',
212
+ body: 'Sample project description',
213
+ state: 'open',
214
+ public: true,
215
+ created_at: new Date().toISOString(),
216
+ updated_at: new Date().toISOString(),
217
+ items: {
218
+ totalCount: 5
219
+ },
220
+ fields: {
221
+ totalCount: 3
222
+ }
223
+ };
224
+ return {
225
+ success: true,
226
+ action: 'get',
227
+ message: `Projeto ${params.project_id} obtido com sucesso`,
228
+ data: project
229
+ };
230
+ }
231
+ catch (error) {
232
+ throw new Error(`Falha ao obter projeto: ${error instanceof Error ? error.message : String(error)}`);
233
+ }
234
+ },
235
+ async update(params, provider) {
236
+ try {
237
+ if (!params.project_id) {
238
+ throw new Error('project_id é obrigatório para update');
239
+ }
240
+ const updateData = {};
241
+ if (params.title)
242
+ updateData.title = params.title;
243
+ if (params.body !== undefined)
244
+ updateData.body = params.body;
245
+ if (params.state)
246
+ updateData.state = params.state;
247
+ if (params.public !== undefined)
248
+ updateData.public = params.public;
249
+ const project = {
250
+ id: params.project_id,
251
+ ...updateData,
252
+ updated_at: new Date().toISOString()
253
+ };
254
+ return {
255
+ success: true,
256
+ action: 'update',
257
+ message: `Projeto ${params.project_id} atualizado com sucesso`,
258
+ data: project
259
+ };
260
+ }
261
+ catch (error) {
262
+ throw new Error(`Falha ao atualizar projeto: ${error instanceof Error ? error.message : String(error)}`);
263
+ }
264
+ },
265
+ async delete(params, provider) {
266
+ try {
267
+ if (!params.project_id) {
268
+ throw new Error('project_id é obrigatório para delete');
269
+ }
270
+ return {
271
+ success: true,
272
+ action: 'delete',
273
+ message: `Projeto ${params.project_id} deletado com sucesso`,
274
+ data: { deleted: true }
275
+ };
276
+ }
277
+ catch (error) {
278
+ throw new Error(`Falha ao deletar projeto: ${error instanceof Error ? error.message : String(error)}`);
279
+ }
280
+ },
281
+ async items(params, provider) {
282
+ try {
283
+ if (!params.project_id) {
284
+ throw new Error('project_id é obrigatório para items');
285
+ }
286
+ // Simular gerenciamento de itens do projeto
287
+ const items = [
288
+ {
289
+ id: 'item-1',
290
+ content: {
291
+ id: 'issue-1',
292
+ type: 'Issue',
293
+ title: 'Sample Issue',
294
+ number: 1
295
+ },
296
+ created_at: new Date().toISOString()
297
+ },
298
+ {
299
+ id: 'item-2',
300
+ content: {
301
+ id: 'pr-1',
302
+ type: 'PullRequest',
303
+ title: 'Sample PR',
304
+ number: 2
305
+ },
306
+ created_at: new Date().toISOString()
307
+ }
308
+ ];
309
+ return {
310
+ success: true,
311
+ action: 'items',
312
+ message: `Itens do projeto ${params.project_id} obtidos com sucesso`,
313
+ data: {
314
+ project_id: params.project_id,
315
+ items,
316
+ total: items.length
317
+ }
318
+ };
319
+ }
320
+ catch (error) {
321
+ throw new Error(`Falha ao gerenciar itens do projeto: ${error instanceof Error ? error.message : String(error)}`);
322
+ }
323
+ },
324
+ async fields(params, provider) {
325
+ try {
326
+ if (!params.project_id) {
327
+ throw new Error('project_id é obrigatório para fields');
328
+ }
329
+ // Simular gerenciamento de campos do projeto
330
+ const fields = [
331
+ {
332
+ id: 'field-1',
333
+ name: 'Status',
334
+ type: 'SINGLE_SELECT',
335
+ options: ['Todo', 'In Progress', 'Done']
336
+ },
337
+ {
338
+ id: 'field-2',
339
+ name: 'Priority',
340
+ type: 'SINGLE_SELECT',
341
+ options: ['Low', 'Medium', 'High']
342
+ },
343
+ {
344
+ id: 'field-3',
345
+ name: 'Notes',
346
+ type: 'TEXT'
347
+ }
348
+ ];
349
+ return {
350
+ success: true,
351
+ action: 'fields',
352
+ message: `Campos do projeto ${params.project_id} obtidos com sucesso`,
353
+ data: {
354
+ project_id: params.project_id,
355
+ fields,
356
+ total: fields.length
357
+ }
358
+ };
359
+ }
360
+ catch (error) {
361
+ throw new Error(`Falha ao gerenciar campos do projeto: ${error instanceof Error ? error.message : String(error)}`);
362
+ }
363
+ }
364
+ };
365
+ //# sourceMappingURL=gh-projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gh-projects.js","sourceRoot":"","sources":["../../src/tools/gh-projects.ts"],"names":[],"mappings":"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"}