@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,119 +0,0 @@
1
- /**
2
- * Credential Manager
3
- *
4
- * Secure credential handling for Git MCP server with support for
5
- * environment variables, validation, and provider-specific credentials.
6
- */
7
- export interface GitHubCredentials {
8
- token: string;
9
- username: string;
10
- }
11
- export interface GiteaCredentials {
12
- url: string;
13
- token: string;
14
- username: string;
15
- }
16
- export interface CredentialValidationResult {
17
- valid: boolean;
18
- error?: string;
19
- suggestions?: string[];
20
- }
21
- export interface ProviderCredentials {
22
- github?: GitHubCredentials;
23
- gitea?: GiteaCredentials;
24
- }
25
- export declare class CredentialManager {
26
- private credentials;
27
- private validationCache;
28
- private cacheTimeout;
29
- constructor();
30
- /**
31
- * Load credentials from environment variables
32
- */
33
- loadCredentials(): void;
34
- /**
35
- * Get GitHub credentials
36
- */
37
- getGitHubCredentials(): GitHubCredentials | undefined;
38
- /**
39
- * Get Gitea credentials
40
- */
41
- getGiteaCredentials(): GiteaCredentials | undefined;
42
- /**
43
- * Get credentials for specific provider
44
- */
45
- getProviderCredentials(provider: 'github' | 'gitea'): GitHubCredentials | GiteaCredentials | undefined;
46
- /**
47
- * Check if provider is configured
48
- */
49
- isProviderConfigured(provider: 'github' | 'gitea'): boolean;
50
- /**
51
- * Get list of configured providers
52
- */
53
- getConfiguredProviders(): ('github' | 'gitea')[];
54
- /**
55
- * Validate provider credentials
56
- */
57
- validateProviderCredentials(provider: 'github' | 'gitea'): CredentialValidationResult;
58
- /**
59
- * Validate GitHub credentials
60
- */
61
- private validateGitHubCredentials;
62
- /**
63
- * Validate Gitea credentials
64
- */
65
- private validateGiteaCredentials;
66
- /**
67
- * Validate all configured credentials
68
- */
69
- validateAllCredentials(): Record<string, CredentialValidationResult>;
70
- /**
71
- * Get credential configuration status
72
- */
73
- getCredentialStatus(): {
74
- configured: string[];
75
- missing: string[];
76
- valid: string[];
77
- invalid: string[];
78
- errors: Record<string, string>;
79
- };
80
- /**
81
- * Get configuration guide for missing providers
82
- */
83
- getConfigurationGuide(providers?: ('github' | 'gitea')[]): Record<string, {
84
- envVars: string[];
85
- example: Record<string, string>;
86
- instructions: string[];
87
- }>;
88
- /**
89
- * Mask sensitive credential information for logging
90
- */
91
- maskCredentials(credentials: any): any;
92
- /**
93
- * Mask token for safe logging
94
- */
95
- private maskToken;
96
- /**
97
- * Clear validation cache
98
- */
99
- clearValidationCache(): void;
100
- /**
101
- * Refresh credentials from environment
102
- */
103
- refreshCredentials(): void;
104
- /**
105
- * Get credential summary for status reporting
106
- */
107
- getCredentialSummary(): {
108
- totalProviders: number;
109
- configuredProviders: number;
110
- validProviders: number;
111
- providers: Record<string, {
112
- configured: boolean;
113
- valid: boolean;
114
- error?: string;
115
- }>;
116
- };
117
- }
118
- export declare const credentialManager: CredentialManager;
119
- //# sourceMappingURL=credential-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credential-manager.d.ts","sourceRoot":"","sources":["../../src/utils/credential-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,eAAe,CAAqF;IAC5G,OAAO,CAAC,YAAY,CAAiB;;IAMrC;;OAEG;IACH,eAAe,IAAI,IAAI;IAuDvB;;OAEG;IACH,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IAIrD;;OAEG;IACH,mBAAmB,IAAI,gBAAgB,GAAG,SAAS;IAInD;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,SAAS;IAItG;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO;IAI3D;;OAEG;IACH,sBAAsB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE;IAIhD;;OAEG;IACH,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,0BAA0B;IAsCrF;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAoEjC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgFhC;;OAEG;IACH,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAUpE;;OAEG;IACH,mBAAmB,IAAI;QACrB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC;IAiCD;;OAEG;IACH,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;QACxE,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IA+CF;;OAEG;IACH,eAAe,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG;IAsBtC;;OAEG;IACH,OAAO,CAAC,SAAS;IAYjB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAK5B;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAM1B;;OAEG;IACH,oBAAoB,IAAI;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;YACxB,UAAU,EAAE,OAAO,CAAC;YACpB,KAAK,EAAE,OAAO,CAAC;YACf,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACJ;CA8BF;AAGD,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -1,450 +0,0 @@
1
- "use strict";
2
- /**
3
- * Credential Manager
4
- *
5
- * Secure credential handling for Git MCP server with support for
6
- * environment variables, validation, and provider-specific credentials.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.credentialManager = exports.CredentialManager = void 0;
10
- const logger_js_1 = require("./logger.js");
11
- class CredentialManager {
12
- credentials = {};
13
- validationCache = new Map();
14
- cacheTimeout = 5 * 60 * 1000; // 5 minutes
15
- constructor() {
16
- this.loadCredentials();
17
- }
18
- /**
19
- * Load credentials from environment variables
20
- */
21
- loadCredentials() {
22
- logger_js_1.logger.debug('Loading credentials from environment variables', 'CREDENTIALS');
23
- // Load GitHub credentials
24
- const githubToken = process.env.GITHUB_TOKEN;
25
- const githubUsername = process.env.GITHUB_USERNAME;
26
- if (githubToken && githubUsername) {
27
- this.credentials.github = {
28
- token: githubToken,
29
- username: githubUsername
30
- };
31
- logger_js_1.logger.info('GitHub credentials loaded', 'CREDENTIALS', {
32
- username: githubUsername,
33
- tokenLength: githubToken.length
34
- });
35
- }
36
- else {
37
- logger_js_1.logger.debug('GitHub credentials not found in environment', 'CREDENTIALS', {
38
- hasToken: !!githubToken,
39
- hasUsername: !!githubUsername
40
- });
41
- }
42
- // Load Gitea credentials
43
- const giteaUrl = process.env.GITEA_URL;
44
- const giteaToken = process.env.GITEA_TOKEN;
45
- const giteaUsername = process.env.GITEA_USERNAME;
46
- if (giteaUrl && giteaToken && giteaUsername) {
47
- this.credentials.gitea = {
48
- url: giteaUrl,
49
- token: giteaToken,
50
- username: giteaUsername
51
- };
52
- logger_js_1.logger.info('Gitea credentials loaded', 'CREDENTIALS', {
53
- url: giteaUrl,
54
- username: giteaUsername,
55
- tokenLength: giteaToken.length
56
- });
57
- }
58
- else {
59
- logger_js_1.logger.debug('Gitea credentials not found in environment', 'CREDENTIALS', {
60
- hasUrl: !!giteaUrl,
61
- hasToken: !!giteaToken,
62
- hasUsername: !!giteaUsername
63
- });
64
- }
65
- // Log overall credential status
66
- const availableProviders = Object.keys(this.credentials);
67
- logger_js_1.logger.configuration('loaded', {
68
- availableProviders,
69
- providerCount: availableProviders.length
70
- });
71
- }
72
- /**
73
- * Get GitHub credentials
74
- */
75
- getGitHubCredentials() {
76
- return this.credentials.github;
77
- }
78
- /**
79
- * Get Gitea credentials
80
- */
81
- getGiteaCredentials() {
82
- return this.credentials.gitea;
83
- }
84
- /**
85
- * Get credentials for specific provider
86
- */
87
- getProviderCredentials(provider) {
88
- return this.credentials[provider];
89
- }
90
- /**
91
- * Check if provider is configured
92
- */
93
- isProviderConfigured(provider) {
94
- return !!this.credentials[provider];
95
- }
96
- /**
97
- * Get list of configured providers
98
- */
99
- getConfiguredProviders() {
100
- return Object.keys(this.credentials);
101
- }
102
- /**
103
- * Validate provider credentials
104
- */
105
- validateProviderCredentials(provider) {
106
- const cacheKey = `validate_${provider}`;
107
- // Check cache first
108
- const cached = this.validationCache.get(cacheKey);
109
- if (cached && Date.now() - cached.timestamp < this.cacheTimeout) {
110
- return cached.result;
111
- }
112
- let result;
113
- if (provider === 'github') {
114
- result = this.validateGitHubCredentials();
115
- }
116
- else if (provider === 'gitea') {
117
- result = this.validateGiteaCredentials();
118
- }
119
- else {
120
- result = {
121
- valid: false,
122
- error: `Unknown provider: ${provider}`,
123
- suggestions: ['Use "github" or "gitea" as provider']
124
- };
125
- }
126
- // Cache result
127
- this.validationCache.set(cacheKey, {
128
- result,
129
- timestamp: Date.now()
130
- });
131
- logger_js_1.logger.debug(`Credential validation for ${provider}`, 'CREDENTIALS', {
132
- provider,
133
- valid: result.valid,
134
- error: result.error
135
- });
136
- return result;
137
- }
138
- /**
139
- * Validate GitHub credentials
140
- */
141
- validateGitHubCredentials() {
142
- const creds = this.credentials.github;
143
- if (!creds) {
144
- return {
145
- valid: false,
146
- error: 'GitHub credentials not configured',
147
- suggestions: [
148
- 'Set GITHUB_TOKEN environment variable',
149
- 'Set GITHUB_USERNAME environment variable',
150
- 'Ensure both variables are set correctly'
151
- ]
152
- };
153
- }
154
- // Validate token format
155
- if (!creds.token.startsWith('ghp_') && !creds.token.startsWith('github_pat_')) {
156
- return {
157
- valid: false,
158
- error: 'Invalid GitHub token format',
159
- suggestions: [
160
- 'GitHub personal access tokens should start with "ghp_" or "github_pat_"',
161
- 'Generate a new token at https://github.com/settings/tokens',
162
- 'Ensure the token has required permissions'
163
- ]
164
- };
165
- }
166
- // Validate token length
167
- if (creds.token.length < 20) {
168
- return {
169
- valid: false,
170
- error: 'GitHub token appears to be too short',
171
- suggestions: [
172
- 'Verify the complete token was copied',
173
- 'Generate a new token if the current one is incomplete'
174
- ]
175
- };
176
- }
177
- // Validate username format
178
- if (!creds.username || creds.username.trim().length === 0) {
179
- return {
180
- valid: false,
181
- error: 'GitHub username is empty',
182
- suggestions: [
183
- 'Set GITHUB_USERNAME environment variable',
184
- 'Use your GitHub username (not email)'
185
- ]
186
- };
187
- }
188
- // Basic username validation
189
- if (!/^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(creds.username)) {
190
- return {
191
- valid: false,
192
- error: 'Invalid GitHub username format',
193
- suggestions: [
194
- 'GitHub usernames can only contain alphanumeric characters and hyphens',
195
- 'Username cannot start or end with a hyphen',
196
- 'Verify your GitHub username is correct'
197
- ]
198
- };
199
- }
200
- return { valid: true };
201
- }
202
- /**
203
- * Validate Gitea credentials
204
- */
205
- validateGiteaCredentials() {
206
- const creds = this.credentials.gitea;
207
- if (!creds) {
208
- return {
209
- valid: false,
210
- error: 'Gitea credentials not configured',
211
- suggestions: [
212
- 'Set GITEA_URL environment variable',
213
- 'Set GITEA_TOKEN environment variable',
214
- 'Set GITEA_USERNAME environment variable',
215
- 'Ensure all three variables are set correctly'
216
- ]
217
- };
218
- }
219
- // Validate URL format
220
- try {
221
- const url = new URL(creds.url);
222
- if (!['http:', 'https:'].includes(url.protocol)) {
223
- return {
224
- valid: false,
225
- error: 'Gitea URL must use HTTP or HTTPS protocol',
226
- suggestions: [
227
- 'Use https:// or http:// in GITEA_URL',
228
- 'Example: https://gitea.example.com'
229
- ]
230
- };
231
- }
232
- }
233
- catch {
234
- return {
235
- valid: false,
236
- error: 'Invalid Gitea URL format',
237
- suggestions: [
238
- 'Provide a valid URL in GITEA_URL',
239
- 'Example: https://gitea.example.com',
240
- 'Include protocol (https:// or http://)'
241
- ]
242
- };
243
- }
244
- // Validate token
245
- if (!creds.token || creds.token.trim().length === 0) {
246
- return {
247
- valid: false,
248
- error: 'Gitea token is empty',
249
- suggestions: [
250
- 'Set GITEA_TOKEN environment variable',
251
- 'Generate a token in your Gitea instance settings'
252
- ]
253
- };
254
- }
255
- // Validate token length (Gitea tokens are typically 40 characters)
256
- if (creds.token.length < 20) {
257
- return {
258
- valid: false,
259
- error: 'Gitea token appears to be too short',
260
- suggestions: [
261
- 'Verify the complete token was copied',
262
- 'Generate a new token if the current one is incomplete'
263
- ]
264
- };
265
- }
266
- // Validate username
267
- if (!creds.username || creds.username.trim().length === 0) {
268
- return {
269
- valid: false,
270
- error: 'Gitea username is empty',
271
- suggestions: [
272
- 'Set GITEA_USERNAME environment variable',
273
- 'Use your Gitea username (not email)'
274
- ]
275
- };
276
- }
277
- return { valid: true };
278
- }
279
- /**
280
- * Validate all configured credentials
281
- */
282
- validateAllCredentials() {
283
- const results = {};
284
- for (const provider of this.getConfiguredProviders()) {
285
- results[provider] = this.validateProviderCredentials(provider);
286
- }
287
- return results;
288
- }
289
- /**
290
- * Get credential configuration status
291
- */
292
- getCredentialStatus() {
293
- const allProviders = ['github', 'gitea'];
294
- const configured = [];
295
- const missing = [];
296
- const valid = [];
297
- const invalid = [];
298
- const errors = {};
299
- for (const provider of allProviders) {
300
- if (this.isProviderConfigured(provider)) {
301
- configured.push(provider);
302
- const validation = this.validateProviderCredentials(provider);
303
- if (validation.valid) {
304
- valid.push(provider);
305
- }
306
- else {
307
- invalid.push(provider);
308
- errors[provider] = validation.error || 'Unknown validation error';
309
- }
310
- }
311
- else {
312
- missing.push(provider);
313
- }
314
- }
315
- return {
316
- configured,
317
- missing,
318
- valid,
319
- invalid,
320
- errors
321
- };
322
- }
323
- /**
324
- * Get configuration guide for missing providers
325
- */
326
- getConfigurationGuide(providers) {
327
- const targetProviders = providers || ['github', 'gitea'];
328
- const guide = {};
329
- for (const provider of targetProviders) {
330
- if (provider === 'github') {
331
- guide.github = {
332
- envVars: ['GITHUB_TOKEN', 'GITHUB_USERNAME'],
333
- example: {
334
- GITHUB_TOKEN: 'ghp_xxxxxxxxxxxxxxxxxxxx',
335
- GITHUB_USERNAME: 'your-github-username'
336
- },
337
- instructions: [
338
- '1. Go to https://github.com/settings/tokens',
339
- '2. Click "Generate new token (classic)"',
340
- '3. Select required scopes (repo, user)',
341
- '4. Copy the generated token',
342
- '5. Set GITHUB_TOKEN environment variable',
343
- '6. Set GITHUB_USERNAME to your GitHub username'
344
- ]
345
- };
346
- }
347
- if (provider === 'gitea') {
348
- guide.gitea = {
349
- envVars: ['GITEA_URL', 'GITEA_TOKEN', 'GITEA_USERNAME'],
350
- example: {
351
- GITEA_URL: 'https://gitea.example.com',
352
- GITEA_TOKEN: 'your-gitea-access-token',
353
- GITEA_USERNAME: 'your-gitea-username'
354
- },
355
- instructions: [
356
- '1. Log in to your Gitea instance',
357
- '2. Go to Settings > Applications',
358
- '3. Generate new access token',
359
- '4. Copy the generated token',
360
- '5. Set GITEA_URL to your Gitea instance URL',
361
- '6. Set GITEA_TOKEN to the generated token',
362
- '7. Set GITEA_USERNAME to your Gitea username'
363
- ]
364
- };
365
- }
366
- }
367
- return guide;
368
- }
369
- /**
370
- * Mask sensitive credential information for logging
371
- */
372
- maskCredentials(credentials) {
373
- if (!credentials || typeof credentials !== 'object') {
374
- return credentials;
375
- }
376
- const masked = { ...credentials };
377
- // Mask tokens
378
- if (masked.token && typeof masked.token === 'string') {
379
- masked.token = this.maskToken(masked.token);
380
- }
381
- // Recursively mask nested objects
382
- for (const key in masked) {
383
- if (typeof masked[key] === 'object' && masked[key] !== null) {
384
- masked[key] = this.maskCredentials(masked[key]);
385
- }
386
- }
387
- return masked;
388
- }
389
- /**
390
- * Mask token for safe logging
391
- */
392
- maskToken(token) {
393
- if (token.length <= 8) {
394
- return '*'.repeat(token.length);
395
- }
396
- const start = token.substring(0, 4);
397
- const end = token.substring(token.length - 4);
398
- const middle = '*'.repeat(token.length - 8);
399
- return `${start}${middle}${end}`;
400
- }
401
- /**
402
- * Clear validation cache
403
- */
404
- clearValidationCache() {
405
- this.validationCache.clear();
406
- logger_js_1.logger.debug('Credential validation cache cleared', 'CREDENTIALS');
407
- }
408
- /**
409
- * Refresh credentials from environment
410
- */
411
- refreshCredentials() {
412
- this.clearValidationCache();
413
- this.loadCredentials();
414
- logger_js_1.logger.info('Credentials refreshed from environment', 'CREDENTIALS');
415
- }
416
- /**
417
- * Get credential summary for status reporting
418
- */
419
- getCredentialSummary() {
420
- const status = this.getCredentialStatus();
421
- const providers = {};
422
- // Add configured providers
423
- for (const provider of status.configured) {
424
- const isValid = status.valid.includes(provider);
425
- providers[provider] = {
426
- configured: true,
427
- valid: isValid,
428
- error: isValid ? undefined : status.errors[provider]
429
- };
430
- }
431
- // Add missing providers
432
- for (const provider of status.missing) {
433
- providers[provider] = {
434
- configured: false,
435
- valid: false,
436
- error: 'Not configured'
437
- };
438
- }
439
- return {
440
- totalProviders: 2, // github + gitea
441
- configuredProviders: status.configured.length,
442
- validProviders: status.valid.length,
443
- providers
444
- };
445
- }
446
- }
447
- exports.CredentialManager = CredentialManager;
448
- // Export singleton instance
449
- exports.credentialManager = new CredentialManager();
450
- //# sourceMappingURL=credential-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../../src/utils/credential-manager.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Data Merger
3
- *
4
- * Handles intelligent merging of data from multiple providers for read operations.
5
- * Removes duplicates, combines unique fields, and maintains data integrity.
6
- */
7
- import { ProviderResult } from '../providers/types.js';
8
- export declare class DataMerger {
9
- /**
10
- * Merges list operation results from multiple providers
11
- * Removes duplicates based on name/id fields and combines arrays
12
- */
13
- static mergeListResults(results: ProviderResult[]): any[];
14
- /**
15
- * Merges get operation results from multiple providers
16
- * Combines unique fields from different providers into a single object
17
- */
18
- static mergeGetResults(results: ProviderResult[]): any;
19
- /**
20
- * Merges search operation results from multiple providers
21
- * Combines search results, removes duplicates, and ranks by relevance
22
- */
23
- static mergeSearchResults(results: ProviderResult[]): any[];
24
- /**
25
- * Generates a unique key for an item based on common identifier fields
26
- */
27
- private static getItemKey;
28
- /**
29
- * Merges two objects, preserving unique fields from each provider
30
- */
31
- private static mergeObjects;
32
- /**
33
- * Calculates relevance score for search results
34
- */
35
- private static calculateRelevance;
36
- /**
37
- * Sorts items by date field (updated_at, created_at, etc.)
38
- */
39
- private static sortItemsByDate;
40
- /**
41
- * Compares two items by date fields
42
- */
43
- private static compareByDate;
44
- /**
45
- * Removes duplicate items from an array based on a field
46
- */
47
- static removeDuplicates(items: any[], field: string): any[];
48
- }
49
- //# sourceMappingURL=data-merger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-merger.d.ts","sourceRoot":"","sources":["../../src/utils/data-merger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,qBAAa,UAAU;IACrB;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,GAAG,EAAE;IAkCzD;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,GAAG;IAiCtD;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,GAAG,EAAE;IAuD3D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAsBzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAmB3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAyBjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAI9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE;CAW5D"}