@amonstack/gitea-mcp 0.3.0 → 0.3.1
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/README.md +40 -11
- package/README.zh-CN.md +31 -9
- package/dist/cli.js +9 -5
- package/dist/cli.js.map +1 -1
- package/dist/credentials.d.ts +145 -0
- package/dist/credentials.js +141 -0
- package/dist/credentials.js.map +1 -0
- package/dist/git-config.d.ts +43 -19
- package/dist/git-config.js +127 -27
- package/dist/git-config.js.map +1 -1
- package/dist/gitea-client.d.ts +54 -2
- package/dist/gitea-client.js +109 -6
- package/dist/gitea-client.js.map +1 -1
- package/dist/server.d.ts +3 -2
- package/dist/server.js +16 -5
- package/dist/server.js.map +1 -1
- package/dist/tools.d.ts +1 -0
- package/dist/tools.js +1 -0
- package/dist/tools.js.map +1 -1
- package/package.json +3 -2
package/dist/git-config.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
|
+
import { orderSchemesForCredentialStore, } from "./credentials.js";
|
|
4
5
|
/**
|
|
5
6
|
* Parse a git remote URL into host/baseUrl/owner/repo. Accepts `ssh://`, the
|
|
6
7
|
* scp-like `user@host:owner/repo` form, and `http(s)://`. SSH URLs derive an
|
|
@@ -87,11 +88,19 @@ export function readTokenFromGitConfig(content, baseUrl) {
|
|
|
87
88
|
return undefined;
|
|
88
89
|
}
|
|
89
90
|
/**
|
|
90
|
-
*
|
|
91
|
-
* the
|
|
92
|
-
* non-matching lines are skipped.
|
|
91
|
+
* Parse every credential-store line whose host matches. Each line is a URL of
|
|
92
|
+
* the form `protocol://[user[:pass]]@host[:port][/path]`; malformed and
|
|
93
|
+
* non-matching lines are skipped. Returns entries in file order; callers
|
|
94
|
+
* narrow and re-sort by repo path specificity.
|
|
95
|
+
*
|
|
96
|
+
* The `password` field — when present — holds whatever the user typed into
|
|
97
|
+
* git's password prompt: a real account password, a Personal Access Token,
|
|
98
|
+
* or an OAuth token. Git itself does not distinguish, and neither does this
|
|
99
|
+
* parser; the GiteaClient runtime tries each entry under multiple auth
|
|
100
|
+
* schemes to discover what works.
|
|
93
101
|
*/
|
|
94
102
|
export function parseGitCredentials(content, host) {
|
|
103
|
+
const entries = [];
|
|
95
104
|
for (const rawLine of content.split(/\r?\n/)) {
|
|
96
105
|
const line = rawLine.trim();
|
|
97
106
|
if (!line || line.startsWith("#"))
|
|
@@ -100,15 +109,37 @@ export function parseGitCredentials(content, host) {
|
|
|
100
109
|
const credUrl = new URL(line);
|
|
101
110
|
if (credUrl.host !== host)
|
|
102
111
|
continue;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
112
|
+
entries.push({
|
|
113
|
+
username: credUrl.username ? decodeURIComponent(credUrl.username) : undefined,
|
|
114
|
+
password: credUrl.password ? decodeURIComponent(credUrl.password) : undefined,
|
|
115
|
+
host: credUrl.host,
|
|
116
|
+
path: credUrl.pathname.replace(/^\/+|\/+$/g, "").replace(/\.git$/, ""),
|
|
117
|
+
});
|
|
106
118
|
}
|
|
107
119
|
catch {
|
|
108
120
|
continue;
|
|
109
121
|
}
|
|
110
122
|
}
|
|
111
|
-
return
|
|
123
|
+
return entries;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Score a credential entry's path specificity against the target repo path
|
|
127
|
+
* (`owner/repo`). Higher = more specific. Used to narrow multiple host
|
|
128
|
+
* matches toward the most relevant entry first.
|
|
129
|
+
*
|
|
130
|
+
* - Path is empty (host-only entry) → 0
|
|
131
|
+
* - Path is a prefix of the repo path → length of the matching path
|
|
132
|
+
* - Path does not match → -1 (deprioritized but still tried as a fallback)
|
|
133
|
+
*/
|
|
134
|
+
function scoreEntryPath(entryPath, repoPath) {
|
|
135
|
+
if (!entryPath)
|
|
136
|
+
return 0;
|
|
137
|
+
if (!repoPath)
|
|
138
|
+
return 0;
|
|
139
|
+
if (repoPath === entryPath || repoPath.startsWith(`${entryPath}/`)) {
|
|
140
|
+
return entryPath.length;
|
|
141
|
+
}
|
|
142
|
+
return -1;
|
|
112
143
|
}
|
|
113
144
|
/** Default credential-store paths: `$XDG_CONFIG_HOME/git/credentials` then `~/.git-credentials`. */
|
|
114
145
|
export function defaultCredentialsPaths() {
|
|
@@ -129,6 +160,37 @@ async function readOptionalFile(path) {
|
|
|
129
160
|
return "";
|
|
130
161
|
}
|
|
131
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Build a `CandidateCredential` from a parsed credential-store entry.
|
|
165
|
+
*
|
|
166
|
+
* - `https://:pass@host` or `https://user:pass@host` → secret = pass,
|
|
167
|
+
* username preserved (basic auth needs it).
|
|
168
|
+
* - `https://tok@host` (username but no password) → secret = tok, no
|
|
169
|
+
* username: this is git's "store the token as the username" convention.
|
|
170
|
+
* Try `token` first (most common), fall back to `basic`.
|
|
171
|
+
*/
|
|
172
|
+
function candidateFromEntry(entry) {
|
|
173
|
+
if (entry.password) {
|
|
174
|
+
return {
|
|
175
|
+
source: "credential-store",
|
|
176
|
+
username: entry.username,
|
|
177
|
+
secret: entry.password,
|
|
178
|
+
schemes: orderSchemesForCredentialStore(entry.username),
|
|
179
|
+
status: "pending",
|
|
180
|
+
nextSchemeIndex: 0,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
if (entry.username) {
|
|
184
|
+
return {
|
|
185
|
+
source: "credential-store",
|
|
186
|
+
secret: entry.username,
|
|
187
|
+
schemes: ["token", "basic"],
|
|
188
|
+
status: "pending",
|
|
189
|
+
nextSchemeIndex: 0,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
132
194
|
/**
|
|
133
195
|
* Discover the Gitea connection config from env + the local git context.
|
|
134
196
|
*
|
|
@@ -136,13 +198,22 @@ async function readOptionalFile(path) {
|
|
|
136
198
|
* remote (`upstream` → `origin` → first). Returns null only when neither is
|
|
137
199
|
* available — callers should treat that as "do not start the server".
|
|
138
200
|
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
201
|
+
* candidates (in priority order):
|
|
202
|
+
* 1. `[gitea "<baseUrl>"] token` / bare `[gitea] token` from `.git/config`
|
|
203
|
+
* (explicit user configuration; `token` scheme only).
|
|
204
|
+
* 2. `GITEA_TOKEN` env var (explicit env; `token` scheme only — preserves
|
|
205
|
+
* the simple-token semantics).
|
|
206
|
+
* 3. Every host-matching entry in a git credential store, narrowed by repo
|
|
207
|
+
* path specificity (most specific first). Each entry may be a PAT,
|
|
208
|
+
* password, or OAuth token; the client tries each under `basic` and/or
|
|
209
|
+
* `token` schemes per the username heuristic.
|
|
143
210
|
*
|
|
144
211
|
* owner/repo: `GITEA_DEFAULT_OWNER`/`GITEA_DEFAULT_REPO` (env) win; otherwise
|
|
145
|
-
*
|
|
212
|
+
* taken from the selected remote.
|
|
213
|
+
*
|
|
214
|
+
* The result may have an empty `candidates` array (anonymous mode); the server
|
|
215
|
+
* still starts and a Skill guides the user to provide one. Write tools will
|
|
216
|
+
* fail with 401/403 until a working credential is added.
|
|
146
217
|
*/
|
|
147
218
|
export async function discoverConfig(options = {}) {
|
|
148
219
|
const cwd = options.cwd ?? process.cwd();
|
|
@@ -166,30 +237,59 @@ export async function discoverConfig(options = {}) {
|
|
|
166
237
|
else {
|
|
167
238
|
host = selected?.host;
|
|
168
239
|
}
|
|
169
|
-
|
|
240
|
+
const candidates = [];
|
|
241
|
+
// Source 1: .git/config [gitea "<baseUrl>"] token / bare [gitea] token.
|
|
242
|
+
if (host) {
|
|
243
|
+
const configToken = readTokenFromGitConfig(gitConfigContent, baseUrl);
|
|
244
|
+
if (configToken) {
|
|
245
|
+
candidates.push({
|
|
246
|
+
source: "gitea-config",
|
|
247
|
+
secret: configToken,
|
|
248
|
+
schemes: ["token"],
|
|
249
|
+
status: "pending",
|
|
250
|
+
nextSchemeIndex: 0,
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
// Source 2: GITEA_TOKEN env (simple-token semantics — no scheme probing).
|
|
255
|
+
const envToken = env.GITEA_TOKEN;
|
|
256
|
+
if (envToken) {
|
|
257
|
+
candidates.push({
|
|
258
|
+
source: "env",
|
|
259
|
+
secret: envToken,
|
|
260
|
+
schemes: ["token"],
|
|
261
|
+
status: "pending",
|
|
262
|
+
nextSchemeIndex: 0,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
// Source 3..N: credential-store entries, host-matched and path-narrowed.
|
|
170
266
|
if (host) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
267
|
+
const paths = options.credentialsPaths ?? defaultCredentialsPaths();
|
|
268
|
+
const repoPath = selected ? `${selected.owner}/${selected.repo}` : "";
|
|
269
|
+
const scored = [];
|
|
270
|
+
let order = 0;
|
|
271
|
+
for (const path of paths) {
|
|
272
|
+
const cred = await readOptionalFile(path);
|
|
273
|
+
if (!cred)
|
|
274
|
+
continue;
|
|
275
|
+
for (const entry of parseGitCredentials(cred, host)) {
|
|
276
|
+
scored.push({ entry, score: scoreEntryPath(entry.path, repoPath), order: order++ });
|
|
181
277
|
}
|
|
182
278
|
}
|
|
279
|
+
// Sort by score desc; stable within same score (preserve file/discovery order).
|
|
280
|
+
scored.sort((a, b) => b.score - a.score || a.order - b.order);
|
|
281
|
+
for (const { entry } of scored) {
|
|
282
|
+
const candidate = candidateFromEntry(entry);
|
|
283
|
+
if (candidate)
|
|
284
|
+
candidates.push(candidate);
|
|
285
|
+
}
|
|
183
286
|
}
|
|
184
|
-
if (!token)
|
|
185
|
-
token = env.GITEA_TOKEN;
|
|
186
287
|
return {
|
|
187
288
|
baseUrl,
|
|
188
|
-
token,
|
|
189
289
|
defaultOwner: env.GITEA_DEFAULT_OWNER ?? selected?.owner,
|
|
190
290
|
defaultRepo: env.GITEA_DEFAULT_REPO ?? selected?.repo,
|
|
191
291
|
remote: selected?.remote,
|
|
192
|
-
|
|
292
|
+
candidates,
|
|
193
293
|
};
|
|
194
294
|
}
|
|
195
295
|
//# sourceMappingURL=git-config.js.map
|
package/dist/git-config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-config.js","sourceRoot":"","sources":["../src/git-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"git-config.js","sourceRoot":"","sources":["../src/git-config.ts"],"names":[],"mappings":"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"}
|
package/dist/gitea-client.d.ts
CHANGED
|
@@ -1,7 +1,29 @@
|
|
|
1
|
+
import { type CandidateCredential, type CandidateSummary } from "./credentials.js";
|
|
1
2
|
export interface GiteaConfig {
|
|
2
3
|
baseUrl: string;
|
|
3
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Legacy single-token mode. When `candidates` is omitted, this is wrapped
|
|
6
|
+
* as a one-element candidate list with the `token` scheme (preserving the
|
|
7
|
+
* pre-multi-credential behavior exactly).
|
|
8
|
+
*/
|
|
4
9
|
token?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Credential candidates in priority order. When provided, enables the
|
|
12
|
+
* fault-tolerant auth state machine: each candidate × scheme is tried in
|
|
13
|
+
* order until one succeeds, with 401/403 advancing to the next attempt.
|
|
14
|
+
*/
|
|
15
|
+
candidates?: CandidateCredential[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* HTTP error from the Gitea API. Carries `status` as a structured field so
|
|
19
|
+
* callers (the retry loop, tests) can branch on it without parsing the
|
|
20
|
+
* message string (AGENTS.md §2.3 forbids substring-based control flow).
|
|
21
|
+
*/
|
|
22
|
+
export declare class GiteaApiError extends Error {
|
|
23
|
+
readonly status: number;
|
|
24
|
+
readonly statusText: string;
|
|
25
|
+
readonly body: string;
|
|
26
|
+
constructor(status: number, statusText: string, body: string);
|
|
5
27
|
}
|
|
6
28
|
export interface Issue {
|
|
7
29
|
id: number;
|
|
@@ -141,8 +163,38 @@ export interface UpdateMilestoneParams {
|
|
|
141
163
|
}
|
|
142
164
|
export declare class GiteaClient {
|
|
143
165
|
private baseUrl;
|
|
144
|
-
private
|
|
166
|
+
private candidates;
|
|
145
167
|
constructor(config: GiteaConfig);
|
|
168
|
+
/**
|
|
169
|
+
* Snapshot of the credential state machine — for the `gitea_status` tool.
|
|
170
|
+
* Secrets are never included; only `secretPresent: boolean` and a masked
|
|
171
|
+
* `username`. See `summarizeCandidates` in `credentials.ts`.
|
|
172
|
+
*/
|
|
173
|
+
getCredentialStatus(): {
|
|
174
|
+
candidates: CandidateSummary[];
|
|
175
|
+
activeIndex: number | null;
|
|
176
|
+
totalCandidates: number;
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Single HTTP call. Throws `GiteaApiError` on non-2xx so the retry loop can
|
|
180
|
+
* branch on `status` (never on the message string). The `authHeader` is
|
|
181
|
+
* pre-built by the caller from the active candidate + scheme.
|
|
182
|
+
*/
|
|
183
|
+
private doRequest;
|
|
184
|
+
/**
|
|
185
|
+
* Auth-aware request entry point. Three modes:
|
|
186
|
+
*
|
|
187
|
+
* 1. Active candidate exists (a prior attempt succeeded): reuse its locked
|
|
188
|
+
* scheme directly, no iteration.
|
|
189
|
+
* 2. No candidates at all: anonymous request (no Authorization header).
|
|
190
|
+
* 3. Otherwise: iterate (candidate, scheme) pairs in priority order, trying
|
|
191
|
+
* each until one succeeds. On 401/403 the current attempt is marked
|
|
192
|
+
* failed and the next is tried; non-auth errors propagate immediately
|
|
193
|
+
* (we do NOT mask 5xx / network errors as auth failures). When every
|
|
194
|
+
* candidate × scheme is exhausted, the most recent `GiteaApiError` is
|
|
195
|
+
* re-thrown so the caller sees the underlying status/body; the
|
|
196
|
+
* `gitea_status` tool surfaces the full attempt history.
|
|
197
|
+
*/
|
|
146
198
|
private request;
|
|
147
199
|
listIssues(params: ListIssuesParams): Promise<Issue[]>;
|
|
148
200
|
getIssue(owner: string, repo: string, index: number): Promise<Issue>;
|
package/dist/gitea-client.js
CHANGED
|
@@ -1,15 +1,67 @@
|
|
|
1
|
+
import { buildAuthHeader, pickNextAttempt, markAttemptFailed, markAttemptSucceeded, findActiveCandidateIndex, summarizeCandidates, } from "./credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* HTTP error from the Gitea API. Carries `status` as a structured field so
|
|
4
|
+
* callers (the retry loop, tests) can branch on it without parsing the
|
|
5
|
+
* message string (AGENTS.md §2.3 forbids substring-based control flow).
|
|
6
|
+
*/
|
|
7
|
+
export class GiteaApiError extends Error {
|
|
8
|
+
status;
|
|
9
|
+
statusText;
|
|
10
|
+
body;
|
|
11
|
+
constructor(status, statusText, body) {
|
|
12
|
+
super(`Gitea API error (${status}): ${body || statusText}`);
|
|
13
|
+
this.status = status;
|
|
14
|
+
this.statusText = statusText;
|
|
15
|
+
this.body = body;
|
|
16
|
+
this.name = "GiteaApiError";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
1
19
|
export class GiteaClient {
|
|
2
20
|
baseUrl;
|
|
3
|
-
|
|
21
|
+
candidates;
|
|
4
22
|
constructor(config) {
|
|
5
23
|
this.baseUrl = config.baseUrl.replace(/\/+$/, "");
|
|
6
|
-
|
|
24
|
+
if (config.candidates && config.candidates.length > 0) {
|
|
25
|
+
// Defensive copy so external mutation cannot desync the state machine.
|
|
26
|
+
this.candidates = config.candidates.map((c) => ({ ...c }));
|
|
27
|
+
}
|
|
28
|
+
else if (config.token) {
|
|
29
|
+
this.candidates = [
|
|
30
|
+
{
|
|
31
|
+
source: "env",
|
|
32
|
+
secret: config.token,
|
|
33
|
+
schemes: ["token"],
|
|
34
|
+
status: "pending",
|
|
35
|
+
nextSchemeIndex: 0,
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.candidates = [];
|
|
41
|
+
}
|
|
7
42
|
}
|
|
8
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Snapshot of the credential state machine — for the `gitea_status` tool.
|
|
45
|
+
* Secrets are never included; only `secretPresent: boolean` and a masked
|
|
46
|
+
* `username`. See `summarizeCandidates` in `credentials.ts`.
|
|
47
|
+
*/
|
|
48
|
+
getCredentialStatus() {
|
|
49
|
+
return {
|
|
50
|
+
candidates: summarizeCandidates(this.candidates),
|
|
51
|
+
activeIndex: findActiveCandidateIndex(this.candidates),
|
|
52
|
+
totalCandidates: this.candidates.length,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Single HTTP call. Throws `GiteaApiError` on non-2xx so the retry loop can
|
|
57
|
+
* branch on `status` (never on the message string). The `authHeader` is
|
|
58
|
+
* pre-built by the caller from the active candidate + scheme.
|
|
59
|
+
*/
|
|
60
|
+
async doRequest(method, path, body, authHeader) {
|
|
9
61
|
const url = `${this.baseUrl}/api/v1${path}`;
|
|
10
62
|
const headers = { Accept: "application/json" };
|
|
11
|
-
if (
|
|
12
|
-
headers["Authorization"] =
|
|
63
|
+
if (authHeader)
|
|
64
|
+
headers["Authorization"] = authHeader;
|
|
13
65
|
const init = { method, headers };
|
|
14
66
|
if (body !== undefined) {
|
|
15
67
|
headers["Content-Type"] = "application/json";
|
|
@@ -18,13 +70,64 @@ export class GiteaClient {
|
|
|
18
70
|
const response = await fetch(url, init);
|
|
19
71
|
if (!response.ok) {
|
|
20
72
|
const errorText = await response.text().catch(() => "");
|
|
21
|
-
throw new
|
|
73
|
+
throw new GiteaApiError(response.status, response.statusText, errorText);
|
|
22
74
|
}
|
|
23
75
|
if (response.status === 204) {
|
|
24
76
|
return undefined;
|
|
25
77
|
}
|
|
26
78
|
return response.json();
|
|
27
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Auth-aware request entry point. Three modes:
|
|
82
|
+
*
|
|
83
|
+
* 1. Active candidate exists (a prior attempt succeeded): reuse its locked
|
|
84
|
+
* scheme directly, no iteration.
|
|
85
|
+
* 2. No candidates at all: anonymous request (no Authorization header).
|
|
86
|
+
* 3. Otherwise: iterate (candidate, scheme) pairs in priority order, trying
|
|
87
|
+
* each until one succeeds. On 401/403 the current attempt is marked
|
|
88
|
+
* failed and the next is tried; non-auth errors propagate immediately
|
|
89
|
+
* (we do NOT mask 5xx / network errors as auth failures). When every
|
|
90
|
+
* candidate × scheme is exhausted, the most recent `GiteaApiError` is
|
|
91
|
+
* re-thrown so the caller sees the underlying status/body; the
|
|
92
|
+
* `gitea_status` tool surfaces the full attempt history.
|
|
93
|
+
*/
|
|
94
|
+
async request(method, path, body) {
|
|
95
|
+
const activeIdx = findActiveCandidateIndex(this.candidates);
|
|
96
|
+
if (activeIdx !== null) {
|
|
97
|
+
const active = this.candidates[activeIdx];
|
|
98
|
+
const scheme = active.activeScheme ?? active.schemes[0];
|
|
99
|
+
return this.doRequest(method, path, body, buildAuthHeader(active, scheme));
|
|
100
|
+
}
|
|
101
|
+
if (this.candidates.length === 0) {
|
|
102
|
+
return this.doRequest(method, path, body, null);
|
|
103
|
+
}
|
|
104
|
+
let lastError = null;
|
|
105
|
+
while (true) {
|
|
106
|
+
const attempt = pickNextAttempt(this.candidates);
|
|
107
|
+
if (!attempt) {
|
|
108
|
+
// Exhausted. Re-throw the underlying API error so the status/body
|
|
109
|
+
// format is preserved. The gitea_status tool reveals the full
|
|
110
|
+
// candidate × scheme attempt history.
|
|
111
|
+
if (lastError)
|
|
112
|
+
throw lastError;
|
|
113
|
+
throw new GiteaApiError(0, "", "all credential candidates exhausted");
|
|
114
|
+
}
|
|
115
|
+
const candidate = this.candidates[attempt.candidateIndex];
|
|
116
|
+
try {
|
|
117
|
+
const result = await this.doRequest(method, path, body, buildAuthHeader(candidate, attempt.scheme));
|
|
118
|
+
markAttemptSucceeded(this.candidates, attempt.candidateIndex, attempt.scheme);
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
if (err instanceof GiteaApiError && (err.status === 401 || err.status === 403)) {
|
|
123
|
+
markAttemptFailed(this.candidates, attempt.candidateIndex, `${err.status}`);
|
|
124
|
+
lastError = err;
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
throw err;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
28
131
|
async listIssues(params) {
|
|
29
132
|
const searchParams = new URLSearchParams();
|
|
30
133
|
if (params.state)
|
package/dist/gitea-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitea-client.js","sourceRoot":"","sources":["../src/gitea-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gitea-client.js","sourceRoot":"","sources":["../src/gitea-client.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
2
|
+
import type { CandidateCredential } from "./credentials.js";
|
|
3
|
+
export declare function createServer(baseUrl: string, candidates?: CandidateCredential[], defaultOwner?: string, defaultRepo?: string): Promise<McpServer>;
|
|
4
|
+
export declare function runServer(baseUrl: string, candidates?: CandidateCredential[], defaultOwner?: string, defaultRepo?: string): Promise<void>;
|
package/dist/server.js
CHANGED
|
@@ -2,7 +2,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { GiteaClient } from "./gitea-client.js";
|
|
5
|
-
import { ListIssuesSchema, GetIssueSchema, CreateIssueSchema, UpdateIssueSchema, DeleteIssueSchema, SearchIssuesSchema, ListCommentsSchema, CreateCommentSchema, UpdateCommentSchema, DeleteCommentSchema, ListLabelsSchema, CreateLabelSchema, UpdateLabelSchema, DeleteLabelSchema, AddIssueLabelsSchema, RemoveIssueLabelSchema, ReplaceIssueLabelsSchema, ClearIssueLabelsSchema, ListMilestonesSchema, GetMilestoneSchema, CreateMilestoneSchema, UpdateMilestoneSchema, DeleteMilestoneSchema, ResolveRepoSchema, ListMyReposSchema, } from "./tools.js";
|
|
5
|
+
import { ListIssuesSchema, GetIssueSchema, CreateIssueSchema, UpdateIssueSchema, DeleteIssueSchema, SearchIssuesSchema, ListCommentsSchema, CreateCommentSchema, UpdateCommentSchema, DeleteCommentSchema, ListLabelsSchema, CreateLabelSchema, UpdateLabelSchema, DeleteLabelSchema, AddIssueLabelsSchema, RemoveIssueLabelSchema, ReplaceIssueLabelsSchema, ClearIssueLabelsSchema, ListMilestonesSchema, GetMilestoneSchema, CreateMilestoneSchema, UpdateMilestoneSchema, DeleteMilestoneSchema, ResolveRepoSchema, ListMyReposSchema, GiteaStatusSchema, } from "./tools.js";
|
|
6
6
|
import { parseRemotes, selectRemote } from "./git-config.js";
|
|
7
7
|
import { readFile } from "node:fs/promises";
|
|
8
8
|
import { dirname, join } from "node:path";
|
|
@@ -10,8 +10,10 @@ import { createRequire } from "node:module";
|
|
|
10
10
|
import { fileURLToPath } from "node:url";
|
|
11
11
|
const require = createRequire(import.meta.url);
|
|
12
12
|
const pkg = require("../package.json");
|
|
13
|
-
export async function createServer(baseUrl,
|
|
14
|
-
const client =
|
|
13
|
+
export async function createServer(baseUrl, candidates, defaultOwner, defaultRepo) {
|
|
14
|
+
const client = Array.isArray(candidates)
|
|
15
|
+
? new GiteaClient({ baseUrl, candidates })
|
|
16
|
+
: new GiteaClient({ baseUrl, token: candidates });
|
|
15
17
|
const moduleDir = dirname(fileURLToPath(import.meta.url));
|
|
16
18
|
let instructions;
|
|
17
19
|
try {
|
|
@@ -316,6 +318,15 @@ export async function createServer(baseUrl, token, defaultOwner, defaultRepo) {
|
|
|
316
318
|
content: [{ type: "text", text: JSON.stringify(repos, null, 2) }],
|
|
317
319
|
};
|
|
318
320
|
});
|
|
321
|
+
server.registerTool("gitea_status", {
|
|
322
|
+
description: "Report the resolved credential state: every discovered credential candidate, its source (gitea-config / env / credential-store), the auth schemes that will be tried, and per-scheme outcome (pending / active / exhausted with redacted last error). Secrets are NEVER returned — only a `secretPresent` boolean and a masked username (`firstChar***`). Use this when a tool returns 401/403 to see which schemes were rejected and which candidate (if any) is currently active. Takes no input.",
|
|
323
|
+
inputSchema: GiteaStatusSchema.shape,
|
|
324
|
+
}, async () => {
|
|
325
|
+
const status = client.getCredentialStatus();
|
|
326
|
+
return {
|
|
327
|
+
content: [{ type: "text", text: JSON.stringify(status, null, 2) }],
|
|
328
|
+
};
|
|
329
|
+
});
|
|
319
330
|
// ── Resources (on-demand reference docs for clients that surface them) ──
|
|
320
331
|
const registerDocResource = (name, file, description) => {
|
|
321
332
|
const uri = `gitea-mcp://guide/${name}`;
|
|
@@ -449,8 +460,8 @@ export async function createServer(baseUrl, token, defaultOwner, defaultRepo) {
|
|
|
449
460
|
});
|
|
450
461
|
return server;
|
|
451
462
|
}
|
|
452
|
-
export async function runServer(baseUrl,
|
|
453
|
-
const server = await createServer(baseUrl,
|
|
463
|
+
export async function runServer(baseUrl, candidates, defaultOwner, defaultRepo) {
|
|
464
|
+
const server = await createServer(baseUrl, candidates, defaultOwner, defaultRepo);
|
|
454
465
|
const transport = new StdioServerTransport();
|
|
455
466
|
await server.connect(transport);
|
|
456
467
|
}
|