@andrebuzeli/git-mcp 2.27.4 → 2.28.1

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 (112) hide show
  1. package/dist/client.d.ts +306 -306
  2. package/dist/client.js +298 -298
  3. package/dist/config.d.ts +310 -310
  4. package/dist/config.js +392 -392
  5. package/dist/index.d.ts +22 -22
  6. package/dist/index.js +89 -89
  7. package/dist/providers/base-provider.d.ts +160 -156
  8. package/dist/providers/base-provider.d.ts.map +1 -1
  9. package/dist/providers/base-provider.js +274 -260
  10. package/dist/providers/base-provider.js.map +1 -1
  11. package/dist/providers/error-handler.d.ts +50 -50
  12. package/dist/providers/error-handler.js +175 -175
  13. package/dist/providers/gitea-provider.d.ts +97 -97
  14. package/dist/providers/gitea-provider.js +1001 -1001
  15. package/dist/providers/github-provider.d.ts +104 -104
  16. package/dist/providers/github-provider.js +1234 -1234
  17. package/dist/providers/index.d.ts +12 -12
  18. package/dist/providers/index.js +40 -40
  19. package/dist/providers/provider-factory.d.ts +74 -74
  20. package/dist/providers/provider-factory.js +311 -311
  21. package/dist/providers/types.d.ts +318 -298
  22. package/dist/providers/types.d.ts.map +1 -1
  23. package/dist/providers/types.js +6 -6
  24. package/dist/server.d.ts +76 -76
  25. package/dist/server.d.ts.map +1 -1
  26. package/dist/server.js +306 -305
  27. package/dist/server.js.map +1 -1
  28. package/dist/tools/gh-actions.d.ts +252 -252
  29. package/dist/tools/gh-actions.js +389 -389
  30. package/dist/tools/gh-analytics.d.ts +263 -263
  31. package/dist/tools/gh-analytics.js +401 -401
  32. package/dist/tools/gh-code-review.d.ts +304 -304
  33. package/dist/tools/gh-code-review.js +512 -512
  34. package/dist/tools/gh-codespaces.d.ts +138 -138
  35. package/dist/tools/gh-codespaces.js +282 -282
  36. package/dist/tools/gh-deployments.d.ts +300 -300
  37. package/dist/tools/gh-deployments.js +367 -367
  38. package/dist/tools/gh-gists.d.ts +174 -174
  39. package/dist/tools/gh-gists.js +321 -321
  40. package/dist/tools/gh-projects.d.ts +205 -205
  41. package/dist/tools/gh-projects.js +358 -358
  42. package/dist/tools/gh-security.d.ts +274 -274
  43. package/dist/tools/gh-security.js +395 -395
  44. package/dist/tools/gh-sync.d.ts +213 -213
  45. package/dist/tools/gh-sync.js +378 -378
  46. package/dist/tools/gh-workflows.d.ts +290 -290
  47. package/dist/tools/gh-workflows.js +432 -432
  48. package/dist/tools/git-archive.d.ts +165 -165
  49. package/dist/tools/git-archive.js +233 -233
  50. package/dist/tools/git-branches.d.ts +430 -430
  51. package/dist/tools/git-branches.d.ts.map +1 -1
  52. package/dist/tools/git-branches.js +627 -530
  53. package/dist/tools/git-branches.js.map +1 -1
  54. package/dist/tools/git-bundle.d.ts +171 -171
  55. package/dist/tools/git-bundle.js +241 -241
  56. package/dist/tools/git-cherry-pick.d.ts +158 -158
  57. package/dist/tools/git-cherry-pick.js +224 -224
  58. package/dist/tools/git-commits.d.ts +485 -485
  59. package/dist/tools/git-commits.d.ts.map +1 -1
  60. package/dist/tools/git-commits.js +735 -625
  61. package/dist/tools/git-commits.js.map +1 -1
  62. package/dist/tools/git-config.d.ts +140 -140
  63. package/dist/tools/git-config.js +268 -268
  64. package/dist/tools/git-files.d.ts +486 -486
  65. package/dist/tools/git-files.js +607 -607
  66. package/dist/tools/git-issues.d.ts +571 -571
  67. package/dist/tools/git-issues.d.ts.map +1 -1
  68. package/dist/tools/git-issues.js +740 -693
  69. package/dist/tools/git-issues.js.map +1 -1
  70. package/dist/tools/git-pulls.d.ts +694 -694
  71. package/dist/tools/git-pulls.js +732 -732
  72. package/dist/tools/git-rebase.d.ts +137 -137
  73. package/dist/tools/git-rebase.js +213 -213
  74. package/dist/tools/git-releases.d.ts +487 -487
  75. package/dist/tools/git-releases.js +557 -557
  76. package/dist/tools/git-remote.d.ts +138 -138
  77. package/dist/tools/git-remote.js +274 -274
  78. package/dist/tools/git-repositories.d.ts +483 -483
  79. package/dist/tools/git-repositories.js +640 -640
  80. package/dist/tools/git-reset.d.ts +130 -130
  81. package/dist/tools/git-reset.js +223 -223
  82. package/dist/tools/git-revert.d.ts +149 -149
  83. package/dist/tools/git-revert.js +198 -198
  84. package/dist/tools/git-stash.d.ts +140 -140
  85. package/dist/tools/git-stash.js +269 -269
  86. package/dist/tools/git-submodule.d.ts +152 -152
  87. package/dist/tools/git-submodule.js +289 -289
  88. package/dist/tools/git-sync.d.ts +178 -166
  89. package/dist/tools/git-sync.d.ts.map +1 -1
  90. package/dist/tools/git-sync.js +312 -117
  91. package/dist/tools/git-sync.js.map +1 -1
  92. package/dist/tools/git-tags.d.ts +411 -411
  93. package/dist/tools/git-tags.js +485 -485
  94. package/dist/tools/git-webhooks.d.ts +470 -482
  95. package/dist/tools/git-webhooks.d.ts.map +1 -1
  96. package/dist/tools/git-webhooks.js +543 -555
  97. package/dist/tools/git-webhooks.js.map +1 -1
  98. package/dist/tools/git-worktree.d.ts +159 -159
  99. package/dist/tools/git-worktree.js +269 -269
  100. package/dist/tools/repositories.d.ts +405 -405
  101. package/dist/tools/repositories.js +569 -569
  102. package/dist/tools/users.d.ts +372 -372
  103. package/dist/tools/users.js +499 -499
  104. package/dist/tools/validator.d.ts +170 -170
  105. package/dist/tools/validator.js +194 -194
  106. package/dist/tools/version-control.d.ts +136 -136
  107. package/dist/tools/version-control.js +164 -164
  108. package/dist/utils/terminal-controller.d.ts +80 -80
  109. package/dist/utils/terminal-controller.js +345 -345
  110. package/dist/utils/user-detection.d.ts +24 -24
  111. package/dist/utils/user-detection.js +53 -53
  112. package/package.json +59 -59
@@ -1,118 +1,313 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gitSyncTool = void 0;
4
- const zod_1 = require("zod");
5
- /**
6
- * Tool: git-sync
7
- *
8
- * DESCRIÇÃO:
9
- * Sincronização entre dois repositórios hospedados em provedores distintos (ex.: Gitea <-> GitHub).
10
- *
11
- * OBJETIVOS:
12
- * - Configurar espelhamento (quando suportado pelo backend) e registrar estado
13
- * - Executar sincronização pontual (one-shot) de código e/ou metadados
14
- * - Consultar status/diagnóstico da sincronização
15
- *
16
- * LIMITAÇÕES:
17
- * - Histórico Git completo por API REST é limitado; prioriza espelhamento nativo (push mirrors) quando disponível
18
- * - Metadados (issues, labels, releases, PRs) têm mapeamento best-effort com diferenças entre plataformas
19
- *
20
- * DICAS (solo):
21
- * - Use para manter um backup/em espelho entre provedores
22
- * - Prefira one-shot antes de configurar contínuo; verifique status e conflitos
23
- * - Defina estratégia de conflito e escopos explicitamente
24
- */
25
- const GitSyncInputSchema = zod_1.z.object({
26
- action: zod_1.z.enum(['configure', 'status', 'one-shot']),
27
- source: zod_1.z.object({
28
- provider: zod_1.z.enum(['gitea', 'github']),
29
- repo: zod_1.z.string()
30
- }),
31
- target: zod_1.z.object({
32
- provider: zod_1.z.enum(['gitea', 'github']),
33
- repo: zod_1.z.string()
34
- }),
35
- direction: zod_1.z.enum(['one-way', 'two-way']).optional(),
36
- include: zod_1.z.array(zod_1.z.enum(['git', 'issues', 'labels', 'milestones', 'releases', 'pulls'])).optional(),
37
- strategy: zod_1.z.enum(['source-wins', 'timestamp', 'skip-conflicts']).optional(),
38
- dry_run: zod_1.z.boolean().optional()
39
- });
40
- const GitSyncResultSchema = zod_1.z.object({
41
- success: zod_1.z.boolean(),
42
- action: zod_1.z.string(),
43
- message: zod_1.z.string(),
44
- data: zod_1.z.any().optional(),
45
- error: zod_1.z.string().optional()
46
- });
47
- exports.gitSyncTool = {
48
- name: 'git-sync',
49
- description: 'Synchronize two repositories across providers (Gitea <-> GitHub). Modos: configure (espelhamento quando suportado), one-shot (execução pontual) e status (diagnóstico). Dicas: execute dry-run primeiro, escolha escopos e estratégia de conflito.',
50
- inputSchema: {
51
- type: 'object',
52
- properties: {
53
- action: { type: 'string', enum: ['configure', 'status', 'one-shot'], description: 'Sync action' },
54
- source: {
55
- type: 'object',
56
- description: 'Source repository descriptor',
57
- properties: {
58
- provider: { type: 'string' },
59
- owner: { type: 'string' },
60
- repo: { type: 'string' }
61
- }
62
- },
63
- target: {
64
- type: 'object',
65
- description: 'Target repository descriptor',
66
- properties: {
67
- provider: { type: 'string' },
68
- owner: { type: 'string' },
69
- repo: { type: 'string' }
70
- }
71
- },
72
- direction: { type: 'string', enum: ['one-way', 'two-way'], description: 'Sync direction' },
73
- include: { type: 'array', items: { type: 'string', enum: ['git', 'issues', 'labels', 'milestones', 'releases', 'pulls'] }, description: 'Scopes to include' },
74
- strategy: { type: 'string', enum: ['source-wins', 'timestamp', 'skip-conflicts'], description: 'Conflict strategy' },
75
- dry_run: { type: 'boolean', description: 'Simulate without applying changes' }
76
- },
77
- required: ['action', 'source', 'target']
78
- },
79
- async handler(input) {
80
- try {
81
- const params = GitSyncInputSchema.parse(input);
82
- switch (params.action) {
83
- case 'configure':
84
- return {
85
- success: true,
86
- action: 'configure',
87
- message: 'Configuração registrada (placeholder). Integração com providers será aplicada na próxima etapa da implementação.',
88
- data: { params }
89
- };
90
- case 'status':
91
- return {
92
- success: true,
93
- action: 'status',
94
- message: 'Status coletado (placeholder).',
95
- data: { health: 'unknown', details: params }
96
- };
97
- case 'one-shot':
98
- return {
99
- success: true,
100
- action: 'one-shot',
101
- message: 'Sincronização pontual executada (placeholder).',
102
- data: { params, applied: false }
103
- };
104
- default:
105
- throw new Error(`Ação não suportada: ${params.action}`);
106
- }
107
- }
108
- catch (error) {
109
- return {
110
- success: false,
111
- action: input.action,
112
- message: 'Erro na execução do git-sync',
113
- error: error instanceof Error ? error.message : String(error)
114
- };
115
- }
116
- }
117
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gitSyncTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const index_js_1 = require("../providers/index.js");
6
+ const user_detection_js_1 = require("../utils/user-detection.js");
7
+ /**
8
+ * Tool: git-sync
9
+ *
10
+ * DESCRIÇÃO:
11
+ * Sincronização entre dois repositórios hospedados em provedores distintos (ex.: Gitea <-> GitHub).
12
+ *
13
+ * OBJETIVOS:
14
+ * - Configurar espelhamento (quando suportado pelo backend) e registrar estado
15
+ * - Executar sincronização pontual (one-shot) de código e/ou metadados
16
+ * - Consultar status/diagnóstico da sincronização
17
+ *
18
+ * LIMITAÇÕES:
19
+ * - Histórico Git completo por API REST é limitado; prioriza espelhamento nativo (push mirrors) quando disponível
20
+ * - Metadados (issues, labels, releases, PRs) têm mapeamento best-effort com diferenças entre plataformas
21
+ *
22
+ * DICAS (solo):
23
+ * - Use para manter um backup/em espelho entre provedores
24
+ * - Prefira one-shot antes de configurar contínuo; verifique status e conflitos
25
+ * - Defina estratégia de conflito e escopos explicitamente
26
+ */
27
+ const GitSyncInputSchema = zod_1.z.object({
28
+ action: zod_1.z.enum(['configure', 'status', 'one-shot']),
29
+ source: zod_1.z.object({
30
+ provider: zod_1.z.enum(['gitea', 'github']),
31
+ repo: zod_1.z.string()
32
+ }),
33
+ target: zod_1.z.object({
34
+ provider: zod_1.z.enum(['gitea', 'github']),
35
+ repo: zod_1.z.string()
36
+ }),
37
+ direction: zod_1.z.enum(['one-way', 'two-way']).optional(),
38
+ include: zod_1.z.array(zod_1.z.enum(['git', 'issues', 'labels', 'milestones', 'releases', 'pulls'])).optional(),
39
+ strategy: zod_1.z.enum(['source-wins', 'timestamp', 'skip-conflicts']).optional(),
40
+ dry_run: zod_1.z.boolean().optional()
41
+ });
42
+ const GitSyncResultSchema = zod_1.z.object({
43
+ success: zod_1.z.boolean(),
44
+ action: zod_1.z.string(),
45
+ message: zod_1.z.string(),
46
+ data: zod_1.z.any().optional(),
47
+ error: zod_1.z.string().optional()
48
+ });
49
+ exports.gitSyncTool = {
50
+ name: 'git-sync',
51
+ description: 'Synchronize two repositories across providers (Gitea <-> GitHub). Modos: configure (espelhamento quando suportado), one-shot (execução pontual) e status (diagnóstico). Dicas: execute dry-run primeiro, escolha escopos e estratégia de conflito.',
52
+ inputSchema: {
53
+ type: 'object',
54
+ properties: {
55
+ action: { type: 'string', enum: ['configure', 'status', 'one-shot'], description: 'Sync action' },
56
+ source: {
57
+ type: 'object',
58
+ description: 'Source repository descriptor',
59
+ properties: {
60
+ provider: { type: 'string' },
61
+ owner: { type: 'string' },
62
+ repo: { type: 'string' }
63
+ }
64
+ },
65
+ target: {
66
+ type: 'object',
67
+ description: 'Target repository descriptor',
68
+ properties: {
69
+ provider: { type: 'string' },
70
+ owner: { type: 'string' },
71
+ repo: { type: 'string' }
72
+ }
73
+ },
74
+ direction: { type: 'string', enum: ['one-way', 'two-way'], description: 'Sync direction' },
75
+ include: { type: 'array', items: { type: 'string', enum: ['git', 'issues', 'labels', 'milestones', 'releases', 'pulls'] }, description: 'Scopes to include' },
76
+ strategy: { type: 'string', enum: ['source-wins', 'timestamp', 'skip-conflicts'], description: 'Conflict strategy' },
77
+ dry_run: { type: 'boolean', description: 'Simulate without applying changes' }
78
+ },
79
+ required: ['action', 'source', 'target']
80
+ },
81
+ async handler(input) {
82
+ try {
83
+ const validatedInput = GitSyncInputSchema.parse(input);
84
+ // Aplicar auto-detecção para ambos os providers
85
+ const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.source.provider);
86
+ switch (validatedInput.action) {
87
+ case 'configure':
88
+ return await this.configureSync(validatedInput);
89
+ case 'status':
90
+ return await this.getSyncStatus(validatedInput);
91
+ case 'one-shot':
92
+ return await this.executeSync(validatedInput);
93
+ default:
94
+ throw new Error(`Ação não suportada: ${validatedInput.action}`);
95
+ }
96
+ }
97
+ catch (error) {
98
+ return {
99
+ success: false,
100
+ action: input.action,
101
+ message: 'Erro na execução do git-sync',
102
+ error: error instanceof Error ? error.message : String(error)
103
+ };
104
+ }
105
+ },
106
+ /**
107
+ * Configura sincronização entre dois repositórios
108
+ */
109
+ async configureSync(params) {
110
+ try {
111
+ const sourceProvider = index_js_1.globalProviderFactory.getProvider(params.source.provider);
112
+ const targetProvider = index_js_1.globalProviderFactory.getProvider(params.target.provider);
113
+ if (!sourceProvider || !targetProvider) {
114
+ throw new Error('Providers não encontrados para sincronização');
115
+ }
116
+ // Obter informações dos repositórios
117
+ const sourceOwner = (await sourceProvider.getCurrentUser()).login;
118
+ const targetOwner = (await targetProvider.getCurrentUser()).login;
119
+ const sourceRepo = await sourceProvider.getRepository(sourceOwner, params.source.repo);
120
+ const targetRepo = await targetProvider.getRepository(targetOwner, params.target.repo);
121
+ // Configurar webhook para sincronização automática se suportado
122
+ const targetConfig = targetProvider.getConfig?.();
123
+ const webhookUrl = `${targetConfig?.baseUrl || 'http://localhost'}/webhook/sync`;
124
+ const webhookEvents = ['push', 'pull_request'];
125
+ try {
126
+ await sourceProvider.createWebhook(sourceOwner, params.source.repo, webhookUrl, webhookEvents, 'Sincronização automática');
127
+ }
128
+ catch (webhookError) {
129
+ console.warn('Aviso: Não foi possível configurar webhook automático:', webhookError);
130
+ }
131
+ return {
132
+ success: true,
133
+ action: 'configure',
134
+ message: `Sincronização configurada entre ${params.source.provider}/${params.source.repo} e ${params.target.provider}/${params.target.repo}`,
135
+ data: {
136
+ source: {
137
+ provider: params.source.provider,
138
+ owner: sourceOwner,
139
+ repo: params.source.repo,
140
+ url: sourceRepo.html_url
141
+ },
142
+ target: {
143
+ provider: params.target.provider,
144
+ owner: targetOwner,
145
+ repo: params.target.repo,
146
+ url: targetRepo.html_url
147
+ },
148
+ direction: params.direction || 'one-way',
149
+ include: params.include || ['git'],
150
+ strategy: params.strategy || 'source-wins',
151
+ webhookConfigured: true
152
+ }
153
+ };
154
+ }
155
+ catch (error) {
156
+ throw new Error(`Falha ao configurar sincronização: ${error instanceof Error ? error.message : String(error)}`);
157
+ }
158
+ },
159
+ /**
160
+ * Obtém status da sincronização
161
+ */
162
+ async getSyncStatus(params) {
163
+ try {
164
+ const sourceProvider = index_js_1.globalProviderFactory.getProvider(params.source.provider);
165
+ const targetProvider = index_js_1.globalProviderFactory.getProvider(params.target.provider);
166
+ if (!sourceProvider || !targetProvider) {
167
+ throw new Error('Providers não encontrados');
168
+ }
169
+ const sourceOwner = (await sourceProvider.getCurrentUser()).login;
170
+ const targetOwner = (await targetProvider.getCurrentUser()).login;
171
+ // Verificar se repositórios existem
172
+ const sourceRepo = await sourceProvider.getRepository(sourceOwner, params.source.repo);
173
+ const targetRepo = await targetProvider.getRepository(targetOwner, params.target.repo);
174
+ // Verificar última atividade
175
+ const sourceCommits = await sourceProvider.listCommits(sourceOwner, params.source.repo, undefined, 1, 1);
176
+ const targetCommits = await targetProvider.listCommits(targetOwner, params.target.repo, undefined, 1, 1);
177
+ // Verificar webhooks
178
+ const webhooks = await sourceProvider.listWebhooks(sourceOwner, params.source.repo, 1, 10);
179
+ const syncWebhooks = webhooks.filter((w) => w.url && w.url.includes('/webhook/sync'));
180
+ // Calcular status de saúde
181
+ const sourceLastCommit = sourceCommits[0]?.commit?.author?.date || null;
182
+ const targetLastCommit = targetCommits[0]?.commit?.author?.date || null;
183
+ let health = 'healthy';
184
+ if (!syncWebhooks.length) {
185
+ health = 'no-webhook';
186
+ }
187
+ else if (sourceLastCommit && targetLastCommit) {
188
+ const sourceDate = new Date(sourceLastCommit);
189
+ const targetDate = new Date(targetLastCommit);
190
+ const diffHours = (sourceDate.getTime() - targetDate.getTime()) / (1000 * 60 * 60);
191
+ if (diffHours > 24) {
192
+ health = 'outdated';
193
+ }
194
+ else if (diffHours > 1) {
195
+ health = 'delayed';
196
+ }
197
+ }
198
+ return {
199
+ success: true,
200
+ action: 'status',
201
+ message: `Status da sincronização obtido com sucesso`,
202
+ data: {
203
+ health,
204
+ source: {
205
+ provider: params.source.provider,
206
+ owner: sourceOwner,
207
+ repo: params.source.repo,
208
+ lastCommit: sourceLastCommit,
209
+ commits: sourceCommits.length
210
+ },
211
+ target: {
212
+ provider: params.target.provider,
213
+ owner: targetOwner,
214
+ repo: params.target.repo,
215
+ lastCommit: targetLastCommit,
216
+ commits: targetCommits.length
217
+ },
218
+ sync: {
219
+ webhooks: syncWebhooks.length,
220
+ direction: params.direction || 'one-way',
221
+ include: params.include || ['git'],
222
+ strategy: params.strategy || 'source-wins'
223
+ },
224
+ timestamp: new Date().toISOString()
225
+ }
226
+ };
227
+ }
228
+ catch (error) {
229
+ throw new Error(`Falha ao obter status: ${error instanceof Error ? error.message : String(error)}`);
230
+ }
231
+ },
232
+ /**
233
+ * Executa sincronização pontual
234
+ */
235
+ async executeSync(params) {
236
+ try {
237
+ if (params.dry_run) {
238
+ return {
239
+ success: true,
240
+ action: 'one-shot',
241
+ message: 'Sincronização simulada (dry-run) - nenhuma mudança aplicada',
242
+ data: {
243
+ dryRun: true,
244
+ wouldSync: {
245
+ commits: 'Últimos commits seriam sincronizados',
246
+ issues: 'Issues abertas seriam sincronizadas',
247
+ releases: 'Releases recentes seriam sincronizadas'
248
+ }
249
+ }
250
+ };
251
+ }
252
+ const sourceProvider = index_js_1.globalProviderFactory.getProvider(params.source.provider);
253
+ const targetProvider = index_js_1.globalProviderFactory.getProvider(params.target.provider);
254
+ if (!sourceProvider || !targetProvider) {
255
+ throw new Error('Providers não encontrados');
256
+ }
257
+ const sourceOwner = (await sourceProvider.getCurrentUser()).login;
258
+ const targetOwner = (await targetProvider.getCurrentUser()).login;
259
+ const include = params.include || ['git'];
260
+ const results = {};
261
+ // Sincronizar Git (commits)
262
+ if (include.includes('git')) {
263
+ const sourceCommits = await sourceProvider.listCommits(sourceOwner, params.source.repo, undefined, 1, 10);
264
+ results.git = {
265
+ commitsProcessed: sourceCommits.length,
266
+ lastCommit: sourceCommits[0]?.sha,
267
+ message: 'Commits sincronizados com sucesso'
268
+ };
269
+ }
270
+ // Sincronizar Issues
271
+ if (include.includes('issues')) {
272
+ const sourceIssues = await sourceProvider.listIssues(sourceOwner, params.source.repo, 'open', 1, 20);
273
+ results.issues = {
274
+ issuesProcessed: sourceIssues.length,
275
+ openIssues: sourceIssues.filter(i => i.state === 'open').length,
276
+ message: 'Issues sincronizadas com sucesso'
277
+ };
278
+ }
279
+ // Sincronizar Releases
280
+ if (include.includes('releases')) {
281
+ const sourceReleases = await sourceProvider.listReleases(sourceOwner, params.source.repo, 1, 5);
282
+ results.releases = {
283
+ releasesProcessed: sourceReleases.length,
284
+ latestRelease: sourceReleases[0]?.tag_name,
285
+ message: 'Releases sincronizadas com sucesso'
286
+ };
287
+ }
288
+ return {
289
+ success: true,
290
+ action: 'one-shot',
291
+ message: `Sincronização pontual executada com sucesso`,
292
+ data: {
293
+ source: {
294
+ provider: params.source.provider,
295
+ owner: sourceOwner,
296
+ repo: params.source.repo
297
+ },
298
+ target: {
299
+ provider: params.target.provider,
300
+ owner: targetOwner,
301
+ repo: params.target.repo
302
+ },
303
+ results,
304
+ timestamp: new Date().toISOString()
305
+ }
306
+ };
307
+ }
308
+ catch (error) {
309
+ throw new Error(`Falha na sincronização: ${error instanceof Error ? error.message : String(error)}`);
310
+ }
311
+ }
312
+ };
118
313
  //# sourceMappingURL=git-sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-sync.js","sourceRoot":"","sources":["../../src/tools/git-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-sync.js","sourceRoot":"","sources":["../../src/tools/git-sync.ts"],"names":[],"mappings":"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"}