restricted-github-mcp 1.1.22 → 1.1.25
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.
- package/dist/config-server.d.ts.map +1 -1
- package/dist/config-server.js +49 -2
- package/dist/config-server.js.map +1 -1
- package/dist/index.js +136 -92
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/public/index.html +81 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-server.d.ts","sourceRoot":"","sources":["../src/config-server.ts"],"names":[],"mappings":"AASA,wBAAsB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"config-server.d.ts","sourceRoot":"","sources":["../src/config-server.ts"],"names":[],"mappings":"AASA,wBAAsB,iBAAiB,kBAiJtC"}
|
package/dist/config-server.js
CHANGED
|
@@ -55,9 +55,14 @@ export async function startConfigServer() {
|
|
|
55
55
|
const envPath = path.join(process.cwd(), ".env");
|
|
56
56
|
logToFile(`[GUI] Saving config to: ${envPath}`);
|
|
57
57
|
fs.writeFileSync(envPath, envContent);
|
|
58
|
-
// Update current process env
|
|
58
|
+
// Update current process env
|
|
59
59
|
Object.assign(process.env, newConfig);
|
|
60
|
-
|
|
60
|
+
// Notify master process about the update
|
|
61
|
+
logToFile("[GUI] Sending CONFIG_UPDATED to master process");
|
|
62
|
+
if (process.send) {
|
|
63
|
+
process.send({ type: "CONFIG_UPDATED", config: newConfig });
|
|
64
|
+
}
|
|
65
|
+
logToFile("[GUI] Configuration updated and master notified");
|
|
61
66
|
res.sendStatus(200);
|
|
62
67
|
}
|
|
63
68
|
catch (error) {
|
|
@@ -67,6 +72,48 @@ export async function startConfigServer() {
|
|
|
67
72
|
res.status(500).json({ error: msg });
|
|
68
73
|
}
|
|
69
74
|
});
|
|
75
|
+
app.post("/api/restart", (req, res) => {
|
|
76
|
+
logToFile("[GUI] POST /api/restart called (Full MCP)");
|
|
77
|
+
try {
|
|
78
|
+
res.json({ message: "Restarting GitHub MCP server..." });
|
|
79
|
+
setTimeout(() => {
|
|
80
|
+
logToFile("[GUI] Sending RESTART signal to master process");
|
|
81
|
+
if (process.send) {
|
|
82
|
+
process.send({ type: "RESTART" });
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
logToFile("[GUI] ERROR: process.send is not defined");
|
|
86
|
+
process.exit(0);
|
|
87
|
+
}
|
|
88
|
+
}, 500);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
const msg = `[GUI] Failed to restart: ${error.message}`;
|
|
92
|
+
logToFile(msg);
|
|
93
|
+
res.status(500).json({ error: msg });
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
app.post("/api/stop", (req, res) => {
|
|
97
|
+
logToFile("[GUI] POST /api/stop called (Full MCP)");
|
|
98
|
+
try {
|
|
99
|
+
res.json({ message: "Stopping GitHub MCP server..." });
|
|
100
|
+
setTimeout(() => {
|
|
101
|
+
logToFile("[GUI] Sending STOP signal to master process");
|
|
102
|
+
if (process.send) {
|
|
103
|
+
process.send({ type: "STOP" });
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
logToFile("[GUI] ERROR: process.send is not defined");
|
|
107
|
+
process.exit(0);
|
|
108
|
+
}
|
|
109
|
+
}, 500);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
const msg = `[GUI] Failed to stop: ${error.message}`;
|
|
113
|
+
logToFile(msg);
|
|
114
|
+
res.status(500).json({ error: msg });
|
|
115
|
+
}
|
|
116
|
+
});
|
|
70
117
|
try {
|
|
71
118
|
logToFile(`[GUI] Attempting to listen on port ${port}...`);
|
|
72
119
|
const serverListener = app.listen(port, () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-server.js","sourceRoot":"","sources":["../src/config-server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config-server.js","sourceRoot":"","sources":["../src/config-server.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,75 +14,72 @@ import { logToFile } from "./logger.js";
|
|
|
14
14
|
import { startConfigServer } from "./config-server.js";
|
|
15
15
|
const __filename = fileURLToPath(import.meta.url);
|
|
16
16
|
const __dirname = path.dirname(__filename);
|
|
17
|
+
/**
|
|
18
|
+
* État du processus GUI
|
|
19
|
+
*/
|
|
20
|
+
let currentGuiProcess = null;
|
|
21
|
+
/**
|
|
22
|
+
* Accès dynamique à la configuration
|
|
23
|
+
*/
|
|
24
|
+
const getConfig = () => ({
|
|
25
|
+
GITHUB_TOKEN: process.env.GITHUB_TOKEN,
|
|
26
|
+
TARGET_BRANCH: process.env.TARGET_BRANCH,
|
|
27
|
+
BASE_BRANCH: process.env.BASE_BRANCH || "main",
|
|
28
|
+
TARGET_REPO: process.env.TARGET_REPO,
|
|
29
|
+
REPO_PATH: process.env.REPO_PATH,
|
|
30
|
+
READ_ONLY: process.env.READ_ONLY === "true"
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Instance Octokit dynamique
|
|
34
|
+
*/
|
|
35
|
+
let _octokit = null;
|
|
36
|
+
const getOctokit = () => {
|
|
37
|
+
const { GITHUB_TOKEN } = getConfig();
|
|
38
|
+
if (!GITHUB_TOKEN)
|
|
39
|
+
return null;
|
|
40
|
+
if (!_octokit) {
|
|
41
|
+
_octokit = new Octokit({ auth: GITHUB_TOKEN });
|
|
42
|
+
}
|
|
43
|
+
return _octokit;
|
|
44
|
+
};
|
|
17
45
|
/**
|
|
18
46
|
* Lance le serveur de configuration dans un processus séparé
|
|
19
47
|
*/
|
|
20
48
|
function spawnGuiProcess() {
|
|
21
49
|
const guiPath = path.join(__dirname, "gui.js");
|
|
22
50
|
logToFile(`[MASTER] Spawning GUI process: ${guiPath}`);
|
|
23
|
-
|
|
24
|
-
stdio: 'inherit',
|
|
51
|
+
currentGuiProcess = fork(guiPath, [], {
|
|
52
|
+
stdio: 'inherit',
|
|
25
53
|
env: process.env
|
|
26
54
|
});
|
|
27
|
-
|
|
55
|
+
currentGuiProcess.on('error', (err) => {
|
|
28
56
|
logToFile(`[MASTER] Failed to spawn GUI process: ${err.message}`);
|
|
29
57
|
});
|
|
30
|
-
|
|
58
|
+
currentGuiProcess.on('exit', (code) => {
|
|
31
59
|
logToFile(`[MASTER] GUI process exited with code ${code}. Restarting in 5s...`);
|
|
32
|
-
|
|
60
|
+
currentGuiProcess = null;
|
|
33
61
|
setTimeout(spawnGuiProcess, 5000);
|
|
34
62
|
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
if (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
logToFile(msg);
|
|
53
|
-
process.exit(1);
|
|
54
|
-
});
|
|
55
|
-
process.on('unhandledRejection', (reason, promise) => {
|
|
56
|
-
const msg = `FATAL UNHANDLED REJECTION [PID ${process.pid}]: ${reason}\nPromise: ${promise}`;
|
|
57
|
-
console.error(msg);
|
|
58
|
-
logToFile(msg);
|
|
59
|
-
});
|
|
60
|
-
process.on('exit', (code) => {
|
|
61
|
-
logToFile(`PROCESS EXITING [PID ${process.pid}] with code: ${code}`);
|
|
62
|
-
});
|
|
63
|
-
['SIGINT', 'SIGTERM', 'SIGQUIT'].forEach(signal => {
|
|
64
|
-
process.on(signal, () => {
|
|
65
|
-
logToFile(`PROCESS RECEIVED SIGNAL ${signal} [PID ${process.pid}]`);
|
|
66
|
-
process.exit(0);
|
|
63
|
+
currentGuiProcess.on('message', (msg) => {
|
|
64
|
+
if (msg && msg.type === 'RESTART') {
|
|
65
|
+
logToFile("[MASTER] Restart signal received from GUI. Exiting main process...");
|
|
66
|
+
setTimeout(() => process.exit(0), 500);
|
|
67
|
+
}
|
|
68
|
+
if (msg && msg.type === 'STOP') {
|
|
69
|
+
logToFile("[MASTER] Stop signal received from GUI. Shutting down everything...");
|
|
70
|
+
setTimeout(() => process.exit(0), 500);
|
|
71
|
+
}
|
|
72
|
+
if (msg && msg.type === 'CONFIG_UPDATED') {
|
|
73
|
+
logToFile("[MASTER] Config update signal received from GUI.");
|
|
74
|
+
// On fusionne la nouvelle config dans l'environnement du Master
|
|
75
|
+
Object.assign(process.env, msg.config);
|
|
76
|
+
// On force la recréation d'Octokit au prochain appel
|
|
77
|
+
_octokit = null;
|
|
78
|
+
logToFile("[MASTER] Local process.env updated.");
|
|
79
|
+
}
|
|
67
80
|
});
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
logToFile(`PID: ${process.pid}`);
|
|
71
|
-
logToFile(`Arguments: ${JSON.stringify(process.argv)}`);
|
|
72
|
-
logToFile(`Working directory: ${process.cwd()}`);
|
|
73
|
-
// Add a heartbeat to monitor life
|
|
74
|
-
setInterval(() => {
|
|
75
|
-
logToFile("HEARTBEAT: Server is still alive");
|
|
76
|
-
}, 30000);
|
|
77
|
-
// Capture when stdin (the MCP pipe) is closed
|
|
78
|
-
process.stdin.on('close', () => {
|
|
79
|
-
logToFile("STDIN CLOSED: The MCP client has disconnected.");
|
|
80
|
-
process.exit(0);
|
|
81
|
-
});
|
|
82
|
-
const GITHUB_TOKEN = process.env.GITHUB_TOKEN;
|
|
83
|
-
const TARGET_BRANCH = process.env.TARGET_BRANCH;
|
|
84
|
-
const BASE_BRANCH = process.env.BASE_BRANCH || "main";
|
|
85
|
-
const TARGET_REPO = process.env.TARGET_REPO;
|
|
81
|
+
return currentGuiProcess;
|
|
82
|
+
}
|
|
86
83
|
/**
|
|
87
84
|
* Met à jour durablement une variable dans le fichier .env
|
|
88
85
|
*/
|
|
@@ -112,15 +109,11 @@ function sanitizeBranchName(branch) {
|
|
|
112
109
|
return branch.replace(/[\/\x5C\x3A\x2A\x3F\x22\x3C\x3E\x7C\s]+/g, "-")
|
|
113
110
|
.replace(/^-+|-+$/g, ""); // Nettoie les tirets au début et à la fin
|
|
114
111
|
}
|
|
115
|
-
const READ_ONLY = process.env.READ_ONLY === "true";
|
|
116
|
-
// Source de vérité pour le chemin du dépôt (chargé via .env ou mis à jour via clone)
|
|
117
|
-
if (process.env.REPO_PATH === undefined) {
|
|
118
|
-
process.env.REPO_PATH = "";
|
|
119
|
-
}
|
|
120
112
|
/**
|
|
121
113
|
* Génère le header d'authentification Basic pour Git
|
|
122
114
|
*/
|
|
123
115
|
function getGitAuthHeader() {
|
|
116
|
+
const { GITHUB_TOKEN } = getConfig();
|
|
124
117
|
if (!GITHUB_TOKEN)
|
|
125
118
|
return null;
|
|
126
119
|
const auth = Buffer.from(`x-access-token:${GITHUB_TOKEN}`).toString('base64');
|
|
@@ -149,13 +142,57 @@ function execGitSecure(command, options) {
|
|
|
149
142
|
}
|
|
150
143
|
// Lancement de la GUI dans un processus SÉPARÉ
|
|
151
144
|
spawnGuiProcess();
|
|
145
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, "..", "package.json"), "utf8"));
|
|
146
|
+
const VERSION = pkg.version;
|
|
147
|
+
// Handle --version flag without exiting
|
|
148
|
+
if (process.argv.includes("--version") || process.argv.includes("-v")) {
|
|
149
|
+
console.error(`Restricted GitHub MCP Version: ${VERSION}`);
|
|
150
|
+
}
|
|
151
|
+
// MCP servers must not log to stdout as it's used for the protocol.
|
|
152
|
+
// Some libraries might log to stdout on initialization.
|
|
153
|
+
// We redirect all console.log to console.error to avoid polluting stdout.
|
|
154
|
+
console.log = console.error;
|
|
155
|
+
dotenv.config();
|
|
156
|
+
// Global error handlers to catch silent crashes
|
|
157
|
+
process.on('uncaughtException', (error) => {
|
|
158
|
+
const msg = `FATAL UNCAUGHT EXCEPTION [PID ${process.pid}]: ${error.message}\nStack: ${error.stack}`;
|
|
159
|
+
console.error(msg);
|
|
160
|
+
logToFile(msg);
|
|
161
|
+
process.exit(1);
|
|
162
|
+
});
|
|
163
|
+
process.on('unhandledRejection', (reason, promise) => {
|
|
164
|
+
const msg = `FATAL UNHANDLED REJECTION [PID ${process.pid}]: ${reason}\nPromise: ${promise}`;
|
|
165
|
+
console.error(msg);
|
|
166
|
+
logToFile(msg);
|
|
167
|
+
});
|
|
168
|
+
process.on('exit', (code) => {
|
|
169
|
+
logToFile(`PROCESS EXITING [PID ${process.pid}] with code: ${code}`);
|
|
170
|
+
});
|
|
171
|
+
['SIGINT', 'SIGTERM', 'SIGQUIT'].forEach(signal => {
|
|
172
|
+
process.on(signal, () => {
|
|
173
|
+
logToFile(`PROCESS RECEIVED SIGNAL ${signal} [PID ${process.pid}]`);
|
|
174
|
+
process.exit(0);
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
logToFile(`--- Server starting ---`);
|
|
178
|
+
logToFile(`PID: ${process.pid}`);
|
|
179
|
+
logToFile(`Arguments: ${JSON.stringify(process.argv)}`);
|
|
180
|
+
logToFile(`Working directory: ${process.cwd()}`);
|
|
181
|
+
// Add a heartbeat to monitor life
|
|
182
|
+
setInterval(() => {
|
|
183
|
+
logToFile("HEARTBEAT: Server is still alive");
|
|
184
|
+
}, 30000);
|
|
185
|
+
// Capture when stdin (the MCP pipe) is closed
|
|
186
|
+
process.stdin.on('close', () => {
|
|
187
|
+
logToFile("STDIN CLOSED: The MCP client has disconnected.");
|
|
188
|
+
process.exit(0);
|
|
189
|
+
});
|
|
152
190
|
// On ne bloque plus le démarrage si le token est manquant
|
|
153
|
-
if (!GITHUB_TOKEN) {
|
|
191
|
+
if (!getConfig().GITHUB_TOKEN) {
|
|
154
192
|
const msg = "⚠️ GITHUB_TOKEN manquant. Le serveur MCP est en attente de configuration via http://localhost:3000";
|
|
155
193
|
console.error(msg);
|
|
156
194
|
logToFile(msg);
|
|
157
195
|
}
|
|
158
|
-
const octokit = GITHUB_TOKEN ? new Octokit({ auth: GITHUB_TOKEN }) : null;
|
|
159
196
|
const server = new Server({
|
|
160
197
|
name: "restricted-github-mcp",
|
|
161
198
|
version: "1.0.0",
|
|
@@ -223,19 +260,20 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
223
260
|
}));
|
|
224
261
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
225
262
|
const { name, arguments: args } = request.params;
|
|
263
|
+
const config = getConfig();
|
|
226
264
|
try {
|
|
227
265
|
logToFile(`Executing tool: ${name}`);
|
|
228
266
|
switch (name) {
|
|
229
267
|
case "push": {
|
|
230
|
-
if (READ_ONLY)
|
|
268
|
+
if (config.READ_ONLY)
|
|
231
269
|
throw new Error("Server is in read-only mode");
|
|
232
270
|
const { message } = args;
|
|
233
|
-
const finalRepoPath =
|
|
271
|
+
const finalRepoPath = config.REPO_PATH;
|
|
234
272
|
if (!finalRepoPath) {
|
|
235
273
|
throw new Error("Repository path is not defined. You must call 'clone' first.");
|
|
236
274
|
}
|
|
237
275
|
const execOptions = { cwd: finalRepoPath };
|
|
238
|
-
if (!TARGET_BRANCH) {
|
|
276
|
+
if (!config.TARGET_BRANCH) {
|
|
239
277
|
throw new Error("TARGET_BRANCH environment variable is not defined");
|
|
240
278
|
}
|
|
241
279
|
try {
|
|
@@ -258,8 +296,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
258
296
|
// 3. Pull latest changes to avoid non-fast-forward errors
|
|
259
297
|
// On utilise rebase pour garder un historique propre
|
|
260
298
|
try {
|
|
261
|
-
logToFile(`Attempting to pull latest changes from ${TARGET_BRANCH}...`);
|
|
262
|
-
execGitSecure(`pull --rebase origin ${TARGET_BRANCH}`, execOptions);
|
|
299
|
+
logToFile(`Attempting to pull latest changes from ${config.TARGET_BRANCH}...`);
|
|
300
|
+
execGitSecure(`pull --rebase origin ${config.TARGET_BRANCH}`, execOptions);
|
|
263
301
|
}
|
|
264
302
|
catch (pullError) {
|
|
265
303
|
logToFile(`Pull rebase failed or skipped (may be normal if branch is new): ${pullError.message}`);
|
|
@@ -267,11 +305,11 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
267
305
|
}
|
|
268
306
|
// 4. Push to target branch
|
|
269
307
|
// On n'injecte plus le token dans l'URL, on utilise l'URL standard
|
|
270
|
-
const remote = TARGET_REPO
|
|
271
|
-
? `https://github.com/${TARGET_REPO}.git`
|
|
308
|
+
const remote = config.TARGET_REPO
|
|
309
|
+
? `https://github.com/${config.TARGET_REPO}.git`
|
|
272
310
|
: "origin";
|
|
273
|
-
execGitSecure(`push ${remote} HEAD:${TARGET_BRANCH}`, execOptions);
|
|
274
|
-
const successMsg = `Successfully committed and pushed all changes to branch ${TARGET_BRANCH} from ${finalRepoPath}`;
|
|
311
|
+
execGitSecure(`push ${remote} HEAD:${config.TARGET_BRANCH}`, execOptions);
|
|
312
|
+
const successMsg = `Successfully committed and pushed all changes to branch ${config.TARGET_BRANCH} from ${finalRepoPath}`;
|
|
275
313
|
logToFile(successMsg);
|
|
276
314
|
return {
|
|
277
315
|
content: [{ type: "text", text: successMsg }],
|
|
@@ -284,19 +322,20 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
284
322
|
}
|
|
285
323
|
}
|
|
286
324
|
case "pull_request": {
|
|
287
|
-
|
|
325
|
+
const octokit = getOctokit();
|
|
326
|
+
if (!config.GITHUB_TOKEN) {
|
|
288
327
|
throw new Error("GITHUB_TOKEN est manquant. Veuillez le configurer via l'interface graphique.");
|
|
289
328
|
}
|
|
290
|
-
if (READ_ONLY)
|
|
329
|
+
if (config.READ_ONLY)
|
|
291
330
|
throw new Error("Server is in read-only mode");
|
|
292
331
|
const { title, body } = args;
|
|
293
|
-
if (!TARGET_REPO || !TARGET_REPO.includes("/")) {
|
|
332
|
+
if (!config.TARGET_REPO || !config.TARGET_REPO.includes("/")) {
|
|
294
333
|
throw new Error("TARGET_REPO must be defined as 'owner/repo'");
|
|
295
334
|
}
|
|
296
|
-
if (!TARGET_BRANCH) {
|
|
335
|
+
if (!config.TARGET_BRANCH) {
|
|
297
336
|
throw new Error("TARGET_BRANCH is not defined");
|
|
298
337
|
}
|
|
299
|
-
const [owner, repo] = TARGET_REPO.split("/");
|
|
338
|
+
const [owner, repo] = config.TARGET_REPO.split("/");
|
|
300
339
|
if (!owner || !repo) {
|
|
301
340
|
throw new Error("Invalid TARGET_REPO format. Expected 'owner/repo'");
|
|
302
341
|
}
|
|
@@ -308,8 +347,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
308
347
|
repo,
|
|
309
348
|
title,
|
|
310
349
|
body,
|
|
311
|
-
head: TARGET_BRANCH,
|
|
312
|
-
base: BASE_BRANCH,
|
|
350
|
+
head: config.TARGET_BRANCH,
|
|
351
|
+
base: config.BASE_BRANCH,
|
|
313
352
|
});
|
|
314
353
|
const successMsg = `Pull request created successfully: ${response.data.html_url}`;
|
|
315
354
|
logToFile(successMsg);
|
|
@@ -350,13 +389,13 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
350
389
|
}
|
|
351
390
|
case "get_info": {
|
|
352
391
|
const info = {
|
|
353
|
-
TARGET_REPO,
|
|
354
|
-
TARGET_BRANCH,
|
|
355
|
-
BASE_BRANCH,
|
|
356
|
-
REPO_PATH:
|
|
357
|
-
READ_ONLY,
|
|
392
|
+
TARGET_REPO: config.TARGET_REPO,
|
|
393
|
+
TARGET_BRANCH: config.TARGET_BRANCH,
|
|
394
|
+
BASE_BRANCH: config.BASE_BRANCH,
|
|
395
|
+
REPO_PATH: config.REPO_PATH || "Not defined (Call 'clone' first)",
|
|
396
|
+
READ_ONLY: config.READ_ONLY,
|
|
358
397
|
CURRENT_WORKING_DIR: process.cwd(),
|
|
359
|
-
GITHUB_TOKEN_LAST_5: GITHUB_TOKEN ? `***${GITHUB_TOKEN.slice(-5)}` : "Non configuré",
|
|
398
|
+
GITHUB_TOKEN_LAST_5: config.GITHUB_TOKEN ? `***${config.GITHUB_TOKEN.slice(-5)}` : "Non configuré",
|
|
360
399
|
};
|
|
361
400
|
return {
|
|
362
401
|
content: [{
|
|
@@ -366,24 +405,25 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
366
405
|
};
|
|
367
406
|
}
|
|
368
407
|
case "clone": {
|
|
369
|
-
|
|
408
|
+
const octokit = getOctokit();
|
|
409
|
+
if (!config.GITHUB_TOKEN) {
|
|
370
410
|
throw new Error("GITHUB_TOKEN est manquant. Le clonage nécessite une authentification.");
|
|
371
411
|
}
|
|
372
|
-
if (!TARGET_REPO || !TARGET_REPO.includes("/")) {
|
|
412
|
+
if (!config.TARGET_REPO || !config.TARGET_REPO.includes("/")) {
|
|
373
413
|
throw new Error("TARGET_REPO must be defined as 'owner/repo'");
|
|
374
414
|
}
|
|
375
|
-
if (!TARGET_BRANCH) {
|
|
415
|
+
if (!config.TARGET_BRANCH) {
|
|
376
416
|
throw new Error("TARGET_BRANCH environment variable is not defined");
|
|
377
417
|
}
|
|
378
|
-
const branchName = TARGET_BRANCH;
|
|
418
|
+
const branchName = config.TARGET_BRANCH;
|
|
379
419
|
const { project_path } = args;
|
|
380
|
-
const repoParts = TARGET_REPO.split("/");
|
|
420
|
+
const repoParts = config.TARGET_REPO.split("/");
|
|
381
421
|
const owner = repoParts[0];
|
|
382
422
|
const repo = repoParts[1];
|
|
383
423
|
if (!owner || !repo) {
|
|
384
424
|
throw new Error("Invalid TARGET_REPO format. Expected 'owner/repo'");
|
|
385
425
|
}
|
|
386
|
-
const remote = `https://github.com/${TARGET_REPO}.git`;
|
|
426
|
+
const remote = `https://github.com/${config.TARGET_REPO}.git`;
|
|
387
427
|
const sanitizedBranch = sanitizeBranchName(branchName);
|
|
388
428
|
const finalRepoPath = path.join(project_path, sanitizedBranch);
|
|
389
429
|
logToFile(`[CLONE] Destination calculée : ${finalRepoPath}`);
|
|
@@ -397,6 +437,10 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
397
437
|
// 1. Clone into the configured path
|
|
398
438
|
logToFile(`Cloning ${remote} into ${finalRepoPath}...`);
|
|
399
439
|
execGitSecure(`clone ${remote} "${finalRepoPath}"`, {});
|
|
440
|
+
// Configurer l'identité de l'agent automatiquement après le clone
|
|
441
|
+
logToFile(`[CLONE] Configuration de l'identité Git (Agent Zero)...`);
|
|
442
|
+
execGitSecure(`config user.name "Agent Zero"`, { cwd: finalRepoPath });
|
|
443
|
+
execGitSecure(`config user.email "agentzero@arakei.net"`, { cwd: finalRepoPath });
|
|
400
444
|
// 2. Check if branch exists on remote
|
|
401
445
|
let branchExistsOnRemote = false;
|
|
402
446
|
try {
|
|
@@ -432,7 +476,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
432
476
|
// On met à jour l'environnement ET on persiste dans le .env
|
|
433
477
|
process.env.REPO_PATH = finalRepoPath;
|
|
434
478
|
updateEnvFile("REPO_PATH", finalRepoPath);
|
|
435
|
-
const successMsg = `Successfully cloned ${TARGET_REPO} into ${finalRepoPath} and updated existing branch ${branchName}`;
|
|
479
|
+
const successMsg = `Successfully cloned ${config.TARGET_REPO} into ${finalRepoPath} and updated existing branch ${branchName}`;
|
|
436
480
|
logToFile(successMsg);
|
|
437
481
|
return {
|
|
438
482
|
content: [{ type: "text", text: successMsg }],
|
|
@@ -446,7 +490,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
446
490
|
// On met à jour l'environnement ET on persiste dans le .env
|
|
447
491
|
process.env.REPO_PATH = finalRepoPath;
|
|
448
492
|
updateEnvFile("REPO_PATH", finalRepoPath);
|
|
449
|
-
const successMsg = `Successfully cloned ${TARGET_REPO} into ${finalRepoPath}, created and pushed new branch ${branchName} to remote`;
|
|
493
|
+
const successMsg = `Successfully cloned ${config.TARGET_REPO} into ${finalRepoPath}, created and pushed new branch ${branchName} to remote`;
|
|
450
494
|
logToFile(successMsg);
|
|
451
495
|
return {
|
|
452
496
|
content: [{ type: "text", text: successMsg }],
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/public/index.html
CHANGED
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
<h1 class="text-3xl font-bold mb-6 text-blue-400 flex items-center">
|
|
18
18
|
<svg class="w-8 h-8 mr-3" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
19
19
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"></path>
|
|
20
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
21
20
|
</svg>
|
|
22
21
|
Configuration MCP GitHub
|
|
23
22
|
</h1>
|
|
@@ -30,10 +29,24 @@
|
|
|
30
29
|
</div>
|
|
31
30
|
</div>
|
|
32
31
|
|
|
33
|
-
<div class="pt-4">
|
|
32
|
+
<div class="pt-4 space-y-3">
|
|
34
33
|
<button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-bold py-3 px-4 rounded-lg transition duration-200 shadow-lg flex justify-center items-center">
|
|
35
34
|
<span>Enregistrer la configuration</span>
|
|
36
35
|
</button>
|
|
36
|
+
|
|
37
|
+
<button type="button" id="restartBtn" class="w-full bg-amber-600 hover:bg-amber-700 text-white font-bold py-3 px-4 rounded-lg transition duration-200 shadow-lg flex justify-center items-center">
|
|
38
|
+
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
39
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path>
|
|
40
|
+
</svg>
|
|
41
|
+
<span>Redémarrer le serveur MCP</span>
|
|
42
|
+
</button>
|
|
43
|
+
|
|
44
|
+
<button type="button" id="stopBtn" class="w-full bg-red-600 hover:bg-red-700 text-white font-bold py-3 px-4 rounded-lg transition duration-200 shadow-lg flex justify-center items-center">
|
|
45
|
+
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
46
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
|
|
47
|
+
</svg>
|
|
48
|
+
<span>Arrêter le serveur MCP</span>
|
|
49
|
+
</button>
|
|
37
50
|
</div>
|
|
38
51
|
</form>
|
|
39
52
|
|
|
@@ -48,6 +61,8 @@
|
|
|
48
61
|
const form = document.getElementById('configForm');
|
|
49
62
|
const status = document.getElementById('status');
|
|
50
63
|
const inputsContainer = document.getElementById('inputs');
|
|
64
|
+
const restartBtn = document.getElementById('restartBtn');
|
|
65
|
+
const stopBtn = document.getElementById('stopBtn');
|
|
51
66
|
|
|
52
67
|
const fields = [
|
|
53
68
|
{ id: 'GITHUB_TOKEN', label: 'GitHub Token', type: 'password', placeholder: 'ghp_...' },
|
|
@@ -121,6 +136,70 @@
|
|
|
121
136
|
}
|
|
122
137
|
};
|
|
123
138
|
|
|
139
|
+
restartBtn.onclick = async () => {
|
|
140
|
+
if (!confirm('Êtes-vous sûr de vouloir redémarrer le serveur MCP ? Cela coupera la connexion actuelle pour appliquer les changements.')) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
try {
|
|
145
|
+
restartBtn.disabled = true;
|
|
146
|
+
restartBtn.innerHTML = '<span>Redémarrage en cours...</span>';
|
|
147
|
+
|
|
148
|
+
const response = await fetch('/api/restart', {
|
|
149
|
+
method: 'POST'
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
if (response.ok) {
|
|
153
|
+
showStatus('Signal de redémarrage envoyé. Le serveur va se relancer...', 'success');
|
|
154
|
+
// On attend un peu que le serveur s'arrête
|
|
155
|
+
setTimeout(() => {
|
|
156
|
+
window.location.reload();
|
|
157
|
+
}, 3000);
|
|
158
|
+
} else {
|
|
159
|
+
throw new Error('Erreur lors de la demande de redémarrage');
|
|
160
|
+
}
|
|
161
|
+
} catch (error) {
|
|
162
|
+
showStatus(error.message, 'error');
|
|
163
|
+
restartBtn.disabled = false;
|
|
164
|
+
restartBtn.innerHTML = `
|
|
165
|
+
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
166
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path>
|
|
167
|
+
</svg>
|
|
168
|
+
<span>Redémarrer le serveur MCP</span>
|
|
169
|
+
`;
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
stopBtn.onclick = async () => {
|
|
174
|
+
if (!confirm('Êtes-vous sûr de vouloir arrêter COMPLÈTEMENT le serveur MCP ?')) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
try {
|
|
179
|
+
stopBtn.disabled = true;
|
|
180
|
+
stopBtn.innerHTML = '<span>Arrêt en cours...</span>';
|
|
181
|
+
|
|
182
|
+
const response = await fetch('/api/stop', {
|
|
183
|
+
method: 'POST'
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
if (response.ok) {
|
|
187
|
+
showStatus('Le serveur s\'arrête. Cette page ne sera plus disponible.', 'success');
|
|
188
|
+
} else {
|
|
189
|
+
throw new Error('Erreur lors de la demande d\'arrêt');
|
|
190
|
+
}
|
|
191
|
+
} catch (error) {
|
|
192
|
+
showStatus(error.message, 'error');
|
|
193
|
+
stopBtn.disabled = false;
|
|
194
|
+
stopBtn.innerHTML = `
|
|
195
|
+
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
196
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
|
|
197
|
+
</svg>
|
|
198
|
+
<span>Arrêter le serveur MCP</span>
|
|
199
|
+
`;
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
|
|
124
203
|
fetchConfig();
|
|
125
204
|
</script>
|
|
126
205
|
</body>
|