gitlab-mcp 1.2.1 → 1.4.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/README.md +36 -29
- package/dist/config/dotenv.js +6 -2
- package/dist/config/dotenv.js.map +1 -1
- package/dist/config/env.d.ts +5 -2
- package/dist/config/env.js +27 -1
- package/dist/config/env.js.map +1 -1
- package/dist/http-app.js +10 -3
- package/dist/http-app.js.map +1 -1
- package/dist/http.js +6 -4
- package/dist/http.js.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/auth-context.d.ts +2 -1
- package/dist/lib/auth-context.js.map +1 -1
- package/dist/lib/gitlab-client.d.ts +42 -8
- package/dist/lib/gitlab-client.js +380 -42
- package/dist/lib/gitlab-client.js.map +1 -1
- package/dist/lib/network.js +12 -6
- package/dist/lib/network.js.map +1 -1
- package/dist/lib/oauth-scopes.d.ts +2 -0
- package/dist/lib/oauth-scopes.js +16 -0
- package/dist/lib/oauth-scopes.js.map +1 -0
- package/dist/lib/policy.d.ts +5 -1
- package/dist/lib/policy.js +11 -1
- package/dist/lib/policy.js.map +1 -1
- package/dist/lib/regex.d.ts +5 -0
- package/dist/lib/regex.js +111 -0
- package/dist/lib/regex.js.map +1 -0
- package/dist/lib/request-runtime.js +24 -11
- package/dist/lib/request-runtime.js.map +1 -1
- package/dist/lib/tool-capabilities.d.ts +3 -0
- package/dist/lib/tool-capabilities.js +3 -0
- package/dist/lib/tool-capabilities.js.map +1 -0
- package/dist/lib/tool-schema.d.ts +14 -0
- package/dist/lib/tool-schema.js +52 -0
- package/dist/lib/tool-schema.js.map +1 -0
- package/dist/tools/gitlab.js +496 -299
- package/dist/tools/gitlab.js.map +1 -1
- package/dist/tools/mr-code-context.d.ts +1 -1
- package/dist/tools/mr-code-context.js +2 -1
- package/dist/tools/mr-code-context.js.map +1 -1
- package/dist/types/auth.d.ts +1 -0
- package/dist/types/auth.js +2 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/context.d.ts +1 -0
- package/docs/architecture.md +7 -6
- package/docs/authentication.md +4 -1
- package/docs/configuration.md +25 -22
- package/docs/deployment.md +9 -1
- package/docs/mcp-integration-testing-best-practices.md +381 -730
- package/docs/tools.md +76 -66
- package/package.json +1 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare function nullableOptional<T extends z.ZodTypeAny>(schema: T): z.ZodOptional<z.ZodNullable<T>>;
|
|
3
|
+
export declare const projectIdSchema: z.ZodString;
|
|
4
|
+
export declare const optionalProjectIdSchema: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5
|
+
export declare const refLikeSchema: z.ZodString;
|
|
6
|
+
export declare const optionalRefLikeSchema: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
7
|
+
export declare const slugSchema: z.ZodString;
|
|
8
|
+
export declare const optionalSlugSchema: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
9
|
+
export declare const displayNameSchema: z.ZodString;
|
|
10
|
+
export declare const optionalDisplayNameSchema: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11
|
+
export declare const bodySchema: z.ZodString;
|
|
12
|
+
export declare const optionalBodySchema: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13
|
+
export declare const urlOrPathSchema: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
|
|
14
|
+
export declare const optionalUrlOrPathSchema: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const NO_ASCII_CONTROL_CHARS = new RegExp(String.raw `^[^\u0000-\u001F\u007F]+$`, "u");
|
|
3
|
+
const NO_NULL_BYTES = new RegExp(String.raw `^[^\u0000]*$`, "u");
|
|
4
|
+
const REF_LIKE_PATTERN = new RegExp(String.raw `^(?!/)(?!.*//)(?!.*(?:^|/)\.)(?!.*/$)(?!.*\.$)(?!.*\.lock$)(?!.*(?:\.\.|@\{))[^\u0000-\u001F\u007F ~^:?*\[\\]+$`, "u");
|
|
5
|
+
const SLUG_PATTERN = new RegExp(String.raw `^(?!/)(?!.*//)(?!.*(?:^|/)\.\.?(?:/|$))(?!.*[?#])[^\u0000-\u001F\u007F]+$`, "u");
|
|
6
|
+
const PATH_LIKE_PATTERN = new RegExp(String.raw `^(?![A-Za-z][A-Za-z0-9+.-]*:)(?!//)[^\u0000-\u001F\u007F]+$`, "u");
|
|
7
|
+
export function nullableOptional(schema) {
|
|
8
|
+
return schema.nullable().optional();
|
|
9
|
+
}
|
|
10
|
+
export const projectIdSchema = z
|
|
11
|
+
.string()
|
|
12
|
+
.min(1)
|
|
13
|
+
.max(1024)
|
|
14
|
+
.regex(NO_ASCII_CONTROL_CHARS, "project_id must not contain ASCII control characters");
|
|
15
|
+
export const optionalProjectIdSchema = nullableOptional(projectIdSchema);
|
|
16
|
+
export const refLikeSchema = z
|
|
17
|
+
.string()
|
|
18
|
+
.min(1)
|
|
19
|
+
.max(255)
|
|
20
|
+
.regex(REF_LIKE_PATTERN, "must be a valid Git ref-like name");
|
|
21
|
+
export const optionalRefLikeSchema = nullableOptional(refLikeSchema);
|
|
22
|
+
export const slugSchema = z
|
|
23
|
+
.string()
|
|
24
|
+
.min(1)
|
|
25
|
+
.max(512)
|
|
26
|
+
.regex(SLUG_PATTERN, "slug must be a path-like value without control characters, dot segments, ?, or #");
|
|
27
|
+
export const optionalSlugSchema = nullableOptional(slugSchema);
|
|
28
|
+
export const displayNameSchema = z
|
|
29
|
+
.string()
|
|
30
|
+
.min(1)
|
|
31
|
+
.max(255)
|
|
32
|
+
.regex(NO_ASCII_CONTROL_CHARS, "must not contain ASCII control characters");
|
|
33
|
+
export const optionalDisplayNameSchema = nullableOptional(displayNameSchema);
|
|
34
|
+
export const bodySchema = z
|
|
35
|
+
.string()
|
|
36
|
+
.min(1)
|
|
37
|
+
.max(1_000_000)
|
|
38
|
+
.regex(NO_NULL_BYTES, "body must not contain null bytes");
|
|
39
|
+
export const optionalBodySchema = nullableOptional(bodySchema);
|
|
40
|
+
const absoluteHttpUrlSchema = z
|
|
41
|
+
.string()
|
|
42
|
+
.url()
|
|
43
|
+
.max(4096)
|
|
44
|
+
.regex(/^https?:\/\//u, "url_or_path must use http or https when an absolute URL is provided");
|
|
45
|
+
const pathLikeSchema = z
|
|
46
|
+
.string()
|
|
47
|
+
.min(1)
|
|
48
|
+
.max(4096)
|
|
49
|
+
.regex(PATH_LIKE_PATTERN, "url_or_path must be a relative path or an absolute http(s) URL");
|
|
50
|
+
export const urlOrPathSchema = z.union([absoluteHttpUrlSchema, pathLikeSchema]);
|
|
51
|
+
export const optionalUrlOrPathSchema = nullableOptional(urlOrPathSchema);
|
|
52
|
+
//# sourceMappingURL=tool-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-schema.js","sourceRoot":"","sources":["../../src/lib/tool-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,2BAA2B,EAAE,GAAG,CAAC,CAAC;AACtF,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,cAAc,EAAE,GAAG,CAAC,CAAC;AAChE,MAAM,gBAAgB,GAAG,IAAI,MAAM,CACjC,MAAM,CAAC,GAAG,CAAA,iHAAiH,EAC3H,GAAG,CACJ,CAAC;AACF,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,MAAM,CAAC,GAAG,CAAA,2EAA2E,EACrF,GAAG,CACJ,CAAC;AACF,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAClC,MAAM,CAAC,GAAG,CAAA,6DAA6D,EACvE,GAAG,CACJ,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAyB,MAAS;IAChE,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,IAAI,CAAC;KACT,KAAK,CAAC,sBAAsB,EAAE,sDAAsD,CAAC,CAAC;AAEzF,MAAM,CAAC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,gBAAgB,EAAE,mCAAmC,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CACJ,YAAY,EACZ,kFAAkF,CACnF,CAAC;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,sBAAsB,EAAE,2CAA2C,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,SAAS,CAAC;KACd,KAAK,CAAC,aAAa,EAAE,kCAAkC,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAE/D,MAAM,qBAAqB,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,GAAG,EAAE;KACL,GAAG,CAAC,IAAI,CAAC;KACT,KAAK,CAAC,eAAe,EAAE,qEAAqE,CAAC,CAAC;AAEjG,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,IAAI,CAAC;KACT,KAAK,CAAC,iBAAiB,EAAE,gEAAgE,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC"}
|