restricted-github-mcp 1.1.38 → 1.1.40

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.
@@ -4,71 +4,312 @@ import path from "path";
4
4
  import { fileURLToPath } from "url";
5
5
  import dotenv from "dotenv";
6
6
  import { logToFile } from "../logger.js";
7
+ // ============================================================================
8
+ // PATHS & INITIALIZATION
9
+ // ============================================================================
7
10
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
11
  const rootDir = path.resolve(__dirname, "../..");
9
- const envPath = path.join(rootDir, ".env");
12
+ // Root .env contains global variables (MCP_DATA_DIR, AGENT_NAME, PROXY_URL, etc.)
13
+ const rootEnvPath = path.join(rootDir, ".env");
14
+ // Load root .env to get global variables
15
+ if (fsSync.existsSync(rootEnvPath)) {
16
+ dotenv.config({ path: rootEnvPath });
17
+ }
10
18
  /**
11
- * Met à jour ou ajoute une clé dans le fichier .env de manière non-destructive.
19
+ * Resolve data path based on MCP_DATA_DIR environment variable
12
20
  */
13
- export async function updateEnvFile(key, value) {
14
- try {
15
- let envContent = "";
16
- if (fsSync.existsSync(envPath)) {
17
- envContent = await fs.readFile(envPath, "utf-8");
18
- }
19
- const lines = envContent.split(/\r?\n/);
20
- let keyFound = false;
21
- const newLines = lines.map((line) => {
22
- if (line.trim().startsWith(`${key}=`)) {
23
- keyFound = true;
24
- return `${key}=${value}`;
21
+ function getDataDir() {
22
+ const persistenceDir = process.env.MCP_DATA_DIR;
23
+ if (persistenceDir) {
24
+ const resolvedPath = path.isAbsolute(persistenceDir)
25
+ ? persistenceDir
26
+ : path.resolve(rootDir, persistenceDir);
27
+ if (!fsSync.existsSync(resolvedPath)) {
28
+ try {
29
+ fsSync.mkdirSync(resolvedPath, { recursive: true });
30
+ logToFile(`[Config] Created persistence directory: ${resolvedPath}`);
25
31
  }
26
- return line;
27
- });
28
- if (!keyFound) {
29
- if (newLines.length > 0) {
30
- const lastLine = newLines[newLines.length - 1];
31
- if (lastLine !== undefined && lastLine.trim() !== "") {
32
- newLines.push("");
33
- }
32
+ catch (err) {
33
+ logToFile(`[Config] Failed to create persistence directory ${resolvedPath}, falling back to root: ${err.message}`);
34
+ return rootDir;
34
35
  }
35
- newLines.push(`${key}=${value}`);
36
36
  }
37
- await fs.writeFile(envPath, newLines.join("\n").trim() + "\n");
38
- logToFile(`[Config] .env mis à jour : ${key}=${value}`);
39
- // Forcer le rechargement immédiat dans le processus courant
40
- dotenv.config({ path: envPath, override: true });
37
+ return resolvedPath;
41
38
  }
42
- catch (error) {
43
- logToFile(`[Config] Erreur lors de la mise à jour de .env: ${error.message}`);
44
- throw error;
39
+ return rootDir;
40
+ }
41
+ const dataDir = getDataDir();
42
+ // configs.json is in the data directory (contains GitHub-specific configurations)
43
+ const configsPath = path.join(dataDir, "configs.json");
44
+ // ============================================================================
45
+ // GLOBAL ENVIRONMENT VARIABLES (from root .env)
46
+ // ============================================================================
47
+ /**
48
+ * Reload global environment variables from root .env
49
+ */
50
+ export function reloadGlobalEnv() {
51
+ if (fsSync.existsSync(rootEnvPath)) {
52
+ dotenv.config({ path: rootEnvPath, override: true });
45
53
  }
46
54
  }
47
55
  /**
48
- * Récupère la configuration actuelle en rechargeant le fichier .env
56
+ * Get global configuration from root .env
49
57
  */
50
- export function getConfig() {
51
- dotenv.config({ path: envPath, override: true });
58
+ function getGlobalConfig() {
59
+ reloadGlobalEnv();
52
60
  return {
53
- GITHUB_TOKEN: process.env.GITHUB_TOKEN,
54
- TARGET_BRANCH: process.env.TARGET_BRANCH,
55
- BASE_BRANCH: process.env.BASE_BRANCH || "main",
56
- TARGET_REPO: process.env.TARGET_REPO,
57
- REPO_PATH: process.env.REPO_PATH,
58
- READ_ONLY: process.env.READ_ONLY === "true",
59
- INCLUDE_PUBLIC: process.env.INCLUDE_PUBLIC === "true",
60
- INCLUDE_NOT_OWNED: process.env.INCLUDE_NOT_OWNED === "true",
61
- PROXY_URL: process.env.PROXY_URL,
62
- PROJECT_PATH: process.env.PROJECT_PATH,
61
+ PROXY_URL: process.env.PROXY_URL || "",
63
62
  GUI_PATH: process.env.GUI_PATH || "/github-mcp",
64
63
  GUI_NAME: process.env.GUI_NAME || "GitHub MCP Config",
64
+ AGENT_NAME: process.env.AGENT_NAME || "",
65
+ REPO_PATH: process.env.REPO_PATH || "",
66
+ };
67
+ }
68
+ // ============================================================================
69
+ // MULTI-CONFIGURATION MANAGEMENT (configs.json)
70
+ // ============================================================================
71
+ /**
72
+ * Load configs storage file
73
+ */
74
+ export function loadConfigsStorage() {
75
+ try {
76
+ if (fsSync.existsSync(configsPath)) {
77
+ const content = fsSync.readFileSync(configsPath, "utf8");
78
+ const parsed = JSON.parse(content);
79
+ if (parsed.configurations && typeof parsed.currentConfig === "string") {
80
+ return parsed;
81
+ }
82
+ }
83
+ }
84
+ catch (error) {
85
+ logToFile(`[Config] Error loading configs storage: ${error.message}`);
86
+ }
87
+ return { configurations: {}, currentConfig: "" };
88
+ }
89
+ /**
90
+ * Save configs storage file
91
+ */
92
+ export function saveConfigsStorage(storage) {
93
+ fsSync.writeFileSync(configsPath, JSON.stringify(storage, null, 2));
94
+ }
95
+ /**
96
+ * Get all configuration names
97
+ */
98
+ export function getAllConfigNames() {
99
+ const storage = loadConfigsStorage();
100
+ return Object.keys(storage.configurations);
101
+ }
102
+ /**
103
+ * Get configuration by name
104
+ */
105
+ export function getConfigByName(name) {
106
+ const storage = loadConfigsStorage();
107
+ return storage.configurations[name] || null;
108
+ }
109
+ /**
110
+ * Get current configuration name
111
+ */
112
+ export function getCurrentConfigName() {
113
+ const storage = loadConfigsStorage();
114
+ return storage.currentConfig;
115
+ }
116
+ /**
117
+ * Get current active GitHub configuration
118
+ */
119
+ export function getCurrentGitHubConfig() {
120
+ const storage = loadConfigsStorage();
121
+ if (storage.currentConfig && storage.configurations[storage.currentConfig]) {
122
+ return storage.configurations[storage.currentConfig] ?? null;
123
+ }
124
+ return null;
125
+ }
126
+ /**
127
+ * Save a configuration (create or update)
128
+ */
129
+ export function saveConfiguration(name, config) {
130
+ const storage = loadConfigsStorage();
131
+ storage.configurations[name] = config;
132
+ saveConfigsStorage(storage);
133
+ logToFile(`[Config] Saved configuration "${name}"`);
134
+ }
135
+ /**
136
+ * Delete a configuration
137
+ */
138
+ export function deleteConfiguration(name) {
139
+ const storage = loadConfigsStorage();
140
+ if (storage.configurations[name]) {
141
+ delete storage.configurations[name];
142
+ // If we deleted the current config, clear it
143
+ if (storage.currentConfig === name) {
144
+ storage.currentConfig = "";
145
+ }
146
+ saveConfigsStorage(storage);
147
+ logToFile(`[Config] Deleted configuration "${name}"`);
148
+ return true;
149
+ }
150
+ return false;
151
+ }
152
+ /**
153
+ * Set current configuration (just updates the pointer in configs.json)
154
+ */
155
+ export function setCurrentConfiguration(name) {
156
+ const storage = loadConfigsStorage();
157
+ const config = storage.configurations[name];
158
+ if (!config) {
159
+ return false;
160
+ }
161
+ storage.currentConfig = name;
162
+ saveConfigsStorage(storage);
163
+ logToFile(`[Config] Switched to configuration "${name}"`);
164
+ return true;
165
+ }
166
+ /**
167
+ * Update GitHub configuration in the current active config
168
+ */
169
+ export function updateGitHubConfig(updates) {
170
+ const storage = loadConfigsStorage();
171
+ if (!storage.currentConfig) {
172
+ logToFile("[Config] No active configuration to update");
173
+ return;
174
+ }
175
+ const currentConfig = storage.configurations[storage.currentConfig];
176
+ if (!currentConfig) {
177
+ logToFile("[Config] Current configuration not found");
178
+ return;
179
+ }
180
+ // Merge updates
181
+ storage.configurations[storage.currentConfig] = {
182
+ ...currentConfig,
183
+ ...updates,
184
+ };
185
+ saveConfigsStorage(storage);
186
+ logToFile(`[Config] Updated configuration "${storage.currentConfig}"`);
187
+ }
188
+ // ============================================================================
189
+ // UNIFIED CONFIG ACCESS
190
+ // ============================================================================
191
+ /**
192
+ * Load and return full configuration (global + current GitHub config)
193
+ */
194
+ export function getConfig() {
195
+ const globalConfig = getGlobalConfig();
196
+ const githubConfig = getCurrentGitHubConfig();
197
+ return {
198
+ // GitHub-specific (from configs.json)
199
+ GITHUB_TOKEN: githubConfig?.GITHUB_TOKEN || "",
200
+ TARGET_REPO: githubConfig?.TARGET_REPO || "",
201
+ TARGET_BRANCH: githubConfig?.TARGET_BRANCH || "",
202
+ BASE_BRANCH: githubConfig?.BASE_BRANCH || "main",
203
+ PROJECT_PATH: githubConfig?.PROJECT_PATH || "",
204
+ READ_ONLY: githubConfig?.READ_ONLY ?? false,
205
+ INCLUDE_PUBLIC: githubConfig?.INCLUDE_PUBLIC ?? false,
206
+ INCLUDE_NOT_OWNED: githubConfig?.INCLUDE_NOT_OWNED ?? false,
207
+ // Global (from root .env)
208
+ PROXY_URL: globalConfig.PROXY_URL,
209
+ GUI_PATH: globalConfig.GUI_PATH,
210
+ GUI_NAME: globalConfig.GUI_NAME,
211
+ AGENT_NAME: globalConfig.AGENT_NAME,
212
+ // Runtime state
213
+ REPO_PATH: globalConfig.REPO_PATH,
65
214
  };
66
215
  }
216
+ // ============================================================================
217
+ // ENV FILE UPDATES
218
+ // ============================================================================
219
+ // Keys that are stored in .env (global/runtime)
220
+ const GLOBAL_ENV_KEYS = ["PROXY_URL", "GUI_PATH", "GUI_NAME", "AGENT_NAME", "REPO_PATH", "MCP_DATA_DIR"];
221
+ /**
222
+ * Met à jour ou ajoute une clé dans le fichier .env de manière non-destructive.
223
+ * Pour les clés métier GitHub, met à jour configs.json à la place.
224
+ */
225
+ export async function updateEnvFile(key, value) {
226
+ const stringValue = typeof value === "boolean" ? String(value) : value;
227
+ if (GLOBAL_ENV_KEYS.includes(key)) {
228
+ // Write to .env file
229
+ try {
230
+ let envContent = "";
231
+ if (fsSync.existsSync(rootEnvPath)) {
232
+ envContent = await fs.readFile(rootEnvPath, "utf-8");
233
+ }
234
+ const lines = envContent.split(/\r?\n/);
235
+ let keyFound = false;
236
+ const newLines = lines.map((line) => {
237
+ if (line.trim().startsWith(`${key}=`)) {
238
+ keyFound = true;
239
+ return `${key}=${stringValue}`;
240
+ }
241
+ return line;
242
+ });
243
+ if (!keyFound) {
244
+ if (newLines.length > 0) {
245
+ const lastLine = newLines[newLines.length - 1];
246
+ if (lastLine !== undefined && lastLine.trim() !== "") {
247
+ newLines.push("");
248
+ }
249
+ }
250
+ newLines.push(`${key}=${stringValue}`);
251
+ }
252
+ await fs.writeFile(rootEnvPath, newLines.join("\n").trim() + "\n");
253
+ logToFile(`[Config] .env mis à jour : ${key}=${stringValue}`);
254
+ // Force reload in current process
255
+ dotenv.config({ path: rootEnvPath, override: true });
256
+ }
257
+ catch (error) {
258
+ logToFile(`[Config] Erreur lors de la mise à jour de .env: ${error.message}`);
259
+ throw error;
260
+ }
261
+ }
262
+ else {
263
+ // GitHub-specific key -> update configs.json
264
+ const booleanKeys = ["READ_ONLY", "INCLUDE_PUBLIC", "INCLUDE_NOT_OWNED"];
265
+ const updateValue = booleanKeys.includes(key)
266
+ ? stringValue === "true"
267
+ : stringValue;
268
+ updateGitHubConfig({ [key]: updateValue });
269
+ }
270
+ }
271
+ // ============================================================================
272
+ // MIGRATION
273
+ // ============================================================================
274
+ /**
275
+ * Migrate from legacy .env format to multi-config
276
+ * Creates a "Configuration par défaut" from current root .env GitHub variables
277
+ */
278
+ export function migrateFromLegacyEnv() {
279
+ const storage = loadConfigsStorage();
280
+ // Only migrate if no configs exist yet
281
+ if (Object.keys(storage.configurations).length === 0) {
282
+ reloadGlobalEnv();
283
+ const githubToken = process.env.GITHUB_TOKEN;
284
+ const targetRepo = process.env.TARGET_REPO;
285
+ // Check if there's any GitHub config data in root .env
286
+ if (githubToken || targetRepo) {
287
+ const defaultName = "Configuration par défaut";
288
+ const configData = {
289
+ GITHUB_TOKEN: githubToken || "",
290
+ TARGET_REPO: targetRepo || "",
291
+ TARGET_BRANCH: process.env.TARGET_BRANCH || "",
292
+ BASE_BRANCH: process.env.BASE_BRANCH || "main",
293
+ PROJECT_PATH: process.env.PROJECT_PATH || "",
294
+ READ_ONLY: process.env.READ_ONLY === "true",
295
+ INCLUDE_PUBLIC: process.env.INCLUDE_PUBLIC === "true",
296
+ INCLUDE_NOT_OWNED: process.env.INCLUDE_NOT_OWNED === "true",
297
+ };
298
+ storage.configurations[defaultName] = configData;
299
+ storage.currentConfig = defaultName;
300
+ saveConfigsStorage(storage);
301
+ logToFile(`[Config] Migrated legacy .env GitHub config to "${defaultName}"`);
302
+ }
303
+ }
304
+ }
305
+ // ============================================================================
306
+ // IPC UTILITIES
307
+ // ============================================================================
67
308
  /**
68
309
  * Envoie un message via IPC de manière sécurisée
69
310
  */
70
311
  export function safeSend(target, msg) {
71
- if (target && typeof target.send === 'function' && target.connected) {
312
+ if (target && typeof target.send === "function" && target.connected) {
72
313
  try {
73
314
  return target.send(msg);
74
315
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "restricted-github-mcp",
3
- "version": "1.1.38",
3
+ "version": "1.1.40",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "files": [