Add enhanced debugging to createNote function

This commit is contained in:
Admin
2025-03-17 14:26:26 -07:00
parent 4740a4b4f7
commit 696a6dd102
2 changed files with 56 additions and 22 deletions

View File

@ -346,20 +346,32 @@ async function createNote(projectId, noteableType, // 'issue' 또는 'merge_requ
noteableIid, body) { noteableIid, body) {
// ⚙️ 응답 타입은 GitLab API 문서에 따라 조정 가능 // ⚙️ 응답 타입은 GitLab API 문서에 따라 조정 가능
// Don't add /api/v4 again since it's already included in GITLAB_API_URL // Don't add /api/v4 again since it's already included in GITLAB_API_URL
console.error("DEBUG - createNote - GITLAB_API_URL from env: " + process.env.GITLAB_API_URL);
console.error("DEBUG - createNote - GITLAB_API_URL in code: " + GITLAB_API_URL);
const url = new URL(`${GITLAB_API_URL}/projects/${encodeURIComponent(projectId)}/${noteableType}s/${noteableIid}/notes` // Using plural form (issues/merge_requests) as per GitLab API documentation const url = new URL(`${GITLAB_API_URL}/projects/${encodeURIComponent(projectId)}/${noteableType}s/${noteableIid}/notes` // Using plural form (issues/merge_requests) as per GitLab API documentation
); );
// Add some debug logging // Add some debug logging
console.log(`DEBUG - createNote function called`); console.error("DEBUG - createNote function called");
console.log(`DEBUG - createNote - URL: ${url.toString()}`); console.error(`DEBUG - createNote - URL: ${url.toString()}`);
console.log(`DEBUG - createNote - projectId: ${projectId}, noteableType: ${noteableType}, noteableIid: ${noteableIid}`); console.error(`DEBUG - createNote - projectId: ${projectId}, noteableType: ${noteableType}, noteableIid: ${noteableIid}`);
console.log(`DEBUG - createNote - GITLAB_API_URL: ${GITLAB_API_URL}`); try {
const response = await fetch(url.toString(), { const response = await fetch(url.toString(), {
method: "POST", method: "POST",
headers: DEFAULT_HEADERS, headers: DEFAULT_HEADERS,
body: JSON.stringify({ body }), body: JSON.stringify({ body }),
}); });
await handleGitLabError(response); if (!response.ok) {
return await response.json(); // ⚙️ 응답 타입은 GitLab API 문서에 따라 조정 가능, 필요하면 스키마 정의 const errorText = await response.text();
console.error(`DEBUG - createNote - Error response: ${response.status} ${response.statusText}`);
console.error(`DEBUG - createNote - Error body: ${errorText}`);
throw new Error(`GitLab API error: ${response.status} ${response.statusText}\n${errorText}`);
}
return await response.json();
}
catch (error) {
console.error(`DEBUG - createNote - Exception: ${error instanceof Error ? error.message : String(error)}`);
throw error;
}
} }
server.setRequestHandler(ListToolsRequestSchema, async () => { server.setRequestHandler(ListToolsRequestSchema, async () => {
return { return {
@ -586,6 +598,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
} }
}); });
async function runServer() { async function runServer() {
console.error("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
console.error("!!! RUNNING VERSION 1.0.7-fix WITH URL DEBUGGING FIX !!!");
console.error("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
const transport = new StdioServerTransport(); const transport = new StdioServerTransport();
await server.connect(transport); await server.connect(transport);
console.error("GitLab MCP Server running on stdio"); console.error("GitLab MCP Server running on stdio");

View File

@ -583,6 +583,9 @@ async function createNote(
): Promise<any> { ): Promise<any> {
// ⚙️ 응답 타입은 GitLab API 문서에 따라 조정 가능 // ⚙️ 응답 타입은 GitLab API 문서에 따라 조정 가능
// Don't add /api/v4 again since it's already included in GITLAB_API_URL // Don't add /api/v4 again since it's already included in GITLAB_API_URL
console.error("DEBUG - createNote - GITLAB_API_URL from env: " + process.env.GITLAB_API_URL);
console.error("DEBUG - createNote - GITLAB_API_URL in code: " + GITLAB_API_URL);
const url = new URL( const url = new URL(
`${GITLAB_API_URL}/projects/${encodeURIComponent( `${GITLAB_API_URL}/projects/${encodeURIComponent(
projectId projectId
@ -590,19 +593,31 @@ async function createNote(
); );
// Add some debug logging // Add some debug logging
console.log(`DEBUG - createNote function called`); console.error("DEBUG - createNote function called");
console.log(`DEBUG - createNote - URL: ${url.toString()}`); console.error(`DEBUG - createNote - URL: ${url.toString()}`);
console.log(`DEBUG - createNote - projectId: ${projectId}, noteableType: ${noteableType}, noteableIid: ${noteableIid}`); console.error(`DEBUG - createNote - projectId: ${projectId}, noteableType: ${noteableType}, noteableIid: ${noteableIid}`);
console.log(`DEBUG - createNote - GITLAB_API_URL: ${GITLAB_API_URL}`);
const response = await fetch(url.toString(), { try {
method: "POST", const response = await fetch(url.toString(), {
headers: DEFAULT_HEADERS, method: "POST",
body: JSON.stringify({ body }), headers: DEFAULT_HEADERS,
}); body: JSON.stringify({ body }),
});
await handleGitLabError(response); if (!response.ok) {
return await response.json(); // ⚙️ 응답 타입은 GitLab API 문서에 따라 조정 가능, 필요하면 스키마 정의 const errorText = await response.text();
console.error(`DEBUG - createNote - Error response: ${response.status} ${response.statusText}`);
console.error(`DEBUG - createNote - Error body: ${errorText}`);
throw new Error(
`GitLab API error: ${response.status} ${response.statusText}\n${errorText}`
);
}
return await response.json();
} catch (error) {
console.error(`DEBUG - createNote - Exception: ${error instanceof Error ? error.message : String(error)}`);
throw error;
}
} }
server.setRequestHandler(ListToolsRequestSchema, async () => { server.setRequestHandler(ListToolsRequestSchema, async () => {
@ -892,6 +907,10 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
}); });
async function runServer() { async function runServer() {
console.error("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
console.error("!!! RUNNING VERSION 1.0.7-fix WITH URL DEBUGGING FIX !!!");
console.error("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
const transport = new StdioServerTransport(); const transport = new StdioServerTransport();
await server.connect(transport); await server.connect(transport);
console.error("GitLab MCP Server running on stdio"); console.error("GitLab MCP Server running on stdio");