@imenam/mcp-github 1.1.53 → 1.1.55

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 (64) hide show
  1. package/README.md +276 -191
  2. package/dist/__tests__/gateway-exec/session.test.d.ts +2 -0
  3. package/dist/__tests__/gateway-exec/session.test.d.ts.map +1 -0
  4. package/dist/__tests__/gateway-exec/session.test.js +72 -0
  5. package/dist/__tests__/gateway-exec/session.test.js.map +1 -0
  6. package/dist/__tests__/git-proxy/pkt-line.test.d.ts +2 -0
  7. package/dist/__tests__/git-proxy/pkt-line.test.d.ts.map +1 -0
  8. package/dist/__tests__/git-proxy/pkt-line.test.js +93 -0
  9. package/dist/__tests__/git-proxy/pkt-line.test.js.map +1 -0
  10. package/dist/__tests__/git-proxy/proxy.e2e.test.d.ts +2 -0
  11. package/dist/__tests__/git-proxy/proxy.e2e.test.d.ts.map +1 -0
  12. package/dist/__tests__/git-proxy/proxy.e2e.test.js +206 -0
  13. package/dist/__tests__/git-proxy/proxy.e2e.test.js.map +1 -0
  14. package/dist/__tests__/handlers/agent-git.test.d.ts +2 -0
  15. package/dist/__tests__/handlers/agent-git.test.d.ts.map +1 -0
  16. package/dist/__tests__/handlers/agent-git.test.js +124 -0
  17. package/dist/__tests__/handlers/agent-git.test.js.map +1 -0
  18. package/dist/__tests__/utils/git.test.js +9 -2
  19. package/dist/__tests__/utils/git.test.js.map +1 -1
  20. package/dist/config-server.d.ts.map +1 -1
  21. package/dist/config-server.js +8 -0
  22. package/dist/config-server.js.map +1 -1
  23. package/dist/gateway-exec/session.d.ts +36 -0
  24. package/dist/gateway-exec/session.d.ts.map +1 -0
  25. package/dist/gateway-exec/session.js +116 -0
  26. package/dist/gateway-exec/session.js.map +1 -0
  27. package/dist/git-proxy/pkt-line.d.ts +50 -0
  28. package/dist/git-proxy/pkt-line.d.ts.map +1 -0
  29. package/dist/git-proxy/pkt-line.js +110 -0
  30. package/dist/git-proxy/pkt-line.js.map +1 -0
  31. package/dist/git-proxy/server.d.ts +27 -0
  32. package/dist/git-proxy/server.d.ts.map +1 -0
  33. package/dist/git-proxy/server.js +216 -0
  34. package/dist/git-proxy/server.js.map +1 -0
  35. package/dist/handlers/agent-git.d.ts +5 -0
  36. package/dist/handlers/agent-git.d.ts.map +1 -0
  37. package/dist/handlers/agent-git.js +205 -0
  38. package/dist/handlers/agent-git.js.map +1 -0
  39. package/dist/handlers/git.d.ts +1 -1
  40. package/dist/handlers/git.d.ts.map +1 -1
  41. package/dist/handlers/git.js +75 -121
  42. package/dist/handlers/git.js.map +1 -1
  43. package/dist/handlers/github.d.ts.map +1 -1
  44. package/dist/handlers/github.js +12 -7
  45. package/dist/handlers/github.js.map +1 -1
  46. package/dist/handlers/info.d.ts.map +1 -1
  47. package/dist/handlers/info.js +14 -3
  48. package/dist/handlers/info.js.map +1 -1
  49. package/dist/index.js +41 -3
  50. package/dist/index.js.map +1 -1
  51. package/dist/utils/git.d.ts +4 -1
  52. package/dist/utils/git.d.ts.map +1 -1
  53. package/dist/utils/git.js +30 -20
  54. package/dist/utils/git.js.map +1 -1
  55. package/dist/utils/role.d.ts +15 -0
  56. package/dist/utils/role.d.ts.map +1 -0
  57. package/dist/utils/role.js +18 -0
  58. package/dist/utils/role.js.map +1 -0
  59. package/dist/utils/target.d.ts +13 -0
  60. package/dist/utils/target.d.ts.map +1 -0
  61. package/dist/utils/target.js +38 -0
  62. package/dist/utils/target.js.map +1 -0
  63. package/package.json +2 -2
  64. package/public/index.html +5 -1
@@ -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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"}
@@ -0,0 +1,36 @@
1
+ export declare const EXEC_ARG = "_gateway_exec";
2
+ export declare const EXEC_META = "gateway/exec";
3
+ export declare const EXEC_VERSION = 1;
4
+ export interface ExecStep {
5
+ command: string;
6
+ args: string[];
7
+ cwd?: string;
8
+ env?: Record<string, string>;
9
+ }
10
+ export interface StepResult {
11
+ code: number | null;
12
+ stdout: string;
13
+ stderr: string;
14
+ error?: string;
15
+ }
16
+ export interface AgentContext {
17
+ /** Dossier de lancement du relais agent, sur la machine de l'agent. */
18
+ cwd: string;
19
+ /** Le relais agent détient-il un GATEWAY_TOKEN à injecter ? */
20
+ gatewayToken: boolean;
21
+ }
22
+ export type Run = (steps: ExecStep[]) => Promise<StepResult[]>;
23
+ export interface ToolResult {
24
+ content: {
25
+ type: "text";
26
+ text: string;
27
+ }[];
28
+ isError?: boolean;
29
+ _meta?: Record<string, unknown>;
30
+ }
31
+ /**
32
+ * Point d'entrée d'un outil qui s'exécute sur la machine de l'agent. Au premier appel,
33
+ * démarre `tool` ; aux rappels du relais agent, reprend la fonction là où elle attend.
34
+ */
35
+ export declare function handleAgentExec(args: any, tool: (run: Run, agent: AgentContext) => Promise<ToolResult>): Promise<ToolResult>;
36
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/gateway-exec/session.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AACxC,eAAO,MAAM,SAAS,iBAAiB,CAAC;AACxC,eAAO,MAAM,YAAY,IAAI,CAAC;AAK9B,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AA2ED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,UAAU,CAAC,GAC3D,OAAO,CAAC,UAAU,CAAC,CA0CrB"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Exécution de commandes sur la machine de l'agent, par le relais agent de
3
+ * mcp-http-gateway (`mcp-http-gateway --mcp`).
4
+ *
5
+ * Convention, entre le relais agent et un MCP placé derrière le gateway :
6
+ *
7
+ * - Quand la route de ce MCP figure dans sa liste blanche (GATEWAY_EXEC_ROUTES), le
8
+ * relais agent ajoute à chaque appel d'outil l'argument réservé `_gateway_exec` :
9
+ * `{ version, cwd, gatewayToken }`. `cwd` est son dossier de lancement, `gatewayToken`
10
+ * indique s'il détient un GATEWAY_TOKEN.
11
+ * - Le MCP peut répondre par une demande d'exécution au lieu d'un résultat final :
12
+ * `_meta["gateway/exec"] = { id, steps }`. Chaque étape est `{ command, args, cwd, env }`,
13
+ * lancée sans shell. `cwd` est résolu par rapport au dossier de lancement du relais
14
+ * agent. Dans `args` et dans les valeurs de `env`, le relais agent remplace
15
+ * `{{GATEWAY_URL}}` et `{{GATEWAY_TOKEN}}`.
16
+ * - Le relais agent exécute les étapes dans l'ordre et s'arrête à la première qui
17
+ * échoue. Il rappelle alors le même outil avec
18
+ * `_gateway_exec.continuation = { id, results }`, un résultat par étape exécutée.
19
+ *
20
+ * Ici, un outil s'écrit comme une fonction asynchrone qui appelle `run(steps)` : chaque
21
+ * appel suspend la fonction jusqu'au rappel du relais agent qui porte les résultats.
22
+ */
23
+ import { randomUUID } from "crypto";
24
+ import { logToFile } from "../logger.js";
25
+ export const EXEC_ARG = "_gateway_exec";
26
+ export const EXEC_META = "gateway/exec";
27
+ export const EXEC_VERSION = 1;
28
+ /** Délai laissé au relais agent pour rendre les résultats d'une demande. */
29
+ const CONTINUATION_TTL_MS = 30 * 60 * 1000;
30
+ const flows = new Map();
31
+ function nextEvent(flow) {
32
+ return new Promise((resolve) => { flow.emit = resolve; });
33
+ }
34
+ function toToolResult(flow, event) {
35
+ if (event.kind === "done") {
36
+ flows.delete(flow.id);
37
+ return event.result;
38
+ }
39
+ if (event.kind === "failed") {
40
+ flows.delete(flow.id);
41
+ throw event.error;
42
+ }
43
+ flow.steps = event.steps;
44
+ flow.timer = setTimeout(() => {
45
+ flows.delete(flow.id);
46
+ flow.abort?.(new Error("délai dépassé en attendant les résultats du relais agent"));
47
+ }, CONTINUATION_TTL_MS);
48
+ flow.timer.unref();
49
+ return {
50
+ content: [{ type: "text", text: "Demande d'exécution sur la machine de l'agent, à traiter par le relais agent." }],
51
+ _meta: { [EXEC_META]: { id: flow.id, steps: event.steps } },
52
+ };
53
+ }
54
+ function parseAgentContext(raw) {
55
+ if (!raw || typeof raw !== "object") {
56
+ const route = process.env.MCP_SERVER_ROUTE?.trim() || "la route de ce MCP";
57
+ throw new Error("Cet outil exécute git sur la machine de l'agent, par le relais agent (mcp-http-gateway --mcp). " +
58
+ `Ce relais n'a pas annoncé l'exécution : ajoutez ${route} à GATEWAY_EXEC_ROUTES dans le bloc « env » ` +
59
+ "de sa configuration, avec une version de mcp-http-gateway qui la prend en charge.");
60
+ }
61
+ if (raw.version !== EXEC_VERSION) {
62
+ throw new Error(`Version d'exécution du relais agent non prise en charge : ${raw.version} (attendue : ${EXEC_VERSION}).`);
63
+ }
64
+ if (typeof raw.cwd !== "string" || raw.cwd === "") {
65
+ throw new Error("Le relais agent n'a pas transmis son dossier de lancement.");
66
+ }
67
+ return { cwd: raw.cwd, gatewayToken: raw.gatewayToken === true };
68
+ }
69
+ function parseResults(raw, steps) {
70
+ if (!Array.isArray(raw) || raw.length === 0 || raw.length > steps.length) {
71
+ throw new Error("Résultats d'exécution invalides : un résultat est attendu par étape exécutée.");
72
+ }
73
+ return raw.map((r) => ({
74
+ code: typeof r?.code === "number" ? r.code : null,
75
+ stdout: typeof r?.stdout === "string" ? r.stdout : "",
76
+ stderr: typeof r?.stderr === "string" ? r.stderr : "",
77
+ ...(typeof r?.error === "string" ? { error: r.error } : {}),
78
+ }));
79
+ }
80
+ /**
81
+ * Point d'entrée d'un outil qui s'exécute sur la machine de l'agent. Au premier appel,
82
+ * démarre `tool` ; aux rappels du relais agent, reprend la fonction là où elle attend.
83
+ */
84
+ export async function handleAgentExec(args, tool) {
85
+ const exec = args?.[EXEC_ARG];
86
+ const agent = parseAgentContext(exec);
87
+ const continuation = exec.continuation;
88
+ if (continuation) {
89
+ const flow = flows.get(continuation.id);
90
+ if (!flow || !flow.resume || !flow.steps) {
91
+ throw new Error("Suite d'exécution inconnue ou expirée (le MCP a peut-être redémarré) : relancez l'outil.");
92
+ }
93
+ const results = parseResults(continuation.results, flow.steps);
94
+ clearTimeout(flow.timer);
95
+ const resume = flow.resume;
96
+ flow.resume = undefined;
97
+ flow.abort = undefined;
98
+ const event = nextEvent(flow);
99
+ resume(results);
100
+ return toToolResult(flow, await event);
101
+ }
102
+ const flow = { id: randomUUID(), emit: () => { } };
103
+ flows.set(flow.id, flow);
104
+ const event = nextEvent(flow);
105
+ const run = (steps) => new Promise((resolve, reject) => {
106
+ flow.resume = resolve;
107
+ flow.abort = reject;
108
+ flow.emit({ kind: "exec", steps });
109
+ });
110
+ tool(run, agent).then((result) => flow.emit({ kind: "done", result }), (error) => {
111
+ logToFile(`[agent-exec] ${error.message}`);
112
+ flow.emit({ kind: "failed", error });
113
+ });
114
+ return toToolResult(flow, await event);
115
+ }
116
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/gateway-exec/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Lecture et écriture du format pkt-line du protocole git, limitées à ce que le proxy
3
+ * doit comprendre d'un `git-receive-pack` : la liste des mises à jour de refs qui
4
+ * précède le packfile, et le rapport de refus renvoyé au client.
5
+ *
6
+ * Une pkt-line est une longueur sur 4 chiffres hexadécimaux (en-tête compris) suivie
7
+ * de la donnée ; `0000` (flush-pkt) termine une section.
8
+ */
9
+ export declare class GitProtocolError extends Error {
10
+ }
11
+ export interface RefUpdate {
12
+ oldId: string;
13
+ newId: string;
14
+ ref: string;
15
+ }
16
+ export interface ReceivePackRequest {
17
+ updates: RefUpdate[];
18
+ capabilities: string[];
19
+ }
20
+ export type ParseResult = {
21
+ complete: false;
22
+ } | {
23
+ complete: true;
24
+ request: ReceivePackRequest;
25
+ };
26
+ export declare function isNullId(id: string): boolean;
27
+ /**
28
+ * Analyse le début du corps d'un `git-receive-pack`, jusqu'au flush-pkt qui clôt la
29
+ * liste des commandes. Rend `complete: false` tant que ce flush n'a pas été reçu.
30
+ */
31
+ export declare function parseReceivePackCommands(buffer: Buffer): ParseResult;
32
+ export interface Refusal {
33
+ ref: string;
34
+ reason: string;
35
+ }
36
+ /**
37
+ * Vérifie qu'un push ne touche que refs/heads/<targetBranch>, sans la supprimer.
38
+ * Rend un refus par commande dès qu'une seule commande est interdite : le push est
39
+ * alors refusé en entier.
40
+ */
41
+ export declare function checkRefUpdates(updates: RefUpdate[], targetBranch: string): Refusal[];
42
+ export declare function pktLine(payload: string | Buffer): Buffer;
43
+ export declare const FLUSH_PKT: Buffer<ArrayBuffer>;
44
+ /**
45
+ * Corps de réponse d'un `git-receive-pack` refusé, au format report-status : git
46
+ * l'affiche comme « ! [remote rejected] <ref> (<raison>) ». Rend `null` si le client
47
+ * n'a pas demandé de rapport.
48
+ */
49
+ export declare function buildRefusalReport(refusals: Refusal[], capabilities: string[]): Buffer | null;
50
+ //# sourceMappingURL=pkt-line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pkt-line.d.ts","sourceRoot":"","sources":["../../src/git-proxy/pkt-line.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAE9C,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,EAAE,KAAK,CAAA;CAAE,GACnB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAKpD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAiCpE;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,EAAE,CAYrF;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAIxD;AAED,eAAO,MAAM,SAAS,qBAAgC,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAqB7F"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Lecture et écriture du format pkt-line du protocole git, limitées à ce que le proxy
3
+ * doit comprendre d'un `git-receive-pack` : la liste des mises à jour de refs qui
4
+ * précède le packfile, et le rapport de refus renvoyé au client.
5
+ *
6
+ * Une pkt-line est une longueur sur 4 chiffres hexadécimaux (en-tête compris) suivie
7
+ * de la donnée ; `0000` (flush-pkt) termine une section.
8
+ */
9
+ export class GitProtocolError extends Error {
10
+ }
11
+ const COMMAND = /^([0-9a-f]{40}|[0-9a-f]{64}) ([0-9a-f]{40}|[0-9a-f]{64}) (\S+)$/;
12
+ const SHALLOW = /^shallow ([0-9a-f]{40}|[0-9a-f]{64})$/;
13
+ export function isNullId(id) {
14
+ return /^0+$/.test(id);
15
+ }
16
+ /**
17
+ * Analyse le début du corps d'un `git-receive-pack`, jusqu'au flush-pkt qui clôt la
18
+ * liste des commandes. Rend `complete: false` tant que ce flush n'a pas été reçu.
19
+ */
20
+ export function parseReceivePackCommands(buffer) {
21
+ const updates = [];
22
+ let capabilities = [];
23
+ let offset = 0;
24
+ while (true) {
25
+ if (buffer.length < offset + 4)
26
+ return { complete: false };
27
+ const header = buffer.toString("latin1", offset, offset + 4);
28
+ if (!/^[0-9a-f]{4}$/i.test(header)) {
29
+ throw new GitProtocolError(`pkt-line invalide : en-tête "${header}"`);
30
+ }
31
+ const length = parseInt(header, 16);
32
+ if (length === 0)
33
+ return { complete: true, request: { updates, capabilities } };
34
+ if (length < 4)
35
+ throw new GitProtocolError(`pkt-line invalide : longueur ${length}`);
36
+ if (buffer.length < offset + length)
37
+ return { complete: false };
38
+ let line = buffer.toString("utf8", offset + 4, offset + length);
39
+ offset += length;
40
+ if (line.endsWith("\n"))
41
+ line = line.slice(0, -1);
42
+ if (SHALLOW.test(line))
43
+ continue;
44
+ const nul = line.indexOf("\0");
45
+ if (nul >= 0) {
46
+ if (updates.length > 0)
47
+ throw new GitProtocolError("capacités inattendues après la première commande");
48
+ capabilities = line.slice(nul + 1).split(" ").filter(Boolean);
49
+ line = line.slice(0, nul);
50
+ }
51
+ const match = COMMAND.exec(line);
52
+ if (!match)
53
+ throw new GitProtocolError(`commande de push non reconnue : "${line.slice(0, 80)}"`);
54
+ updates.push({ oldId: match[1], newId: match[2], ref: match[3] });
55
+ }
56
+ }
57
+ /**
58
+ * Vérifie qu'un push ne touche que refs/heads/<targetBranch>, sans la supprimer.
59
+ * Rend un refus par commande dès qu'une seule commande est interdite : le push est
60
+ * alors refusé en entier.
61
+ */
62
+ export function checkRefUpdates(updates, targetBranch) {
63
+ const allowedRef = `refs/heads/${targetBranch}`;
64
+ const reasons = updates.map((u) => {
65
+ if (u.ref !== allowedRef)
66
+ return `seule la branche ${targetBranch} est autorisée`;
67
+ if (isNullId(u.newId))
68
+ return `la suppression de ${targetBranch} est interdite`;
69
+ return null;
70
+ });
71
+ if (reasons.every((r) => r === null))
72
+ return [];
73
+ return updates.map((u, i) => ({
74
+ ref: u.ref,
75
+ reason: reasons[i] ?? "push refusé avec le reste de la demande",
76
+ }));
77
+ }
78
+ export function pktLine(payload) {
79
+ const data = typeof payload === "string" ? Buffer.from(payload, "utf8") : payload;
80
+ const header = (data.length + 4).toString(16).padStart(4, "0");
81
+ return Buffer.concat([Buffer.from(header, "latin1"), data]);
82
+ }
83
+ export const FLUSH_PKT = Buffer.from("0000", "latin1");
84
+ /**
85
+ * Corps de réponse d'un `git-receive-pack` refusé, au format report-status : git
86
+ * l'affiche comme « ! [remote rejected] <ref> (<raison>) ». Rend `null` si le client
87
+ * n'a pas demandé de rapport.
88
+ */
89
+ export function buildRefusalReport(refusals, capabilities) {
90
+ const wantsReport = capabilities.includes("report-status") || capabilities.includes("report-status-v2");
91
+ if (!wantsReport)
92
+ return null;
93
+ const report = Buffer.concat([
94
+ pktLine("unpack ok\n"),
95
+ ...refusals.map((r) => pktLine(`ng ${r.ref} ${r.reason}\n`)),
96
+ FLUSH_PKT,
97
+ ]);
98
+ const bandSize = capabilities.includes("side-band-64k") ? 65520 - 5
99
+ : capabilities.includes("side-band") ? 1000 - 5
100
+ : 0;
101
+ if (bandSize === 0)
102
+ return report;
103
+ const packets = [];
104
+ for (let i = 0; i < report.length; i += bandSize) {
105
+ packets.push(pktLine(Buffer.concat([Buffer.from([1]), report.subarray(i, i + bandSize)])));
106
+ }
107
+ packets.push(FLUSH_PKT);
108
+ return Buffer.concat(packets);
109
+ }
110
+ //# sourceMappingURL=pkt-line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pkt-line.js","sourceRoot":"","sources":["../../src/git-proxy/pkt-line.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Proxy git « smart HTTP » de l'instance `remote`, joint par le relais HTTP du gateway.
3
+ *
4
+ * Le client git parle au proxy comme à GitHub. Le proxy :
5
+ * - envoie toujours la requête vers le dépôt configuré (TARGET_REPO), quel que soit le
6
+ * chemin demandé ;
7
+ * - lit les commandes d'un `git-receive-pack` avant de contacter GitHub et refuse tout
8
+ * push qui vise une autre ref que refs/heads/<TARGET_BRANCH> ou qui la supprime ;
9
+ * - ajoute le token GitHub, que le client ne voit jamais.
10
+ *
11
+ * Routes (chemins relatifs au préfixe de relais) :
12
+ * - GET <…>/info/refs?service=git-upload-pack|git-receive-pack
13
+ * - POST <…>/git-upload-pack
14
+ * - POST <…>/git-receive-pack
15
+ */
16
+ import http from "http";
17
+ import type { Config } from "../utils/config.js";
18
+ export declare const GITHUB_ORIGIN = "https://github.com";
19
+ export interface GitProxyOptions {
20
+ getConfig: () => Config;
21
+ /** Origine des requêtes git sortantes : https://github.com en production. */
22
+ upstreamOrigin: string;
23
+ }
24
+ export declare function createGitProxyServer(options: GitProxyOptions): http.Server;
25
+ /** Démarre le proxy sur 127.0.0.1:<port>. Rejette si le port ne peut pas être ouvert. */
26
+ export declare function startGitProxy(options: GitProxyOptions, port: number): Promise<http.Server>;
27
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/git-proxy/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAqBlD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,6EAA6E;IAC7E,cAAc,EAAE,MAAM,CAAC;CACxB;AAwJD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC,MAAM,CA+C1E;AAED,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAS1F"}