@wanadev/mcp-gitlab 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +131 -0
- package/dist/client.d.ts +128 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +288 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/epics.d.ts +4 -0
- package/dist/tools/epics.d.ts.map +1 -0
- package/dist/tools/epics.js +279 -0
- package/dist/tools/epics.js.map +1 -0
- package/dist/tools/issues.d.ts +4 -0
- package/dist/tools/issues.d.ts.map +1 -0
- package/dist/tools/issues.js +239 -0
- package/dist/tools/issues.js.map +1 -0
- package/dist/tools/merge_requests.d.ts +4 -0
- package/dist/tools/merge_requests.d.ts.map +1 -0
- package/dist/tools/merge_requests.js +92 -0
- package/dist/tools/merge_requests.js.map +1 -0
- package/dist/tools/milestones.d.ts +4 -0
- package/dist/tools/milestones.d.ts.map +1 -0
- package/dist/tools/milestones.js +162 -0
- package/dist/tools/milestones.js.map +1 -0
- package/dist/tools/utils.d.ts +4 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +207 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/types.d.ts +176 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epics.d.ts","sourceRoot":"","sources":["../../src/tools/epics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAoDjD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CA6O/E"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const groupIdSchema = z.string().describe("ID ou chemin URL du groupe GitLab (ex: '42' ou 'wanadev/kp1'). Si vous n'avez que le nom, appelez d'abord list_groups pour trouver le chemin exact.");
|
|
3
|
+
const dryRunSchema = z.boolean().default(true).describe("Dry run mode (default: true). When true, returns a preview of the action without executing it. Set to false only after user confirmation.");
|
|
4
|
+
function dryRunResponse(action, details) {
|
|
5
|
+
const lines = Object.entries(details)
|
|
6
|
+
.filter(([, v]) => v !== undefined)
|
|
7
|
+
.map(([k, v]) => ` - **${k}:** ${v}`);
|
|
8
|
+
const text = `[DRY RUN] ${action}\n\n${lines.join("\n")}\n\nThis is a preview. Ask the user to confirm in their language before re-calling with dry_run=false.`;
|
|
9
|
+
return { content: [{ type: "text", text }] };
|
|
10
|
+
}
|
|
11
|
+
function formatEpic(e) {
|
|
12
|
+
const labels = e.labels.length > 0 ? ` — Labels: ${e.labels.join(", ")}` : "";
|
|
13
|
+
const due = e.due_date ? ` — Echeance: ${e.due_date}` : "";
|
|
14
|
+
const start = e.start_date ? ` — Debut: ${e.start_date}` : "";
|
|
15
|
+
return `**${e.title}** (#${e.iid}) — ${e.state}${labels}${start}${due}\n ${e.web_url}`;
|
|
16
|
+
}
|
|
17
|
+
function formatEpics(epics) {
|
|
18
|
+
if (epics.length === 0)
|
|
19
|
+
return "Aucun epic trouve.";
|
|
20
|
+
return `${epics.length} epic(s) :\n\n${epics.map(formatEpic).join("\n\n")}`;
|
|
21
|
+
}
|
|
22
|
+
function formatEpicDetail(e) {
|
|
23
|
+
const parts = [
|
|
24
|
+
`# ${e.title} (#${e.iid})`,
|
|
25
|
+
`**Etat:** ${e.state}`,
|
|
26
|
+
`**Auteur:** ${e.author.name} (@${e.author.username})`,
|
|
27
|
+
e.labels.length > 0 ? `**Labels:** ${e.labels.join(", ")}` : null,
|
|
28
|
+
e.start_date ? `**Debut:** ${e.start_date}` : null,
|
|
29
|
+
e.due_date ? `**Echeance:** ${e.due_date}` : null,
|
|
30
|
+
`**Cree le:** ${e.created_at}`,
|
|
31
|
+
`**Mis a jour:** ${e.updated_at}`,
|
|
32
|
+
e.closed_at ? `**Ferme le:** ${e.closed_at}` : null,
|
|
33
|
+
`**Lien:** ${e.web_url}`,
|
|
34
|
+
e.description ? `\n---\n${e.description}` : null,
|
|
35
|
+
];
|
|
36
|
+
return parts.filter(Boolean).join("\n");
|
|
37
|
+
}
|
|
38
|
+
function formatIssueInEpic(i) {
|
|
39
|
+
const assignees = i.assignees.length > 0
|
|
40
|
+
? ` — Assignes: ${i.assignees.map((a) => `@${a.username}`).join(", ")}`
|
|
41
|
+
: "";
|
|
42
|
+
const labels = i.labels.length > 0 ? ` — Labels: ${i.labels.join(", ")}` : "";
|
|
43
|
+
return `**${i.title}** (project:${i.project_id} #${i.iid}, id:${i.id}) — ${i.state}${assignees}${labels}\n ${i.web_url}`;
|
|
44
|
+
}
|
|
45
|
+
export function registerEpicTools(server, client) {
|
|
46
|
+
server.registerTool("list_epics", {
|
|
47
|
+
description: "Lister les epics d'un groupe GitLab. Filtrer par etat, recherche textuelle ou labels.",
|
|
48
|
+
inputSchema: {
|
|
49
|
+
group_id: groupIdSchema,
|
|
50
|
+
state: z.enum(["opened", "closed", "all"]).optional().describe("Filtrer par etat (defaut: all)"),
|
|
51
|
+
search: z.string().optional().describe("Recherche textuelle dans le titre/description"),
|
|
52
|
+
labels: z.string().optional().describe("Filtrer par labels (separes par virgule)"),
|
|
53
|
+
order_by: z.enum(["created_at", "updated_at", "title"]).optional().describe("Trier par champ"),
|
|
54
|
+
sort: z.enum(["asc", "desc"]).optional().describe("Ordre de tri"),
|
|
55
|
+
},
|
|
56
|
+
annotations: { readOnlyHint: true },
|
|
57
|
+
}, async (args) => {
|
|
58
|
+
try {
|
|
59
|
+
const { group_id, ...params } = args;
|
|
60
|
+
const epics = await client.listEpics(group_id, params);
|
|
61
|
+
return { content: [{ type: "text", text: formatEpics(epics) }] };
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
return {
|
|
65
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
66
|
+
isError: true,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
server.registerTool("get_epic", {
|
|
71
|
+
description: "Obtenir les details complets d'un epic par son numero (IID).",
|
|
72
|
+
inputSchema: {
|
|
73
|
+
group_id: groupIdSchema,
|
|
74
|
+
epic_iid: z.number().describe("Numero de l'epic (IID affiche dans GitLab)"),
|
|
75
|
+
},
|
|
76
|
+
annotations: { readOnlyHint: true },
|
|
77
|
+
}, async (args) => {
|
|
78
|
+
try {
|
|
79
|
+
const epic = await client.getEpic(args.group_id, args.epic_iid);
|
|
80
|
+
return { content: [{ type: "text", text: formatEpicDetail(epic) }] };
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
return {
|
|
84
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
85
|
+
isError: true,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
server.registerTool("create_epic", {
|
|
90
|
+
description: "Creer un nouvel epic dans un groupe GitLab. Par defaut dry_run=true : retourne un apercu sans creer. Passer dry_run=false apres confirmation.",
|
|
91
|
+
inputSchema: {
|
|
92
|
+
group_id: groupIdSchema,
|
|
93
|
+
title: z.string().describe("Titre de l'epic"),
|
|
94
|
+
description: z.string().optional().describe("Description de l'epic (Markdown)"),
|
|
95
|
+
labels: z.string().optional().describe("Labels separes par virgule"),
|
|
96
|
+
start_date: z.string().optional().describe("Date de debut (YYYY-MM-DD)"),
|
|
97
|
+
due_date: z.string().optional().describe("Date d'echeance (YYYY-MM-DD)"),
|
|
98
|
+
dry_run: dryRunSchema,
|
|
99
|
+
},
|
|
100
|
+
annotations: { readOnlyHint: false },
|
|
101
|
+
}, async (args) => {
|
|
102
|
+
try {
|
|
103
|
+
const { group_id, dry_run, ...data } = args;
|
|
104
|
+
if (dry_run) {
|
|
105
|
+
return dryRunResponse("Creer un epic", { groupe: group_id, ...data });
|
|
106
|
+
}
|
|
107
|
+
const epic = await client.createEpic(group_id, data);
|
|
108
|
+
return {
|
|
109
|
+
content: [{ type: "text", text: `Epic cree avec succes !\n\n${formatEpicDetail(epic)}` }],
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
return {
|
|
114
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
115
|
+
isError: true,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
server.registerTool("update_epic", {
|
|
120
|
+
description: "Mettre a jour un epic existant. Par defaut dry_run=true : retourne un apercu sans modifier. Passer dry_run=false apres confirmation.",
|
|
121
|
+
inputSchema: {
|
|
122
|
+
group_id: groupIdSchema,
|
|
123
|
+
epic_iid: z.number().describe("Numero de l'epic (IID)"),
|
|
124
|
+
title: z.string().optional().describe("Nouveau titre"),
|
|
125
|
+
description: z.string().optional().describe("Nouvelle description (Markdown)"),
|
|
126
|
+
labels: z.string().optional().describe("Nouveaux labels (separes par virgule)"),
|
|
127
|
+
start_date: z.string().optional().describe("Nouvelle date de debut (YYYY-MM-DD)"),
|
|
128
|
+
due_date: z.string().optional().describe("Nouvelle date d'echeance (YYYY-MM-DD)"),
|
|
129
|
+
dry_run: dryRunSchema,
|
|
130
|
+
},
|
|
131
|
+
annotations: { readOnlyHint: false },
|
|
132
|
+
}, async (args) => {
|
|
133
|
+
try {
|
|
134
|
+
const { group_id, epic_iid, dry_run, ...data } = args;
|
|
135
|
+
if (dry_run) {
|
|
136
|
+
return dryRunResponse("Modifier l'epic", { groupe: group_id, epic_iid, ...data });
|
|
137
|
+
}
|
|
138
|
+
const epic = await client.updateEpic(group_id, epic_iid, data);
|
|
139
|
+
return {
|
|
140
|
+
content: [{ type: "text", text: `Epic mis a jour !\n\n${formatEpicDetail(epic)}` }],
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
return {
|
|
145
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
146
|
+
isError: true,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
server.registerTool("close_epic", {
|
|
151
|
+
description: "Fermer un epic. Par defaut dry_run=true : retourne un apercu sans fermer. Passer dry_run=false apres confirmation.",
|
|
152
|
+
inputSchema: {
|
|
153
|
+
group_id: groupIdSchema,
|
|
154
|
+
epic_iid: z.number().describe("Numero de l'epic (IID) a fermer"),
|
|
155
|
+
dry_run: dryRunSchema,
|
|
156
|
+
},
|
|
157
|
+
annotations: { readOnlyHint: false },
|
|
158
|
+
}, async (args) => {
|
|
159
|
+
try {
|
|
160
|
+
if (args.dry_run) {
|
|
161
|
+
return dryRunResponse("Fermer l'epic", { groupe: args.group_id, epic_iid: args.epic_iid });
|
|
162
|
+
}
|
|
163
|
+
const epic = await client.closeEpic(args.group_id, args.epic_iid);
|
|
164
|
+
return {
|
|
165
|
+
content: [{ type: "text", text: `Epic #${epic.iid} ferme.\n\n${formatEpicDetail(epic)}` }],
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
return {
|
|
170
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
171
|
+
isError: true,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
server.registerTool("list_epic_issues", {
|
|
176
|
+
description: "Lister les issues rattachees a un epic. Affiche l'ID global et le IID projet de chaque issue.",
|
|
177
|
+
inputSchema: {
|
|
178
|
+
group_id: groupIdSchema,
|
|
179
|
+
epic_iid: z.number().describe("Numero de l'epic (IID)"),
|
|
180
|
+
},
|
|
181
|
+
annotations: { readOnlyHint: true },
|
|
182
|
+
}, async (args) => {
|
|
183
|
+
try {
|
|
184
|
+
const issues = await client.listEpicIssues(args.group_id, args.epic_iid);
|
|
185
|
+
if (issues.length === 0) {
|
|
186
|
+
return { content: [{ type: "text", text: "Aucune issue rattachee a cet epic." }] };
|
|
187
|
+
}
|
|
188
|
+
const text = `${issues.length} issue(s) dans l'epic :\n\n${issues.map(formatIssueInEpic).join("\n\n")}`;
|
|
189
|
+
return { content: [{ type: "text", text }] };
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
return {
|
|
193
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
194
|
+
isError: true,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
server.registerTool("add_issue_to_epic", {
|
|
199
|
+
description: "Rattacher une issue a un epic. Par defaut dry_run=true. ATTENTION : utiliser l'ID global de l'issue (pas le IID projet).",
|
|
200
|
+
inputSchema: {
|
|
201
|
+
group_id: groupIdSchema,
|
|
202
|
+
epic_iid: z.number().describe("Numero de l'epic (IID)"),
|
|
203
|
+
issue_id: z.number().describe("ID global de l'issue (pas le IID projet)"),
|
|
204
|
+
dry_run: dryRunSchema,
|
|
205
|
+
},
|
|
206
|
+
annotations: { readOnlyHint: false },
|
|
207
|
+
}, async (args) => {
|
|
208
|
+
try {
|
|
209
|
+
if (args.dry_run) {
|
|
210
|
+
return dryRunResponse("Rattacher une issue a un epic", {
|
|
211
|
+
groupe: args.group_id,
|
|
212
|
+
epic_iid: args.epic_iid,
|
|
213
|
+
issue_id: args.issue_id,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
await client.addIssueToEpic(args.group_id, args.epic_iid, args.issue_id);
|
|
217
|
+
return {
|
|
218
|
+
content: [{ type: "text", text: `Issue ${args.issue_id} rattachee a l'epic #${args.epic_iid}.` }],
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
return {
|
|
223
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
224
|
+
isError: true,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
server.registerTool("list_epic_notes", {
|
|
229
|
+
description: "Lister les commentaires d'un epic.",
|
|
230
|
+
inputSchema: {
|
|
231
|
+
group_id: groupIdSchema,
|
|
232
|
+
epic_iid: z.number().describe("Numero de l'epic (IID)"),
|
|
233
|
+
},
|
|
234
|
+
annotations: { readOnlyHint: true },
|
|
235
|
+
}, async (args) => {
|
|
236
|
+
try {
|
|
237
|
+
const notes = await client.listEpicNotes(args.group_id, args.epic_iid);
|
|
238
|
+
const userNotes = notes.filter((n) => !n.system);
|
|
239
|
+
if (userNotes.length === 0) {
|
|
240
|
+
return { content: [{ type: "text", text: "Aucun commentaire sur cet epic." }] };
|
|
241
|
+
}
|
|
242
|
+
const text = userNotes.map((n) => `**${n.author.name}** (@${n.author.username}) — ${n.created_at}\n${n.body}`).join("\n\n---\n\n");
|
|
243
|
+
return { content: [{ type: "text", text: `${userNotes.length} commentaire(s) :\n\n${text}` }] };
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
return {
|
|
247
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
248
|
+
isError: true,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
server.registerTool("add_epic_note", {
|
|
253
|
+
description: "Ajouter un commentaire sur un epic. Par defaut dry_run=true.",
|
|
254
|
+
inputSchema: {
|
|
255
|
+
group_id: groupIdSchema,
|
|
256
|
+
epic_iid: z.number().describe("Numero de l'epic (IID)"),
|
|
257
|
+
body: z.string().describe("Contenu du commentaire (Markdown)"),
|
|
258
|
+
dry_run: dryRunSchema,
|
|
259
|
+
},
|
|
260
|
+
annotations: { readOnlyHint: false },
|
|
261
|
+
}, async (args) => {
|
|
262
|
+
try {
|
|
263
|
+
if (args.dry_run) {
|
|
264
|
+
return dryRunResponse("Commenter l'epic", { groupe: args.group_id, epic_iid: args.epic_iid, body: args.body });
|
|
265
|
+
}
|
|
266
|
+
const note = await client.addEpicNote(args.group_id, args.epic_iid, args.body);
|
|
267
|
+
return {
|
|
268
|
+
content: [{ type: "text", text: `Commentaire ajoute sur l'epic #${args.epic_iid} par @${note.author.username}.` }],
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
return {
|
|
273
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
274
|
+
isError: true,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=epics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epics.js","sourceRoot":"","sources":["../../src/tools/epics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/tools/issues.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAuDjD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAiMhF"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const dryRunSchema = z.boolean().default(true).describe("Dry run mode (default: true). When true, returns a preview of the action without executing it. Set to false only after user confirmation.");
|
|
3
|
+
function dryRunResponse(action, details) {
|
|
4
|
+
const lines = Object.entries(details)
|
|
5
|
+
.filter(([, v]) => v !== undefined)
|
|
6
|
+
.map(([k, v]) => ` - **${k}:** ${Array.isArray(v) ? v.join(", ") : v}`);
|
|
7
|
+
const text = `[DRY RUN] ${action}\n\n${lines.join("\n")}\n\nThis is a preview. Ask the user to confirm in their language before re-calling with dry_run=false.`;
|
|
8
|
+
return { content: [{ type: "text", text }] };
|
|
9
|
+
}
|
|
10
|
+
function formatIssue(i) {
|
|
11
|
+
const assignees = i.assignees.length > 0
|
|
12
|
+
? ` — Assignes: ${i.assignees.map((a) => `@${a.username}`).join(", ")}`
|
|
13
|
+
: "";
|
|
14
|
+
const labels = i.labels.length > 0 ? ` — Labels: ${i.labels.join(", ")}` : "";
|
|
15
|
+
const milestone = i.milestone ? ` — Milestone: ${i.milestone.title}` : "";
|
|
16
|
+
const due = i.due_date ? ` — Echeance: ${i.due_date}` : "";
|
|
17
|
+
const epic = i.epic_iid ? ` — Epic #${i.epic_iid}` : "";
|
|
18
|
+
return `**${i.title}** (project:${i.project_id} #${i.iid}, id:${i.id}) — ${i.state}${assignees}${labels}${milestone}${due}${epic}\n ${i.web_url}`;
|
|
19
|
+
}
|
|
20
|
+
function formatIssues(issues) {
|
|
21
|
+
if (issues.length === 0)
|
|
22
|
+
return "Aucune issue trouvee.";
|
|
23
|
+
return `${issues.length} issue(s) :\n\n${issues.map(formatIssue).join("\n\n")}`;
|
|
24
|
+
}
|
|
25
|
+
function formatIssueDetail(i) {
|
|
26
|
+
const parts = [
|
|
27
|
+
`# ${i.title} (project:${i.project_id} #${i.iid})`,
|
|
28
|
+
`**ID global:** ${i.id}`,
|
|
29
|
+
`**Etat:** ${i.state}`,
|
|
30
|
+
`**Auteur:** ${i.author.name} (@${i.author.username})`,
|
|
31
|
+
i.assignees.length > 0
|
|
32
|
+
? `**Assignes:** ${i.assignees.map((a) => `${a.name} (@${a.username})`).join(", ")}`
|
|
33
|
+
: null,
|
|
34
|
+
i.labels.length > 0 ? `**Labels:** ${i.labels.join(", ")}` : null,
|
|
35
|
+
i.milestone ? `**Milestone:** ${i.milestone.title}` : null,
|
|
36
|
+
i.epic_iid ? `**Epic:** #${i.epic_iid}` : null,
|
|
37
|
+
i.weight != null ? `**Poids:** ${i.weight}` : null,
|
|
38
|
+
i.due_date ? `**Echeance:** ${i.due_date}` : null,
|
|
39
|
+
i.time_stats?.human_time_estimate ? `**Temps estime:** ${i.time_stats.human_time_estimate}` : null,
|
|
40
|
+
i.time_stats?.human_total_time_spent ? `**Temps passe:** ${i.time_stats.human_total_time_spent}` : null,
|
|
41
|
+
`**Cree le:** ${i.created_at}`,
|
|
42
|
+
`**Mis a jour:** ${i.updated_at}`,
|
|
43
|
+
i.closed_at ? `**Ferme le:** ${i.closed_at}` : null,
|
|
44
|
+
`**Lien:** ${i.web_url}`,
|
|
45
|
+
i.description ? `\n---\n${i.description}` : null,
|
|
46
|
+
];
|
|
47
|
+
return parts.filter(Boolean).join("\n");
|
|
48
|
+
}
|
|
49
|
+
export function registerIssueTools(server, client) {
|
|
50
|
+
server.registerTool("list_issues", {
|
|
51
|
+
description: "Lister les issues d'un groupe GitLab. Filtrer par etat, recherche, labels, milestone ou assignee.",
|
|
52
|
+
inputSchema: {
|
|
53
|
+
group_id: z.string().describe("ID ou chemin URL du groupe GitLab (ex: '42' ou 'wanadev/kp1'). Si vous n'avez que le nom, appelez d'abord list_groups pour trouver le chemin exact."),
|
|
54
|
+
state: z.enum(["opened", "closed", "all"]).optional().describe("Filtrer par etat"),
|
|
55
|
+
search: z.string().optional().describe("Recherche textuelle"),
|
|
56
|
+
labels: z.string().optional().describe("Labels (separes par virgule)"),
|
|
57
|
+
milestone: z.string().optional().describe("Nom du milestone"),
|
|
58
|
+
assignee_username: z.string().optional().describe("Nom d'utilisateur de l'assignee"),
|
|
59
|
+
order_by: z.enum(["created_at", "updated_at", "priority", "due_date", "label_priority", "weight"]).optional().describe("Trier par champ"),
|
|
60
|
+
sort: z.enum(["asc", "desc"]).optional().describe("Ordre de tri"),
|
|
61
|
+
},
|
|
62
|
+
annotations: { readOnlyHint: true },
|
|
63
|
+
}, async (args) => {
|
|
64
|
+
try {
|
|
65
|
+
const { group_id, ...params } = args;
|
|
66
|
+
const issues = await client.listGroupIssues(group_id, params);
|
|
67
|
+
return { content: [{ type: "text", text: formatIssues(issues) }] };
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
return {
|
|
71
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
72
|
+
isError: true,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
server.registerTool("get_issue", {
|
|
77
|
+
description: "Obtenir les details d'une issue par son projet et son numero (IID).",
|
|
78
|
+
inputSchema: {
|
|
79
|
+
project_id: z.number().describe("ID du projet"),
|
|
80
|
+
issue_iid: z.number().describe("Numero de l'issue dans le projet (IID)"),
|
|
81
|
+
},
|
|
82
|
+
annotations: { readOnlyHint: true },
|
|
83
|
+
}, async (args) => {
|
|
84
|
+
try {
|
|
85
|
+
const issue = await client.getIssue(args.project_id, args.issue_iid);
|
|
86
|
+
return { content: [{ type: "text", text: formatIssueDetail(issue) }] };
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
return {
|
|
90
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
91
|
+
isError: true,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
server.registerTool("create_issue", {
|
|
96
|
+
description: "Creer une nouvelle issue dans un projet. Par defaut dry_run=true : retourne un apercu sans creer. Passer dry_run=false apres confirmation.",
|
|
97
|
+
inputSchema: {
|
|
98
|
+
project_id: z.number().describe("ID du projet"),
|
|
99
|
+
title: z.string().describe("Titre de l'issue"),
|
|
100
|
+
description: z.string().optional().describe("Description (Markdown)"),
|
|
101
|
+
labels: z.string().optional().describe("Labels (separes par virgule)"),
|
|
102
|
+
milestone_id: z.number().optional().describe("ID du milestone"),
|
|
103
|
+
assignee_ids: z.array(z.number()).optional().describe("IDs des assignees"),
|
|
104
|
+
due_date: z.string().optional().describe("Date d'echeance (YYYY-MM-DD)"),
|
|
105
|
+
weight: z.number().optional().describe("Poids de l'issue"),
|
|
106
|
+
epic_id: z.number().optional().describe("ID global de l'epic a rattacher"),
|
|
107
|
+
iteration_id: z.number().optional().describe("ID de l'iteration (sprint) a associer"),
|
|
108
|
+
dry_run: dryRunSchema,
|
|
109
|
+
},
|
|
110
|
+
annotations: { readOnlyHint: false },
|
|
111
|
+
}, async (args) => {
|
|
112
|
+
try {
|
|
113
|
+
const { project_id, dry_run, ...data } = args;
|
|
114
|
+
if (dry_run) {
|
|
115
|
+
return dryRunResponse("Creer une issue", { project_id, ...data });
|
|
116
|
+
}
|
|
117
|
+
const issue = await client.createIssue(project_id, data);
|
|
118
|
+
return {
|
|
119
|
+
content: [{ type: "text", text: `Issue creee avec succes !\n\n${formatIssueDetail(issue)}` }],
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
return {
|
|
124
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
125
|
+
isError: true,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
server.registerTool("update_issue", {
|
|
130
|
+
description: "Mettre a jour une issue existante. Par defaut dry_run=true : retourne un apercu sans modifier. Passer dry_run=false apres confirmation.",
|
|
131
|
+
inputSchema: {
|
|
132
|
+
project_id: z.number().describe("ID du projet"),
|
|
133
|
+
issue_iid: z.number().describe("Numero de l'issue (IID)"),
|
|
134
|
+
title: z.string().optional().describe("Nouveau titre"),
|
|
135
|
+
description: z.string().optional().describe("Nouvelle description (Markdown)"),
|
|
136
|
+
labels: z.string().optional().describe("Nouveaux labels (separes par virgule)"),
|
|
137
|
+
milestone_id: z.number().optional().describe("ID du milestone"),
|
|
138
|
+
assignee_ids: z.array(z.number()).optional().describe("IDs des assignees"),
|
|
139
|
+
due_date: z.string().optional().describe("Nouvelle date d'echeance (YYYY-MM-DD)"),
|
|
140
|
+
weight: z.number().optional().describe("Nouveau poids"),
|
|
141
|
+
iteration_id: z.number().optional().describe("ID de l'iteration (sprint) a associer"),
|
|
142
|
+
dry_run: dryRunSchema,
|
|
143
|
+
},
|
|
144
|
+
annotations: { readOnlyHint: false },
|
|
145
|
+
}, async (args) => {
|
|
146
|
+
try {
|
|
147
|
+
const { project_id, issue_iid, dry_run, ...data } = args;
|
|
148
|
+
if (dry_run) {
|
|
149
|
+
return dryRunResponse("Modifier l'issue", { project_id, issue_iid, ...data });
|
|
150
|
+
}
|
|
151
|
+
const issue = await client.updateIssue(project_id, issue_iid, data);
|
|
152
|
+
return {
|
|
153
|
+
content: [{ type: "text", text: `Issue mise a jour !\n\n${formatIssueDetail(issue)}` }],
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
return {
|
|
158
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
159
|
+
isError: true,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
server.registerTool("close_issue", {
|
|
164
|
+
description: "Fermer une issue. Par defaut dry_run=true : retourne un apercu sans fermer. Passer dry_run=false apres confirmation.",
|
|
165
|
+
inputSchema: {
|
|
166
|
+
project_id: z.number().describe("ID du projet"),
|
|
167
|
+
issue_iid: z.number().describe("Numero de l'issue (IID) a fermer"),
|
|
168
|
+
dry_run: dryRunSchema,
|
|
169
|
+
},
|
|
170
|
+
annotations: { readOnlyHint: false },
|
|
171
|
+
}, async (args) => {
|
|
172
|
+
try {
|
|
173
|
+
if (args.dry_run) {
|
|
174
|
+
return dryRunResponse("Fermer l'issue", { project_id: args.project_id, issue_iid: args.issue_iid });
|
|
175
|
+
}
|
|
176
|
+
const issue = await client.closeIssue(args.project_id, args.issue_iid);
|
|
177
|
+
return {
|
|
178
|
+
content: [{ type: "text", text: `Issue #${issue.iid} fermee.\n\n${formatIssueDetail(issue)}` }],
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
return {
|
|
183
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
184
|
+
isError: true,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
server.registerTool("list_issue_notes", {
|
|
189
|
+
description: "Lister les commentaires d'une issue.",
|
|
190
|
+
inputSchema: {
|
|
191
|
+
project_id: z.number().describe("ID du projet"),
|
|
192
|
+
issue_iid: z.number().describe("Numero de l'issue (IID)"),
|
|
193
|
+
},
|
|
194
|
+
annotations: { readOnlyHint: true },
|
|
195
|
+
}, async (args) => {
|
|
196
|
+
try {
|
|
197
|
+
const notes = await client.listIssueNotes(args.project_id, args.issue_iid);
|
|
198
|
+
const userNotes = notes.filter((n) => !n.system);
|
|
199
|
+
if (userNotes.length === 0) {
|
|
200
|
+
return { content: [{ type: "text", text: "Aucun commentaire sur cette issue." }] };
|
|
201
|
+
}
|
|
202
|
+
const text = userNotes.map((n) => `**${n.author.name}** (@${n.author.username}) — ${n.created_at}\n${n.body}`).join("\n\n---\n\n");
|
|
203
|
+
return { content: [{ type: "text", text: `${userNotes.length} commentaire(s) :\n\n${text}` }] };
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
return {
|
|
207
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
208
|
+
isError: true,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
server.registerTool("add_issue_note", {
|
|
213
|
+
description: "Ajouter un commentaire sur une issue. Par defaut dry_run=true.",
|
|
214
|
+
inputSchema: {
|
|
215
|
+
project_id: z.number().describe("ID du projet"),
|
|
216
|
+
issue_iid: z.number().describe("Numero de l'issue (IID)"),
|
|
217
|
+
body: z.string().describe("Contenu du commentaire (Markdown)"),
|
|
218
|
+
dry_run: dryRunSchema,
|
|
219
|
+
},
|
|
220
|
+
annotations: { readOnlyHint: false },
|
|
221
|
+
}, async (args) => {
|
|
222
|
+
try {
|
|
223
|
+
if (args.dry_run) {
|
|
224
|
+
return dryRunResponse("Commenter l'issue", { project_id: args.project_id, issue_iid: args.issue_iid, body: args.body });
|
|
225
|
+
}
|
|
226
|
+
const note = await client.addIssueNote(args.project_id, args.issue_iid, args.body);
|
|
227
|
+
return {
|
|
228
|
+
content: [{ type: "text", text: `Commentaire ajoute sur l'issue #${args.issue_iid} par @${note.author.username}.` }],
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
return {
|
|
233
|
+
content: [{ type: "text", text: `Erreur: ${error.message}` }],
|
|
234
|
+
isError: true,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/tools/issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge_requests.d.ts","sourceRoot":"","sources":["../../src/tools/merge_requests.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAgDjD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CA+CvF"}
|