@andrebuzeli/git-mcp 5.5.1 → 5.8.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 (232) hide show
  1. package/README.md +94 -6
  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 +118 -140
  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/resources/toolsGuide.d.ts +12 -0
  13. package/dist/resources/toolsGuide.js +1491 -0
  14. package/dist/server.d.ts +7 -40
  15. package/dist/server.js +59 -696
  16. package/dist/tools/gitAnalytics.d.ts +29 -0
  17. package/dist/tools/gitAnalytics.js +72 -0
  18. package/dist/tools/gitArchive.d.ts +6 -0
  19. package/dist/tools/gitArchive.js +27 -0
  20. package/dist/tools/gitBackup.d.ts +10 -0
  21. package/dist/tools/gitBackup.js +44 -0
  22. package/dist/tools/gitBranches.d.ts +72 -0
  23. package/dist/tools/gitBranches.js +98 -0
  24. package/dist/tools/gitConfig.d.ts +34 -0
  25. package/dist/tools/gitConfig.js +73 -0
  26. package/dist/tools/gitFiles.d.ts +30 -0
  27. package/dist/tools/gitFiles.js +55 -0
  28. package/dist/tools/gitHistory.d.ts +17 -0
  29. package/dist/tools/gitHistory.js +365 -0
  30. package/dist/tools/gitIssues.d.ts +6 -0
  31. package/dist/tools/gitIssues.js +279 -0
  32. package/dist/tools/gitMonitor.d.ts +51 -0
  33. package/dist/tools/gitMonitor.js +102 -0
  34. package/dist/tools/gitPackages.d.ts +6 -0
  35. package/dist/tools/gitPackages.js +28 -0
  36. package/dist/tools/gitPulls.d.ts +6 -0
  37. package/dist/tools/gitPulls.js +288 -0
  38. package/dist/tools/gitRelease.d.ts +6 -0
  39. package/dist/tools/gitRelease.js +321 -0
  40. package/dist/tools/gitRemote.d.ts +51 -0
  41. package/dist/tools/gitRemote.js +68 -0
  42. package/dist/tools/gitReset.d.ts +34 -0
  43. package/dist/tools/gitReset.js +64 -0
  44. package/dist/tools/gitStash.d.ts +41 -0
  45. package/dist/tools/gitStash.js +67 -0
  46. package/dist/tools/gitSync.d.ts +25 -0
  47. package/dist/tools/gitSync.js +51 -0
  48. package/dist/tools/gitTags.d.ts +30 -0
  49. package/dist/tools/gitTags.js +69 -0
  50. package/dist/tools/gitUpdate.d.ts +14 -0
  51. package/dist/tools/gitUpdate.js +374 -0
  52. package/dist/tools/gitUpload.d.ts +11 -0
  53. package/dist/tools/gitUpload.js +342 -0
  54. package/dist/tools/gitWorkflow.d.ts +6 -0
  55. package/dist/tools/gitWorkflow.js +303 -0
  56. package/dist/types.d.ts +17 -0
  57. package/dist/types.js +2 -0
  58. package/dist/utils/errors.d.ts +13 -0
  59. package/dist/utils/errors.js +22 -0
  60. package/dist/utils/safetyController.d.ts +1 -0
  61. package/dist/utils/safetyController.js +15 -0
  62. package/package.json +8 -3
  63. package/dist/config.d.ts.map +0 -1
  64. package/dist/config.js.map +0 -1
  65. package/dist/index.d.ts.map +0 -1
  66. package/dist/index.js.map +0 -1
  67. package/dist/providers/base-provider.d.ts +0 -66
  68. package/dist/providers/base-provider.d.ts.map +0 -1
  69. package/dist/providers/base-provider.js +0 -65
  70. package/dist/providers/base-provider.js.map +0 -1
  71. package/dist/providers/gitea-provider.d.ts +0 -79
  72. package/dist/providers/gitea-provider.d.ts.map +0 -1
  73. package/dist/providers/gitea-provider.js +0 -576
  74. package/dist/providers/gitea-provider.js.map +0 -1
  75. package/dist/providers/github-provider.d.ts +0 -74
  76. package/dist/providers/github-provider.d.ts.map +0 -1
  77. package/dist/providers/github-provider.js +0 -683
  78. package/dist/providers/github-provider.js.map +0 -1
  79. package/dist/providers/index.d.ts +0 -13
  80. package/dist/providers/index.d.ts.map +0 -1
  81. package/dist/providers/index.js +0 -35
  82. package/dist/providers/index.js.map +0 -1
  83. package/dist/providers/provider-factory.d.ts +0 -49
  84. package/dist/providers/provider-factory.d.ts.map +0 -1
  85. package/dist/providers/provider-factory.js +0 -193
  86. package/dist/providers/provider-factory.js.map +0 -1
  87. package/dist/providers/provider-operation-handler.d.ts +0 -115
  88. package/dist/providers/provider-operation-handler.d.ts.map +0 -1
  89. package/dist/providers/provider-operation-handler.js +0 -449
  90. package/dist/providers/provider-operation-handler.js.map +0 -1
  91. package/dist/providers/types.d.ts +0 -200
  92. package/dist/providers/types.d.ts.map +0 -1
  93. package/dist/providers/types.js +0 -8
  94. package/dist/providers/types.js.map +0 -1
  95. package/dist/server.d.ts.map +0 -1
  96. package/dist/server.js.map +0 -1
  97. package/dist/tools/git-analytics.d.ts +0 -237
  98. package/dist/tools/git-analytics.d.ts.map +0 -1
  99. package/dist/tools/git-analytics.js +0 -819
  100. package/dist/tools/git-analytics.js.map +0 -1
  101. package/dist/tools/git-archive.d.ts +0 -113
  102. package/dist/tools/git-archive.d.ts.map +0 -1
  103. package/dist/tools/git-archive.js +0 -466
  104. package/dist/tools/git-archive.js.map +0 -1
  105. package/dist/tools/git-auto-monitor.d.ts +0 -180
  106. package/dist/tools/git-auto-monitor.d.ts.map +0 -1
  107. package/dist/tools/git-auto-monitor.js +0 -522
  108. package/dist/tools/git-auto-monitor.js.map +0 -1
  109. package/dist/tools/git-backup.d.ts +0 -105
  110. package/dist/tools/git-backup.d.ts.map +0 -1
  111. package/dist/tools/git-backup.js +0 -414
  112. package/dist/tools/git-backup.js.map +0 -1
  113. package/dist/tools/git-branches.d.ts +0 -183
  114. package/dist/tools/git-branches.d.ts.map +0 -1
  115. package/dist/tools/git-branches.js +0 -498
  116. package/dist/tools/git-branches.js.map +0 -1
  117. package/dist/tools/git-config.d.ts +0 -119
  118. package/dist/tools/git-config.d.ts.map +0 -1
  119. package/dist/tools/git-config.js +0 -449
  120. package/dist/tools/git-config.js.map +0 -1
  121. package/dist/tools/git-files.d.ts +0 -150
  122. package/dist/tools/git-files.d.ts.map +0 -1
  123. package/dist/tools/git-files.js +0 -527
  124. package/dist/tools/git-files.js.map +0 -1
  125. package/dist/tools/git-history.d.ts +0 -253
  126. package/dist/tools/git-history.d.ts.map +0 -1
  127. package/dist/tools/git-history.js +0 -824
  128. package/dist/tools/git-history.js.map +0 -1
  129. package/dist/tools/git-issues.d.ts +0 -164
  130. package/dist/tools/git-issues.d.ts.map +0 -1
  131. package/dist/tools/git-issues.js +0 -340
  132. package/dist/tools/git-issues.js.map +0 -1
  133. package/dist/tools/git-monitor.d.ts +0 -154
  134. package/dist/tools/git-monitor.d.ts.map +0 -1
  135. package/dist/tools/git-monitor.js +0 -531
  136. package/dist/tools/git-monitor.js.map +0 -1
  137. package/dist/tools/git-packages.d.ts +0 -157
  138. package/dist/tools/git-packages.d.ts.map +0 -1
  139. package/dist/tools/git-packages.js +0 -534
  140. package/dist/tools/git-packages.js.map +0 -1
  141. package/dist/tools/git-pulls.d.ts +0 -180
  142. package/dist/tools/git-pulls.d.ts.map +0 -1
  143. package/dist/tools/git-pulls.js +0 -369
  144. package/dist/tools/git-pulls.js.map +0 -1
  145. package/dist/tools/git-release.d.ts +0 -161
  146. package/dist/tools/git-release.d.ts.map +0 -1
  147. package/dist/tools/git-release.js +0 -466
  148. package/dist/tools/git-release.js.map +0 -1
  149. package/dist/tools/git-remote.d.ts +0 -128
  150. package/dist/tools/git-remote.d.ts.map +0 -1
  151. package/dist/tools/git-remote.js +0 -542
  152. package/dist/tools/git-remote.js.map +0 -1
  153. package/dist/tools/git-reset.d.ts +0 -120
  154. package/dist/tools/git-reset.d.ts.map +0 -1
  155. package/dist/tools/git-reset.js +0 -479
  156. package/dist/tools/git-reset.js.map +0 -1
  157. package/dist/tools/git-stash.d.ts +0 -124
  158. package/dist/tools/git-stash.d.ts.map +0 -1
  159. package/dist/tools/git-stash.js +0 -506
  160. package/dist/tools/git-stash.js.map +0 -1
  161. package/dist/tools/git-sync.d.ts +0 -154
  162. package/dist/tools/git-sync.d.ts.map +0 -1
  163. package/dist/tools/git-sync.js +0 -479
  164. package/dist/tools/git-sync.js.map +0 -1
  165. package/dist/tools/git-tags.d.ts +0 -136
  166. package/dist/tools/git-tags.d.ts.map +0 -1
  167. package/dist/tools/git-tags.js +0 -461
  168. package/dist/tools/git-tags.js.map +0 -1
  169. package/dist/tools/git-update.d.ts +0 -224
  170. package/dist/tools/git-update.d.ts.map +0 -1
  171. package/dist/tools/git-update.js +0 -948
  172. package/dist/tools/git-update.js.map +0 -1
  173. package/dist/tools/git-workflow.d.ts +0 -189
  174. package/dist/tools/git-workflow.d.ts.map +0 -1
  175. package/dist/tools/git-workflow.js +0 -542
  176. package/dist/tools/git-workflow.js.map +0 -1
  177. package/dist/utils/credential-manager.d.ts +0 -119
  178. package/dist/utils/credential-manager.d.ts.map +0 -1
  179. package/dist/utils/credential-manager.js +0 -450
  180. package/dist/utils/credential-manager.js.map +0 -1
  181. package/dist/utils/data-merger.d.ts +0 -49
  182. package/dist/utils/data-merger.d.ts.map +0 -1
  183. package/dist/utils/data-merger.js +0 -233
  184. package/dist/utils/data-merger.js.map +0 -1
  185. package/dist/utils/git-command-executor.d.ts +0 -330
  186. package/dist/utils/git-command-executor.d.ts.map +0 -1
  187. package/dist/utils/git-command-executor.js +0 -901
  188. package/dist/utils/git-command-executor.js.map +0 -1
  189. package/dist/utils/logger.d.ts +0 -143
  190. package/dist/utils/logger.d.ts.map +0 -1
  191. package/dist/utils/logger.js +0 -473
  192. package/dist/utils/logger.js.map +0 -1
  193. package/dist/utils/operation-error-handler.d.ts +0 -97
  194. package/dist/utils/operation-error-handler.d.ts.map +0 -1
  195. package/dist/utils/operation-error-handler.js +0 -367
  196. package/dist/utils/operation-error-handler.js.map +0 -1
  197. package/dist/utils/parameter-validator.d.ts +0 -49
  198. package/dist/utils/parameter-validator.d.ts.map +0 -1
  199. package/dist/utils/parameter-validator.js +0 -647
  200. package/dist/utils/parameter-validator.js.map +0 -1
  201. package/dist/utils/repository-checker.d.ts +0 -46
  202. package/dist/utils/repository-checker.d.ts.map +0 -1
  203. package/dist/utils/repository-checker.js +0 -151
  204. package/dist/utils/repository-checker.js.map +0 -1
  205. package/dist/utils/repository-detector.d.ts +0 -128
  206. package/dist/utils/repository-detector.d.ts.map +0 -1
  207. package/dist/utils/repository-detector.js +0 -422
  208. package/dist/utils/repository-detector.js.map +0 -1
  209. package/dist/utils/repository-sync.d.ts +0 -67
  210. package/dist/utils/repository-sync.d.ts.map +0 -1
  211. package/dist/utils/repository-sync.js +0 -344
  212. package/dist/utils/repository-sync.js.map +0 -1
  213. package/dist/utils/response-formatter.d.ts +0 -146
  214. package/dist/utils/response-formatter.d.ts.map +0 -1
  215. package/dist/utils/response-formatter.js +0 -378
  216. package/dist/utils/response-formatter.js.map +0 -1
  217. package/dist/utils/retry.d.ts +0 -12
  218. package/dist/utils/retry.d.ts.map +0 -1
  219. package/dist/utils/retry.js +0 -28
  220. package/dist/utils/retry.js.map +0 -1
  221. package/dist/utils/safety-warnings.d.ts +0 -56
  222. package/dist/utils/safety-warnings.d.ts.map +0 -1
  223. package/dist/utils/safety-warnings.js +0 -330
  224. package/dist/utils/safety-warnings.js.map +0 -1
  225. package/dist/utils/terminal-controller.d.ts +0 -79
  226. package/dist/utils/terminal-controller.d.ts.map +0 -1
  227. package/dist/utils/terminal-controller.js +0 -291
  228. package/dist/utils/terminal-controller.js.map +0 -1
  229. package/dist/utils/user-friendly-formatter.d.ts +0 -45
  230. package/dist/utils/user-friendly-formatter.d.ts.map +0 -1
  231. package/dist/utils/user-friendly-formatter.js +0 -175
  232. package/dist/utils/user-friendly-formatter.js.map +0 -1
@@ -1,422 +0,0 @@
1
- "use strict";
2
- /**
3
- * Repository Detector
4
- *
5
- * Utility for detecting Git repositories, extracting repository information,
6
- * and auto-detecting project context for Git operations.
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.repositoryDetector = exports.RepositoryDetector = void 0;
13
- const git_command_executor_js_1 = require("./git-command-executor.js");
14
- const terminal_controller_js_1 = require("./terminal-controller.js");
15
- const path_1 = __importDefault(require("path"));
16
- const fs_1 = require("fs");
17
- class RepositoryDetector {
18
- gitExecutor;
19
- terminal;
20
- constructor() {
21
- this.gitExecutor = new git_command_executor_js_1.GitCommandExecutor();
22
- this.terminal = new terminal_controller_js_1.TerminalController();
23
- }
24
- /**
25
- * Detect repository information for a given path
26
- */
27
- async detectRepository(projectPath) {
28
- const resolvedPath = path_1.default.resolve(projectPath);
29
- // Check if directory exists
30
- const dirValidation = await this.terminal.validateDirectory(resolvedPath);
31
- if (!dirValidation.exists) {
32
- return {
33
- isGitRepository: false,
34
- workingDirectory: resolvedPath
35
- };
36
- }
37
- // Check if it's a Git repository
38
- const isGitRepo = await this.gitExecutor.isGitRepository(resolvedPath);
39
- if (!isGitRepo) {
40
- return {
41
- isGitRepository: false,
42
- workingDirectory: resolvedPath
43
- };
44
- }
45
- // Get repository path (could be different from working directory in case of subdirectories)
46
- const repoPathResult = await this.gitExecutor.executeGitCommand('rev-parse', ['--show-toplevel'], resolvedPath);
47
- const repositoryPath = repoPathResult.success
48
- ? path_1.default.resolve(repoPathResult.stdout.trim())
49
- : resolvedPath;
50
- // Get repository name
51
- const repositoryName = path_1.default.basename(repositoryPath);
52
- // Get Git directory
53
- const gitDirResult = await this.gitExecutor.executeGitCommand('rev-parse', ['--git-dir'], repositoryPath);
54
- const gitDirectory = gitDirResult.success
55
- ? path_1.default.resolve(repositoryPath, gitDirResult.stdout.trim())
56
- : path_1.default.join(repositoryPath, '.git');
57
- // Check if bare repository
58
- const isBareResult = await this.gitExecutor.executeGitCommand('rev-parse', ['--is-bare-repository'], repositoryPath);
59
- const isBare = isBareResult.success && isBareResult.stdout.trim() === 'true';
60
- // Get current branch
61
- const branchResult = await this.gitExecutor.getCurrentBranch(repositoryPath);
62
- const currentBranch = branchResult.branch;
63
- // Get remotes
64
- const remotesInfo = await this.getRemotesInfo(repositoryPath);
65
- const remoteOrigin = remotesInfo.find(remote => remote.name === 'origin')?.url;
66
- const detectedProvider = this.detectProviderFromUrl(remoteOrigin);
67
- // Check for uncommitted changes
68
- const statusResult = await this.gitExecutor.getStatus(repositoryPath);
69
- const hasUncommittedChanges = statusResult.success &&
70
- statusResult.parsedStatus &&
71
- !statusResult.parsedStatus.clean;
72
- // Get last commit
73
- const lastCommit = await this.getLastCommitInfo(repositoryPath);
74
- return {
75
- isGitRepository: true,
76
- repositoryPath,
77
- repositoryName,
78
- remoteOrigin,
79
- currentBranch,
80
- detectedProvider,
81
- hasRemotes: remotesInfo.length > 0,
82
- remotes: remotesInfo,
83
- workingDirectory: resolvedPath,
84
- gitDirectory,
85
- isBare,
86
- hasUncommittedChanges,
87
- lastCommit
88
- };
89
- }
90
- /**
91
- * Get complete project context with auto-detection
92
- */
93
- async getProjectContext(projectPath) {
94
- const resolvedPath = path_1.default.resolve(projectPath);
95
- const projectName = path_1.default.basename(resolvedPath);
96
- const repositoryInfo = await this.detectRepository(resolvedPath);
97
- // Auto-detect settings from repository info
98
- const autoDetectedSettings = this.extractAutoDetectedSettings(repositoryInfo);
99
- return {
100
- projectPath: resolvedPath,
101
- projectName,
102
- repositoryInfo,
103
- autoDetectedSettings
104
- };
105
- }
106
- /**
107
- * Find Git repository in current directory or parent directories
108
- */
109
- async findGitRepository(startPath) {
110
- let currentPath = path_1.default.resolve(startPath);
111
- const rootPath = path_1.default.parse(currentPath).root;
112
- while (currentPath !== rootPath) {
113
- const repoInfo = await this.detectRepository(currentPath);
114
- if (repoInfo.isGitRepository) {
115
- return repoInfo;
116
- }
117
- // Move to parent directory
118
- const parentPath = path_1.default.dirname(currentPath);
119
- if (parentPath === currentPath) {
120
- break; // Reached root
121
- }
122
- currentPath = parentPath;
123
- }
124
- return null;
125
- }
126
- /**
127
- * Check if path is within a Git repository
128
- */
129
- async isWithinGitRepository(filePath) {
130
- const resolvedPath = path_1.default.resolve(filePath);
131
- const repoInfo = await this.findGitRepository(resolvedPath);
132
- if (!repoInfo || !repoInfo.repositoryPath) {
133
- return { isWithin: false };
134
- }
135
- const relativePath = path_1.default.relative(repoInfo.repositoryPath, resolvedPath);
136
- const isWithin = !relativePath.startsWith('..') && !path_1.default.isAbsolute(relativePath);
137
- return {
138
- isWithin,
139
- repositoryInfo: repoInfo,
140
- relativePath: isWithin ? relativePath : undefined
141
- };
142
- }
143
- /**
144
- * Validate project path and ensure it's suitable for Git operations
145
- */
146
- async validateProjectPath(projectPath) {
147
- try {
148
- const resolvedPath = path_1.default.resolve(projectPath);
149
- // Check if directory exists
150
- const dirValidation = await this.terminal.validateDirectory(resolvedPath);
151
- if (!dirValidation.exists) {
152
- return {
153
- valid: false,
154
- error: `Directory does not exist: ${resolvedPath}`,
155
- suggestion: 'Ensure the project path exists and is accessible'
156
- };
157
- }
158
- if (!dirValidation.isDirectory) {
159
- return {
160
- valid: false,
161
- error: `Path is not a directory: ${resolvedPath}`,
162
- suggestion: 'Provide a directory path, not a file path'
163
- };
164
- }
165
- // Get repository info
166
- const repositoryInfo = await this.detectRepository(resolvedPath);
167
- return {
168
- valid: true,
169
- repositoryInfo
170
- };
171
- }
172
- catch (error) {
173
- return {
174
- valid: false,
175
- error: `Failed to validate project path: ${error.message}`,
176
- suggestion: 'Check path permissions and accessibility'
177
- };
178
- }
179
- }
180
- /**
181
- * Extract repository name from various sources
182
- */
183
- extractRepositoryName(projectPath, remoteUrl) {
184
- // Try to extract from remote URL first
185
- if (remoteUrl) {
186
- const urlName = this.extractRepoNameFromUrl(remoteUrl);
187
- if (urlName) {
188
- return urlName;
189
- }
190
- }
191
- // Fall back to directory name
192
- return path_1.default.basename(path_1.default.resolve(projectPath));
193
- }
194
- /**
195
- * Extract owner/username from repository URL or environment
196
- */
197
- extractOwnerFromContext(repositoryInfo) {
198
- if (repositoryInfo.remoteOrigin) {
199
- return this.extractOwnerFromUrl(repositoryInfo.remoteOrigin);
200
- }
201
- // Try to get from Git config
202
- return undefined;
203
- }
204
- /**
205
- * Detect provider from remote URL
206
- */
207
- detectProviderFromUrl(url) {
208
- if (!url)
209
- return 'unknown';
210
- const normalizedUrl = url.toLowerCase();
211
- if (normalizedUrl.includes('github.com')) {
212
- return 'github';
213
- }
214
- // Check for common Gitea patterns
215
- if (normalizedUrl.includes('gitea') ||
216
- normalizedUrl.includes('git.') ||
217
- normalizedUrl.match(/:\d+\//) || // Custom port
218
- (!normalizedUrl.includes('github') && !normalizedUrl.includes('gitlab'))) {
219
- return 'gitea';
220
- }
221
- return 'unknown';
222
- }
223
- /**
224
- * Get information about all remotes
225
- */
226
- async getRemotesInfo(repositoryPath) {
227
- const remotesResult = await this.gitExecutor.executeGitCommand('remote', ['-v'], repositoryPath);
228
- if (!remotesResult.success) {
229
- return [];
230
- }
231
- const remotes = [];
232
- const lines = remotesResult.stdout.split('\n').filter(line => line.trim());
233
- for (const line of lines) {
234
- const match = line.match(/^(\S+)\s+(\S+)\s+\(fetch\)$/);
235
- if (match) {
236
- const [, name, url] = match;
237
- const provider = this.detectProviderFromUrl(url);
238
- remotes.push({ name, url, provider });
239
- }
240
- }
241
- return remotes;
242
- }
243
- /**
244
- * Get last commit information
245
- */
246
- async getLastCommitInfo(repositoryPath) {
247
- const commitResult = await this.gitExecutor.executeGitCommand('log', ['-1', '--format=%H|%s|%an|%ad', '--date=iso'], repositoryPath);
248
- if (commitResult.success && commitResult.stdout.trim()) {
249
- const [hash, message, author, date] = commitResult.stdout.trim().split('|');
250
- return { hash, message, author, date };
251
- }
252
- return undefined;
253
- }
254
- /**
255
- * Extract auto-detected settings from repository info
256
- */
257
- extractAutoDetectedSettings(repositoryInfo) {
258
- const settings = {};
259
- if (repositoryInfo.remoteOrigin) {
260
- settings.remoteUrl = repositoryInfo.remoteOrigin;
261
- settings.owner = this.extractOwnerFromUrl(repositoryInfo.remoteOrigin);
262
- settings.repository = this.extractRepoNameFromUrl(repositoryInfo.remoteOrigin);
263
- }
264
- if (repositoryInfo.detectedProvider && repositoryInfo.detectedProvider !== 'unknown') {
265
- settings.provider = repositoryInfo.detectedProvider;
266
- }
267
- return settings;
268
- }
269
- /**
270
- * Extract repository name from URL
271
- */
272
- extractRepoNameFromUrl(url) {
273
- try {
274
- // Handle SSH URLs like git@github.com:owner/repo.git
275
- if (url.startsWith('git@')) {
276
- const match = url.match(/git@[^:]+:([^\/]+)\/(.+?)(?:\.git)?$/);
277
- if (match) {
278
- return match[2];
279
- }
280
- }
281
- // Handle HTTPS URLs like https://github.com/owner/repo.git
282
- if (url.startsWith('http')) {
283
- const urlObj = new URL(url);
284
- const pathParts = urlObj.pathname.split('/').filter(part => part);
285
- if (pathParts.length >= 2) {
286
- const repoName = pathParts[pathParts.length - 1];
287
- return repoName.endsWith('.git') ? repoName.slice(0, -4) : repoName;
288
- }
289
- }
290
- return undefined;
291
- }
292
- catch {
293
- return undefined;
294
- }
295
- }
296
- /**
297
- * Extract owner/username from URL
298
- */
299
- extractOwnerFromUrl(url) {
300
- try {
301
- // Handle SSH URLs like git@github.com:owner/repo.git
302
- if (url.startsWith('git@')) {
303
- const match = url.match(/git@[^:]+:([^\/]+)\/(.+?)(?:\.git)?$/);
304
- if (match) {
305
- return match[1];
306
- }
307
- }
308
- // Handle HTTPS URLs like https://github.com/owner/repo.git
309
- if (url.startsWith('http')) {
310
- const urlObj = new URL(url);
311
- const pathParts = urlObj.pathname.split('/').filter(part => part);
312
- if (pathParts.length >= 2) {
313
- return pathParts[pathParts.length - 2];
314
- }
315
- }
316
- return undefined;
317
- }
318
- catch {
319
- return undefined;
320
- }
321
- }
322
- /**
323
- * Check if directory has Git-related files
324
- */
325
- async hasGitFiles(directoryPath) {
326
- try {
327
- const resolvedPath = path_1.default.resolve(directoryPath);
328
- const files = await fs_1.promises.readdir(resolvedPath);
329
- const gitFiles = [];
330
- let hasGitDir = false;
331
- let hasGitignore = false;
332
- let hasGitAttributes = false;
333
- for (const file of files) {
334
- if (file === '.git') {
335
- hasGitDir = true;
336
- gitFiles.push(file);
337
- }
338
- else if (file === '.gitignore') {
339
- hasGitignore = true;
340
- gitFiles.push(file);
341
- }
342
- else if (file === '.gitattributes') {
343
- hasGitAttributes = true;
344
- gitFiles.push(file);
345
- }
346
- else if (file.startsWith('.git')) {
347
- gitFiles.push(file);
348
- }
349
- }
350
- return {
351
- hasGitDir,
352
- hasGitignore,
353
- hasGitAttributes,
354
- gitFiles
355
- };
356
- }
357
- catch {
358
- return {
359
- hasGitDir: false,
360
- hasGitignore: false,
361
- hasGitAttributes: false,
362
- gitFiles: []
363
- };
364
- }
365
- }
366
- /**
367
- * Suggest Git initialization for non-Git directories
368
- */
369
- async suggestGitInit(projectPath) {
370
- try {
371
- const resolvedPath = path_1.default.resolve(projectPath);
372
- const dirValidation = await this.terminal.validateDirectory(resolvedPath);
373
- if (!dirValidation.exists) {
374
- return {
375
- shouldInit: false,
376
- reason: 'Directory does not exist',
377
- suggestion: 'Create the directory first',
378
- hasExistingFiles: false,
379
- fileCount: 0
380
- };
381
- }
382
- const repoInfo = await this.detectRepository(resolvedPath);
383
- if (repoInfo.isGitRepository) {
384
- return {
385
- shouldInit: false,
386
- reason: 'Already a Git repository',
387
- suggestion: 'Directory is already initialized as a Git repository',
388
- hasExistingFiles: true,
389
- fileCount: 0
390
- };
391
- }
392
- // Check for existing files
393
- const files = await fs_1.promises.readdir(resolvedPath);
394
- const nonHiddenFiles = files.filter(file => !file.startsWith('.'));
395
- const hasExistingFiles = nonHiddenFiles.length > 0;
396
- return {
397
- shouldInit: true,
398
- reason: hasExistingFiles
399
- ? 'Directory has files but is not a Git repository'
400
- : 'Empty directory ready for Git initialization',
401
- suggestion: hasExistingFiles
402
- ? 'Initialize Git repository and make initial commit'
403
- : 'Initialize Git repository',
404
- hasExistingFiles,
405
- fileCount: nonHiddenFiles.length
406
- };
407
- }
408
- catch (error) {
409
- return {
410
- shouldInit: false,
411
- reason: `Error checking directory: ${error.message}`,
412
- suggestion: 'Check directory permissions and try again',
413
- hasExistingFiles: false,
414
- fileCount: 0
415
- };
416
- }
417
- }
418
- }
419
- exports.RepositoryDetector = RepositoryDetector;
420
- // Export singleton instance
421
- exports.repositoryDetector = new RepositoryDetector();
422
- //# sourceMappingURL=repository-detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository-detector.js","sourceRoot":"","sources":["../../src/utils/repository-detector.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- /**
2
- * Repository Synchronizer
3
- *
4
- * Handles automatic synchronization of repositories between GitHub and Gitea providers.
5
- * Ensures repositories exist on both providers and keeps settings in sync.
6
- */
7
- import { ProviderConfig } from '../providers/types.js';
8
- export interface SyncResult {
9
- success: boolean;
10
- synchronized: boolean;
11
- actions: string[];
12
- errors: string[];
13
- details?: any;
14
- }
15
- export declare class RepositorySynchronizer {
16
- private githubProvider?;
17
- private giteaProvider?;
18
- private gitExecutor;
19
- private config;
20
- constructor(config: ProviderConfig);
21
- private getOwnerForProvider;
22
- /**
23
- * Ensures repository exists on both providers, creating if necessary
24
- */
25
- ensureRepositoryExists(repoName: string, provider: 'github' | 'gitea'): Promise<SyncResult>;
26
- /**
27
- * Syncs repository settings (description, visibility, etc.) between providers
28
- */
29
- syncRepositorySettings(repoName: string, provider: 'github' | 'gitea'): Promise<SyncResult>;
30
- /**
31
- * Configures local git remotes for both providers
32
- */
33
- syncRemotes(projectPath: string, repoName: string, provider: 'github' | 'gitea'): Promise<SyncResult>;
34
- /**
35
- * Attempts to recover from operation failures by creating missing resources
36
- */
37
- attemptRecovery(operation: string, params: any, failedProvider: string): Promise<boolean>;
38
- /**
39
- * Checks if repository exists on specified provider
40
- */
41
- private checkRepositoryExists;
42
- /**
43
- * Creates repository on specified provider
44
- */
45
- private createRepository;
46
- /**
47
- * Gets repository information from specified provider
48
- */
49
- private getRepositoryInfo;
50
- /**
51
- * Gets repository clone URL from specified provider
52
- */
53
- private getRepositoryUrl;
54
- /**
55
- * Syncs repository settings from source to target
56
- */
57
- private syncSettingsFromSource;
58
- /**
59
- * Updates repository settings on specified provider
60
- */
61
- private updateRepositorySettings;
62
- /**
63
- * Check if a remote exists in the repository
64
- */
65
- private checkRemoteExists;
66
- }
67
- //# sourceMappingURL=repository-sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository-sync.d.ts","sourceRoot":"","sources":["../../src/utils/repository-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAWlC,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAsDjG;;OAEG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAsCjG;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IA0D3G;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB/F;;OAEG;YACW,qBAAqB;IAYnC;;OAEG;YACW,gBAAgB;IAoB9B;;OAEG;YACW,iBAAiB;IAiB/B;;OAEG;YACW,gBAAgB;IAuB9B;;OAEG;YACW,sBAAsB;IA+BpC;;OAEG;YACW,wBAAwB;IAiBtC;;OAEG;YACW,iBAAiB;CAYhC"}