@ric_/forgejo-mcp 0.1.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 +302 -0
- package/dist/client.d.ts +35 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +107 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +86 -0
- package/dist/config.js.map +1 -0
- package/dist/http.d.ts +3 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +108 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +27 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/admin.d.ts +4 -0
- package/dist/tools/admin.d.ts.map +1 -0
- package/dist/tools/admin.js +261 -0
- package/dist/tools/admin.js.map +1 -0
- package/dist/tools/helpers.d.ts +16 -0
- package/dist/tools/helpers.d.ts.map +1 -0
- package/dist/tools/helpers.js +30 -0
- package/dist/tools/helpers.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 +337 -0
- package/dist/tools/issues.js.map +1 -0
- package/dist/tools/organizations.d.ts +4 -0
- package/dist/tools/organizations.d.ts.map +1 -0
- package/dist/tools/organizations.js +232 -0
- package/dist/tools/organizations.js.map +1 -0
- package/dist/tools/pullrequests.d.ts +4 -0
- package/dist/tools/pullrequests.d.ts.map +1 -0
- package/dist/tools/pullrequests.js +251 -0
- package/dist/tools/pullrequests.js.map +1 -0
- package/dist/tools/repository.d.ts +4 -0
- package/dist/tools/repository.d.ts.map +1 -0
- package/dist/tools/repository.js +437 -0
- package/dist/tools/repository.js.map +1 -0
- package/dist/tools/users.d.ts +4 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +204 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/validation.d.ts +35 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +68 -0
- package/dist/validation.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { formatResponse, formatError } from "./helpers.js";
|
|
3
|
+
import { zOwner, zRepo, zBranch, zFilePath, zPage, zLimit, zTitle, zBody, zSha, zSearchQuery } from "../validation.js";
|
|
4
|
+
export function registerRepositoryTools(server, client) {
|
|
5
|
+
// 1. search_repos
|
|
6
|
+
server.tool("search_repos", "Search for repositories on the Forgejo instance", {
|
|
7
|
+
q: zSearchQuery.optional(),
|
|
8
|
+
page: zPage,
|
|
9
|
+
limit: zLimit,
|
|
10
|
+
}, async (params) => {
|
|
11
|
+
try {
|
|
12
|
+
const data = await client.get("/repos/search", {
|
|
13
|
+
q: params.q,
|
|
14
|
+
page: params.page,
|
|
15
|
+
limit: params.limit,
|
|
16
|
+
});
|
|
17
|
+
return formatResponse(data);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
return formatError(err);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
// 2. get_repo
|
|
24
|
+
server.tool("get_repo", "Get details of a repository by owner and name", {
|
|
25
|
+
owner: zOwner,
|
|
26
|
+
repo: zRepo,
|
|
27
|
+
}, async (params) => {
|
|
28
|
+
try {
|
|
29
|
+
const data = await client.get(`/repos/${params.owner}/${params.repo}`);
|
|
30
|
+
return formatResponse(data);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
return formatError(err);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
// 3. create_repo
|
|
37
|
+
server.tool("create_repo", "Create a new repository for the authenticated user", {
|
|
38
|
+
name: zTitle.describe("Name of the new repository"),
|
|
39
|
+
description: zBody.optional(),
|
|
40
|
+
private: z.boolean().optional().describe("Whether the repository is private"),
|
|
41
|
+
auto_init: z.boolean().optional().describe("Initialize the repository with a README"),
|
|
42
|
+
default_branch: zBranch.optional(),
|
|
43
|
+
}, async (params) => {
|
|
44
|
+
try {
|
|
45
|
+
const data = await client.post("/user/repos", {
|
|
46
|
+
name: params.name,
|
|
47
|
+
description: params.description,
|
|
48
|
+
private: params.private,
|
|
49
|
+
auto_init: params.auto_init,
|
|
50
|
+
default_branch: params.default_branch,
|
|
51
|
+
});
|
|
52
|
+
return formatResponse(data);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
return formatError(err);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
// 4. create_org_repo
|
|
59
|
+
server.tool("create_org_repo", "Create a new repository in an organization", {
|
|
60
|
+
org: zOwner,
|
|
61
|
+
name: zTitle.describe("Name of the new repository"),
|
|
62
|
+
description: zBody.optional(),
|
|
63
|
+
private: z.boolean().optional().describe("Whether the repository is private"),
|
|
64
|
+
auto_init: z.boolean().optional().describe("Initialize the repository with a README"),
|
|
65
|
+
}, async (params) => {
|
|
66
|
+
try {
|
|
67
|
+
const data = await client.post(`/orgs/${params.org}/repos`, {
|
|
68
|
+
name: params.name,
|
|
69
|
+
description: params.description,
|
|
70
|
+
private: params.private,
|
|
71
|
+
auto_init: params.auto_init,
|
|
72
|
+
});
|
|
73
|
+
return formatResponse(data);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
return formatError(err);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
// 5. delete_repo
|
|
80
|
+
server.tool("delete_repo", "Delete a repository by owner and name", {
|
|
81
|
+
owner: zOwner,
|
|
82
|
+
repo: zRepo,
|
|
83
|
+
}, async (params) => {
|
|
84
|
+
try {
|
|
85
|
+
const data = await client.delete(`/repos/${params.owner}/${params.repo}`);
|
|
86
|
+
return formatResponse(data);
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
return formatError(err);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
// 6. fork_repo
|
|
93
|
+
server.tool("fork_repo", "Fork a repository", {
|
|
94
|
+
owner: zOwner,
|
|
95
|
+
repo: zRepo,
|
|
96
|
+
organization: zOwner.optional(),
|
|
97
|
+
name: zTitle.optional().describe("Name for the forked repository"),
|
|
98
|
+
}, async (params) => {
|
|
99
|
+
try {
|
|
100
|
+
const data = await client.post(`/repos/${params.owner}/${params.repo}/forks`, {
|
|
101
|
+
organization: params.organization,
|
|
102
|
+
name: params.name,
|
|
103
|
+
});
|
|
104
|
+
return formatResponse(data);
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
return formatError(err);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
// 7. list_branches
|
|
111
|
+
server.tool("list_branches", "List branches of a repository", {
|
|
112
|
+
owner: zOwner,
|
|
113
|
+
repo: zRepo,
|
|
114
|
+
page: zPage,
|
|
115
|
+
limit: zLimit,
|
|
116
|
+
}, async (params) => {
|
|
117
|
+
try {
|
|
118
|
+
const data = await client.get(`/repos/${params.owner}/${params.repo}/branches`, {
|
|
119
|
+
page: params.page,
|
|
120
|
+
limit: params.limit,
|
|
121
|
+
});
|
|
122
|
+
return formatResponse(data);
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
return formatError(err);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
// 8. get_branch
|
|
129
|
+
server.tool("get_branch", "Get details of a specific branch", {
|
|
130
|
+
owner: zOwner,
|
|
131
|
+
repo: zRepo,
|
|
132
|
+
branch: zBranch,
|
|
133
|
+
}, async (params) => {
|
|
134
|
+
try {
|
|
135
|
+
const data = await client.get(`/repos/${params.owner}/${params.repo}/branches/${params.branch}`);
|
|
136
|
+
return formatResponse(data);
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
return formatError(err);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
// 9. create_branch
|
|
143
|
+
server.tool("create_branch", "Create a new branch in a repository", {
|
|
144
|
+
owner: zOwner,
|
|
145
|
+
repo: zRepo,
|
|
146
|
+
new_branch_name: zBranch,
|
|
147
|
+
old_branch_name: zBranch.optional(),
|
|
148
|
+
}, async (params) => {
|
|
149
|
+
try {
|
|
150
|
+
const data = await client.post(`/repos/${params.owner}/${params.repo}/branches`, {
|
|
151
|
+
new_branch_name: params.new_branch_name,
|
|
152
|
+
old_branch_name: params.old_branch_name,
|
|
153
|
+
});
|
|
154
|
+
return formatResponse(data);
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
return formatError(err);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
// 10. delete_branch
|
|
161
|
+
server.tool("delete_branch", "Delete a branch from a repository", {
|
|
162
|
+
owner: zOwner,
|
|
163
|
+
repo: zRepo,
|
|
164
|
+
branch: zBranch,
|
|
165
|
+
}, async (params) => {
|
|
166
|
+
try {
|
|
167
|
+
const data = await client.delete(`/repos/${params.owner}/${params.repo}/branches/${params.branch}`);
|
|
168
|
+
return formatResponse(data);
|
|
169
|
+
}
|
|
170
|
+
catch (err) {
|
|
171
|
+
return formatError(err);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
// 11. list_repo_commits
|
|
175
|
+
server.tool("list_repo_commits", "List commits in a repository", {
|
|
176
|
+
owner: zOwner,
|
|
177
|
+
repo: zRepo,
|
|
178
|
+
sha: z.string().optional().describe("SHA or branch name to list commits from"),
|
|
179
|
+
page: zPage,
|
|
180
|
+
limit: zLimit,
|
|
181
|
+
}, async (params) => {
|
|
182
|
+
try {
|
|
183
|
+
const data = await client.get(`/repos/${params.owner}/${params.repo}/commits`, {
|
|
184
|
+
sha: params.sha,
|
|
185
|
+
page: params.page,
|
|
186
|
+
limit: params.limit,
|
|
187
|
+
});
|
|
188
|
+
return formatResponse(data);
|
|
189
|
+
}
|
|
190
|
+
catch (err) {
|
|
191
|
+
return formatError(err);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
// 12. get_file_contents
|
|
195
|
+
server.tool("get_file_contents", "Get the contents of a file in a repository", {
|
|
196
|
+
owner: zOwner,
|
|
197
|
+
repo: zRepo,
|
|
198
|
+
filepath: zFilePath,
|
|
199
|
+
ref: z.string().max(255).optional().describe("Branch, tag, or commit SHA to get the file from"),
|
|
200
|
+
}, async (params) => {
|
|
201
|
+
try {
|
|
202
|
+
const data = await client.get(`/repos/${params.owner}/${params.repo}/contents/${params.filepath}`, { ref: params.ref });
|
|
203
|
+
return formatResponse(data);
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
return formatError(err);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
// 13. create_file
|
|
210
|
+
server.tool("create_file", "Create a new file in a repository", {
|
|
211
|
+
owner: zOwner,
|
|
212
|
+
repo: zRepo,
|
|
213
|
+
filepath: zFilePath,
|
|
214
|
+
content: z.string().max(10_485_760).describe("Base64 encoded file content"),
|
|
215
|
+
message: zTitle.describe("Commit message for creating the file"),
|
|
216
|
+
branch: zBranch.optional(),
|
|
217
|
+
new_branch: zBranch.optional(),
|
|
218
|
+
}, async (params) => {
|
|
219
|
+
try {
|
|
220
|
+
const data = await client.post(`/repos/${params.owner}/${params.repo}/contents/${params.filepath}`, {
|
|
221
|
+
content: params.content,
|
|
222
|
+
message: params.message,
|
|
223
|
+
branch: params.branch,
|
|
224
|
+
new_branch: params.new_branch,
|
|
225
|
+
});
|
|
226
|
+
return formatResponse(data);
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
return formatError(err);
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
// 14. update_file
|
|
233
|
+
server.tool("update_file", "Update an existing file in a repository", {
|
|
234
|
+
owner: zOwner,
|
|
235
|
+
repo: zRepo,
|
|
236
|
+
filepath: zFilePath,
|
|
237
|
+
content: z.string().max(10_485_760).describe("Base64 encoded new file content"),
|
|
238
|
+
sha: zSha.describe("Blob SHA of the existing file (for conflict detection)"),
|
|
239
|
+
message: zTitle.describe("Commit message for the update"),
|
|
240
|
+
branch: zBranch.optional(),
|
|
241
|
+
}, async (params) => {
|
|
242
|
+
try {
|
|
243
|
+
const data = await client.patch(`/repos/${params.owner}/${params.repo}/contents/${params.filepath}`, {
|
|
244
|
+
content: params.content,
|
|
245
|
+
sha: params.sha,
|
|
246
|
+
message: params.message,
|
|
247
|
+
branch: params.branch,
|
|
248
|
+
});
|
|
249
|
+
return formatResponse(data);
|
|
250
|
+
}
|
|
251
|
+
catch (err) {
|
|
252
|
+
return formatError(err);
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
// 15. delete_file
|
|
256
|
+
server.tool("delete_file", "Delete a file from a repository", {
|
|
257
|
+
owner: zOwner,
|
|
258
|
+
repo: zRepo,
|
|
259
|
+
filepath: zFilePath,
|
|
260
|
+
sha: zSha.describe("Blob SHA of the file to delete"),
|
|
261
|
+
message: zTitle.describe("Commit message for the deletion"),
|
|
262
|
+
branch: zBranch.optional(),
|
|
263
|
+
}, async (params) => {
|
|
264
|
+
try {
|
|
265
|
+
const data = await client.request("DELETE", `/repos/${params.owner}/${params.repo}/contents/${params.filepath}`, {
|
|
266
|
+
body: {
|
|
267
|
+
sha: params.sha,
|
|
268
|
+
message: params.message,
|
|
269
|
+
branch: params.branch,
|
|
270
|
+
},
|
|
271
|
+
});
|
|
272
|
+
return formatResponse(data);
|
|
273
|
+
}
|
|
274
|
+
catch (err) {
|
|
275
|
+
return formatError(err);
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
// 16. list_releases
|
|
279
|
+
server.tool("list_releases", "List releases of a repository", {
|
|
280
|
+
owner: zOwner,
|
|
281
|
+
repo: zRepo,
|
|
282
|
+
page: zPage,
|
|
283
|
+
limit: zLimit,
|
|
284
|
+
}, async (params) => {
|
|
285
|
+
try {
|
|
286
|
+
const data = await client.get(`/repos/${params.owner}/${params.repo}/releases`, {
|
|
287
|
+
page: params.page,
|
|
288
|
+
limit: params.limit,
|
|
289
|
+
});
|
|
290
|
+
return formatResponse(data);
|
|
291
|
+
}
|
|
292
|
+
catch (err) {
|
|
293
|
+
return formatError(err);
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
// 17. create_release
|
|
297
|
+
server.tool("create_release", "Create a new release for a repository", {
|
|
298
|
+
owner: zOwner,
|
|
299
|
+
repo: zRepo,
|
|
300
|
+
tag_name: z.string().max(255).describe("Tag name for the release"),
|
|
301
|
+
name: zTitle.optional().describe("Title of the release"),
|
|
302
|
+
body: zBody.optional(),
|
|
303
|
+
draft: z.boolean().optional().describe("Whether this is a draft release"),
|
|
304
|
+
prerelease: z.boolean().optional().describe("Whether this is a pre-release"),
|
|
305
|
+
target_commitish: z.string().max(255).optional().describe("Branch or commit SHA to tag"),
|
|
306
|
+
}, async (params) => {
|
|
307
|
+
try {
|
|
308
|
+
const data = await client.post(`/repos/${params.owner}/${params.repo}/releases`, {
|
|
309
|
+
tag_name: params.tag_name,
|
|
310
|
+
name: params.name,
|
|
311
|
+
body: params.body,
|
|
312
|
+
draft: params.draft,
|
|
313
|
+
prerelease: params.prerelease,
|
|
314
|
+
target_commitish: params.target_commitish,
|
|
315
|
+
});
|
|
316
|
+
return formatResponse(data);
|
|
317
|
+
}
|
|
318
|
+
catch (err) {
|
|
319
|
+
return formatError(err);
|
|
320
|
+
}
|
|
321
|
+
});
|
|
322
|
+
// 18. list_tags
|
|
323
|
+
server.tool("list_tags", "List tags of a repository", {
|
|
324
|
+
owner: zOwner,
|
|
325
|
+
repo: zRepo,
|
|
326
|
+
page: zPage,
|
|
327
|
+
limit: zLimit,
|
|
328
|
+
}, async (params) => {
|
|
329
|
+
try {
|
|
330
|
+
const data = await client.get(`/repos/${params.owner}/${params.repo}/tags`, {
|
|
331
|
+
page: params.page,
|
|
332
|
+
limit: params.limit,
|
|
333
|
+
});
|
|
334
|
+
return formatResponse(data);
|
|
335
|
+
}
|
|
336
|
+
catch (err) {
|
|
337
|
+
return formatError(err);
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
// 19. list_repo_topics
|
|
341
|
+
server.tool("list_repo_topics", "Get the list of topics for a repository", {
|
|
342
|
+
owner: zOwner,
|
|
343
|
+
repo: zRepo,
|
|
344
|
+
}, async (params) => {
|
|
345
|
+
try {
|
|
346
|
+
const data = await client.get(`/repos/${params.owner}/${params.repo}/topics`);
|
|
347
|
+
return formatResponse(data);
|
|
348
|
+
}
|
|
349
|
+
catch (err) {
|
|
350
|
+
return formatError(err);
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
// 20. update_repo_topics
|
|
354
|
+
server.tool("update_repo_topics", "Set the topics for a repository (replaces all existing topics)", {
|
|
355
|
+
owner: zOwner,
|
|
356
|
+
repo: zRepo,
|
|
357
|
+
topics: z.array(z.string()).describe("List of topic names to set"),
|
|
358
|
+
}, async (params) => {
|
|
359
|
+
try {
|
|
360
|
+
const data = await client.patch(`/repos/${params.owner}/${params.repo}/topics`, {
|
|
361
|
+
topics: params.topics,
|
|
362
|
+
});
|
|
363
|
+
return formatResponse(data);
|
|
364
|
+
}
|
|
365
|
+
catch (err) {
|
|
366
|
+
return formatError(err);
|
|
367
|
+
}
|
|
368
|
+
});
|
|
369
|
+
// 21. list_forks
|
|
370
|
+
server.tool("list_forks", "List forks of a repository", {
|
|
371
|
+
owner: zOwner,
|
|
372
|
+
repo: zRepo,
|
|
373
|
+
page: zPage,
|
|
374
|
+
limit: zLimit,
|
|
375
|
+
}, async (params) => {
|
|
376
|
+
try {
|
|
377
|
+
const data = await client.get(`/repos/${params.owner}/${params.repo}/forks`, {
|
|
378
|
+
page: params.page,
|
|
379
|
+
limit: params.limit,
|
|
380
|
+
});
|
|
381
|
+
return formatResponse(data);
|
|
382
|
+
}
|
|
383
|
+
catch (err) {
|
|
384
|
+
return formatError(err);
|
|
385
|
+
}
|
|
386
|
+
});
|
|
387
|
+
// 22. list_collaborators
|
|
388
|
+
server.tool("list_collaborators", "List collaborators of a repository", {
|
|
389
|
+
owner: zOwner,
|
|
390
|
+
repo: zRepo,
|
|
391
|
+
}, async (params) => {
|
|
392
|
+
try {
|
|
393
|
+
const data = await client.get(`/repos/${params.owner}/${params.repo}/collaborators`);
|
|
394
|
+
return formatResponse(data);
|
|
395
|
+
}
|
|
396
|
+
catch (err) {
|
|
397
|
+
return formatError(err);
|
|
398
|
+
}
|
|
399
|
+
});
|
|
400
|
+
// 23. add_collaborator
|
|
401
|
+
server.tool("add_collaborator", "Add a collaborator to a repository", {
|
|
402
|
+
owner: zOwner,
|
|
403
|
+
repo: zRepo,
|
|
404
|
+
collaborator: zOwner,
|
|
405
|
+
permission: z.enum(["read", "write", "admin"]).optional(),
|
|
406
|
+
}, async (params) => {
|
|
407
|
+
try {
|
|
408
|
+
const data = await client.patch(`/repos/${params.owner}/${params.repo}/collaborators/${params.collaborator}`, { permission: params.permission });
|
|
409
|
+
return formatResponse(data);
|
|
410
|
+
}
|
|
411
|
+
catch (err) {
|
|
412
|
+
return formatError(err);
|
|
413
|
+
}
|
|
414
|
+
});
|
|
415
|
+
// 24. transfer_repo
|
|
416
|
+
server.tool("transfer_repo", "Transfer a repository to a new owner", {
|
|
417
|
+
owner: zOwner,
|
|
418
|
+
repo: zRepo,
|
|
419
|
+
new_owner: zOwner,
|
|
420
|
+
team_ids: z
|
|
421
|
+
.array(z.number())
|
|
422
|
+
.optional()
|
|
423
|
+
.describe("Team IDs to add to the repository after transfer"),
|
|
424
|
+
}, async (params) => {
|
|
425
|
+
try {
|
|
426
|
+
const data = await client.post(`/repos/${params.owner}/${params.repo}/transfer`, {
|
|
427
|
+
new_owner: params.new_owner,
|
|
428
|
+
team_ids: params.team_ids,
|
|
429
|
+
});
|
|
430
|
+
return formatResponse(data);
|
|
431
|
+
}
|
|
432
|
+
catch (err) {
|
|
433
|
+
return formatError(err);
|
|
434
|
+
}
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
//# sourceMappingURL=repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/tools/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAuQhF"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { formatResponse, formatError } from "./helpers.js";
|
|
3
|
+
import { zOwner, zRepo, zPage, zLimit, zSearchQuery } from "../validation.js";
|
|
4
|
+
export function registerUserTools(server, client) {
|
|
5
|
+
// 1. get_authenticated_user
|
|
6
|
+
server.tool("get_authenticated_user", "Get the currently authenticated user", {}, async () => {
|
|
7
|
+
try {
|
|
8
|
+
const data = await client.get("/user");
|
|
9
|
+
return formatResponse(data);
|
|
10
|
+
}
|
|
11
|
+
catch (err) {
|
|
12
|
+
return formatError(err);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
// 2. get_user
|
|
16
|
+
server.tool("get_user", "Get a user's profile by username", {
|
|
17
|
+
username: zOwner.describe("Username of the user"),
|
|
18
|
+
}, async (params) => {
|
|
19
|
+
try {
|
|
20
|
+
const data = await client.get(`/users/${params.username}`);
|
|
21
|
+
return formatResponse(data);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
return formatError(err);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
// 3. list_user_repos
|
|
28
|
+
server.tool("list_user_repos", "List repositories owned by a user", {
|
|
29
|
+
username: zOwner.describe("Username of the user"),
|
|
30
|
+
page: zPage,
|
|
31
|
+
limit: zLimit,
|
|
32
|
+
}, async (params) => {
|
|
33
|
+
try {
|
|
34
|
+
const data = await client.get(`/users/${params.username}/repos`, {
|
|
35
|
+
page: params.page,
|
|
36
|
+
limit: params.limit,
|
|
37
|
+
});
|
|
38
|
+
return formatResponse(data);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
return formatError(err);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
// 4. list_user_orgs
|
|
45
|
+
server.tool("list_user_orgs", "List organizations a user belongs to", {
|
|
46
|
+
username: zOwner.describe("Username of the user"),
|
|
47
|
+
page: zPage,
|
|
48
|
+
limit: zLimit,
|
|
49
|
+
}, async (params) => {
|
|
50
|
+
try {
|
|
51
|
+
const data = await client.get(`/users/${params.username}/orgs`, {
|
|
52
|
+
page: params.page,
|
|
53
|
+
limit: params.limit,
|
|
54
|
+
});
|
|
55
|
+
return formatResponse(data);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
return formatError(err);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
// 5. search_users
|
|
62
|
+
server.tool("search_users", "Search for users on the Forgejo instance", {
|
|
63
|
+
q: zSearchQuery.describe("Search query string"),
|
|
64
|
+
page: zPage,
|
|
65
|
+
limit: zLimit,
|
|
66
|
+
}, async (params) => {
|
|
67
|
+
try {
|
|
68
|
+
const data = await client.get("/users/search", {
|
|
69
|
+
q: params.q,
|
|
70
|
+
page: params.page,
|
|
71
|
+
limit: params.limit,
|
|
72
|
+
});
|
|
73
|
+
return formatResponse(data);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
return formatError(err);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
// 6. list_followers
|
|
80
|
+
server.tool("list_followers", "List a user's followers", {
|
|
81
|
+
username: zOwner.describe("Username of the user"),
|
|
82
|
+
page: zPage,
|
|
83
|
+
limit: zLimit,
|
|
84
|
+
}, async (params) => {
|
|
85
|
+
try {
|
|
86
|
+
const data = await client.get(`/users/${params.username}/followers`, {
|
|
87
|
+
page: params.page,
|
|
88
|
+
limit: params.limit,
|
|
89
|
+
});
|
|
90
|
+
return formatResponse(data);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
return formatError(err);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
// 7. list_following
|
|
97
|
+
server.tool("list_following", "List who a user is following", {
|
|
98
|
+
username: zOwner.describe("Username of the user"),
|
|
99
|
+
page: zPage,
|
|
100
|
+
limit: zLimit,
|
|
101
|
+
}, async (params) => {
|
|
102
|
+
try {
|
|
103
|
+
const data = await client.get(`/users/${params.username}/following`, {
|
|
104
|
+
page: params.page,
|
|
105
|
+
limit: params.limit,
|
|
106
|
+
});
|
|
107
|
+
return formatResponse(data);
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
return formatError(err);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
// 8. list_user_starred
|
|
114
|
+
server.tool("list_user_starred", "List repositories starred by a user", {
|
|
115
|
+
username: zOwner.describe("Username of the user"),
|
|
116
|
+
page: zPage,
|
|
117
|
+
limit: zLimit,
|
|
118
|
+
}, async (params) => {
|
|
119
|
+
try {
|
|
120
|
+
const data = await client.get(`/users/${params.username}/starred`, {
|
|
121
|
+
page: params.page,
|
|
122
|
+
limit: params.limit,
|
|
123
|
+
});
|
|
124
|
+
return formatResponse(data);
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
return formatError(err);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
// 9. list_my_starred
|
|
131
|
+
server.tool("list_my_starred", "List repositories starred by the authenticated user", {
|
|
132
|
+
page: zPage,
|
|
133
|
+
limit: zLimit,
|
|
134
|
+
}, async (params) => {
|
|
135
|
+
try {
|
|
136
|
+
const data = await client.get("/user/starred", {
|
|
137
|
+
page: params.page,
|
|
138
|
+
limit: params.limit,
|
|
139
|
+
});
|
|
140
|
+
return formatResponse(data);
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
return formatError(err);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
// 10. star_repo
|
|
147
|
+
server.tool("star_repo", "Star a repository for the authenticated user", {
|
|
148
|
+
owner: zOwner,
|
|
149
|
+
repo: zRepo,
|
|
150
|
+
}, async (params) => {
|
|
151
|
+
try {
|
|
152
|
+
const data = await client.put(`/user/starred/${params.owner}/${params.repo}`);
|
|
153
|
+
return formatResponse(data);
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
return formatError(err);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
// 11. unstar_repo
|
|
160
|
+
server.tool("unstar_repo", "Unstar a repository for the authenticated user", {
|
|
161
|
+
owner: zOwner,
|
|
162
|
+
repo: zRepo,
|
|
163
|
+
}, async (params) => {
|
|
164
|
+
try {
|
|
165
|
+
const data = await client.delete(`/user/starred/${params.owner}/${params.repo}`);
|
|
166
|
+
return formatResponse(data);
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
return formatError(err);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
// 12. list_my_notifications
|
|
173
|
+
server.tool("list_my_notifications", "List notifications for the authenticated user", {
|
|
174
|
+
page: zPage,
|
|
175
|
+
limit: zLimit,
|
|
176
|
+
status_types: z
|
|
177
|
+
.enum(["unread", "read", "pinned"])
|
|
178
|
+
.optional()
|
|
179
|
+
.describe("Filter by status type: unread, read, or pinned"),
|
|
180
|
+
}, async (params) => {
|
|
181
|
+
try {
|
|
182
|
+
const data = await client.get("/notifications", {
|
|
183
|
+
page: params.page,
|
|
184
|
+
limit: params.limit,
|
|
185
|
+
status_types: params.status_types,
|
|
186
|
+
});
|
|
187
|
+
return formatResponse(data);
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
return formatError(err);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
// 13. mark_notifications_read
|
|
194
|
+
server.tool("mark_notifications_read", "Mark all notifications as read for the authenticated user", {}, async () => {
|
|
195
|
+
try {
|
|
196
|
+
const data = await client.put("/notifications");
|
|
197
|
+
return formatResponse(data);
|
|
198
|
+
}
|
|
199
|
+
catch (err) {
|
|
200
|
+
return formatError(err);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=users.js.map
|