@structured-world/gitlab-mcp 6.16.0 → 6.17.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 +49 -0
- package/dist/src/cli-utils.d.ts +4 -0
- package/dist/src/cli-utils.js +26 -0
- package/dist/src/cli-utils.js.map +1 -1
- package/dist/src/discovery/auto.d.ts +22 -0
- package/dist/src/discovery/auto.js +170 -0
- package/dist/src/discovery/auto.js.map +1 -0
- package/dist/src/discovery/git-remote.d.ts +19 -0
- package/dist/src/discovery/git-remote.js +197 -0
- package/dist/src/discovery/git-remote.js.map +1 -0
- package/dist/src/discovery/index.d.ts +3 -0
- package/dist/src/discovery/index.js +16 -0
- package/dist/src/discovery/index.js.map +1 -0
- package/dist/src/discovery/profile-matcher.d.ts +8 -0
- package/dist/src/discovery/profile-matcher.js +40 -0
- package/dist/src/discovery/profile-matcher.js.map +1 -0
- package/dist/src/main.js +93 -11
- package/dist/src/main.js.map +1 -1
- package/dist/src/utils/namespace.d.ts +1 -0
- package/dist/src/utils/namespace.js +11 -0
- package/dist/src/utils/namespace.js.map +1 -1
- package/dist/structured-world-gitlab-mcp-6.17.0.tgz +0 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/structured-world-gitlab-mcp-6.16.0.tgz +0 -0
package/dist/src/main.js
CHANGED
|
@@ -5,6 +5,8 @@ const server_1 = require("./server");
|
|
|
5
5
|
const logger_1 = require("./logger");
|
|
6
6
|
const profiles_1 = require("./profiles");
|
|
7
7
|
const cli_utils_1 = require("./cli-utils");
|
|
8
|
+
const discovery_1 = require("./discovery");
|
|
9
|
+
const namespace_1 = require("./utils/namespace");
|
|
8
10
|
async function main() {
|
|
9
11
|
const cliArgs = (0, cli_utils_1.parseCliArgs)();
|
|
10
12
|
if (cliArgs.showProjectConfig) {
|
|
@@ -19,21 +21,90 @@ async function main() {
|
|
|
19
21
|
process.exit(1);
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
let autoDiscoveryResult = null;
|
|
25
|
+
if (cliArgs.auto) {
|
|
26
|
+
try {
|
|
27
|
+
autoDiscoveryResult = await (0, discovery_1.autoDiscover)({
|
|
28
|
+
repoPath: cliArgs.cwd,
|
|
29
|
+
remoteName: cliArgs.remoteName,
|
|
30
|
+
noProjectConfig: true,
|
|
31
|
+
dryRun: cliArgs.dryRun,
|
|
32
|
+
});
|
|
33
|
+
if (autoDiscoveryResult) {
|
|
34
|
+
if (cliArgs.dryRun) {
|
|
35
|
+
console.log((0, discovery_1.formatDiscoveryResult)(autoDiscoveryResult));
|
|
36
|
+
process.exit(0);
|
|
37
|
+
}
|
|
38
|
+
logger_1.logger.info({
|
|
39
|
+
host: autoDiscoveryResult.host,
|
|
40
|
+
project: autoDiscoveryResult.projectPath,
|
|
41
|
+
profile: autoDiscoveryResult.matchedProfile?.profileName,
|
|
42
|
+
}, "Auto-discovery detected GitLab configuration");
|
|
27
43
|
}
|
|
28
44
|
else {
|
|
29
|
-
logger_1.logger.
|
|
45
|
+
logger_1.logger.warn("Auto-discovery failed: not in a git repository or no remote found");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
50
|
+
logger_1.logger.error({ error: message }, "Auto-discovery failed");
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (cliArgs.profileName) {
|
|
55
|
+
try {
|
|
56
|
+
const result = await (0, profiles_1.tryApplyProfileFromEnv)(cliArgs.profileName);
|
|
57
|
+
if (result) {
|
|
58
|
+
if ("profileName" in result) {
|
|
59
|
+
logger_1.logger.info({ profile: result.profileName, host: result.host }, "Using CLI-specified profile");
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
logger_1.logger.info({ preset: result.presetName }, "Using CLI-specified preset");
|
|
63
|
+
}
|
|
64
|
+
if (autoDiscoveryResult?.matchedProfile &&
|
|
65
|
+
autoDiscoveryResult.matchedProfile.profileName !== cliArgs.profileName) {
|
|
66
|
+
logger_1.logger.warn({
|
|
67
|
+
cliProfile: cliArgs.profileName,
|
|
68
|
+
autoProfile: autoDiscoveryResult.matchedProfile.profileName,
|
|
69
|
+
}, "Auto-discovered profile ignored: --profile takes precedence");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
75
|
+
logger_1.logger.error({ error: message }, "Failed to load profile");
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else if (autoDiscoveryResult?.matchedProfile) {
|
|
80
|
+
try {
|
|
81
|
+
const result = await (0, profiles_1.tryApplyProfileFromEnv)(autoDiscoveryResult.matchedProfile.profileName);
|
|
82
|
+
if (result && "profileName" in result) {
|
|
83
|
+
logger_1.logger.info({ profile: result.profileName, host: result.host }, "Using auto-discovered profile");
|
|
30
84
|
}
|
|
31
85
|
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
88
|
+
logger_1.logger.warn({ error: message }, "Failed to apply auto-discovered profile");
|
|
89
|
+
}
|
|
32
90
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
91
|
+
else {
|
|
92
|
+
try {
|
|
93
|
+
const result = await (0, profiles_1.tryApplyProfileFromEnv)();
|
|
94
|
+
if (result) {
|
|
95
|
+
if ("profileName" in result) {
|
|
96
|
+
logger_1.logger.info({ profile: result.profileName, host: result.host }, "Using configuration profile");
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
logger_1.logger.info({ preset: result.presetName }, "Using configuration preset");
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
105
|
+
logger_1.logger.error({ error: message }, "Failed to load profile");
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
37
108
|
}
|
|
38
109
|
if (!cliArgs.noProjectConfig) {
|
|
39
110
|
try {
|
|
@@ -44,7 +115,7 @@ async function main() {
|
|
|
44
115
|
path: projectConfig.configPath,
|
|
45
116
|
preset: summary.presetSummary,
|
|
46
117
|
profile: summary.profileSummary,
|
|
47
|
-
}, "Loaded project configuration");
|
|
118
|
+
}, "Loaded project configuration (restrictions applied)");
|
|
48
119
|
}
|
|
49
120
|
}
|
|
50
121
|
catch (error) {
|
|
@@ -52,6 +123,17 @@ async function main() {
|
|
|
52
123
|
logger_1.logger.warn({ error: message }, "Failed to load project config, continuing without it");
|
|
53
124
|
}
|
|
54
125
|
}
|
|
126
|
+
if (autoDiscoveryResult) {
|
|
127
|
+
process.env.GITLAB_DEFAULT_PROJECT ??= autoDiscoveryResult.projectPath;
|
|
128
|
+
const namespace = (0, namespace_1.extractNamespaceFromPath)(autoDiscoveryResult.projectPath);
|
|
129
|
+
if (namespace) {
|
|
130
|
+
process.env.GITLAB_DEFAULT_NAMESPACE ??= namespace;
|
|
131
|
+
}
|
|
132
|
+
logger_1.logger.debug({
|
|
133
|
+
defaultProject: process.env.GITLAB_DEFAULT_PROJECT,
|
|
134
|
+
defaultNamespace: process.env.GITLAB_DEFAULT_NAMESPACE,
|
|
135
|
+
}, "Default context set from auto-discovery");
|
|
136
|
+
}
|
|
55
137
|
await (0, server_1.startServer)();
|
|
56
138
|
}
|
|
57
139
|
main().catch((error) => {
|
package/dist/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;;AAEA,qCAAuC;AACvC,qCAAkC;AAClC,yCAAgG;AAChG,2CAAiE;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare function extractNamespaceFromPath(projectPath: string): string | undefined;
|
|
1
2
|
export declare function isLikelyProjectPath(namespacePath: string): boolean;
|
|
2
3
|
export declare function detectNamespaceType(namespacePath: string): Promise<"project" | "group">;
|
|
3
4
|
export declare function resolveNamespaceForAPI(namespacePath: string): Promise<{
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractNamespaceFromPath = extractNamespaceFromPath;
|
|
3
4
|
exports.isLikelyProjectPath = isLikelyProjectPath;
|
|
4
5
|
exports.detectNamespaceType = detectNamespaceType;
|
|
5
6
|
exports.resolveNamespaceForAPI = resolveNamespaceForAPI;
|
|
6
7
|
const fetch_1 = require("./fetch");
|
|
8
|
+
function extractNamespaceFromPath(projectPath) {
|
|
9
|
+
if (!projectPath) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const pathParts = projectPath.split("/");
|
|
13
|
+
if (pathParts.length === 1) {
|
|
14
|
+
return projectPath;
|
|
15
|
+
}
|
|
16
|
+
return pathParts.slice(0, -1).join("/");
|
|
17
|
+
}
|
|
7
18
|
function isLikelyProjectPath(namespacePath) {
|
|
8
19
|
return namespacePath.includes("/");
|
|
9
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/utils/namespace.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/utils/namespace.ts"],"names":[],"mappings":";;AAcA,4DAcC;AAMD,kDAEC;AAMD,kDAuBC;AA0BD,wDASC;AApGD,mCAAwC;AAcxC,SAAgB,wBAAwB,CAAC,WAAmB;IAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAGzC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,WAAW,CAAC;IACrB,CAAC;IAGD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAMD,SAAgB,mBAAmB,CAAC,aAAqB;IACvD,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAMM,KAAK,UAAU,mBAAmB,CAAC,aAAqB;IAE7D,IAAI,mBAAmB,CAAC,aAAa,CAAC,EAAE,CAAC;QAEvC,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACtE,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;QAEhC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAG5B,OAAO,SAAS,CAAC;IACnB,CAAC;SAAM,CAAC;QAEN,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACtE,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;QAGhC,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,mBAAmB,CAChC,aAAqB,EACrB,IAAyB;IAEzB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,UAAU,IAAI,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC;QAEzG,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAa,EAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QAEP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAMM,KAAK,UAAU,sBAAsB,CAAC,aAAqB;IAIhE,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC/D,OAAO;QACL,UAAU,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;QAC/D,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
Binary file
|