UNPKG

@cnbcool/mcp-server

Version:

CNB MCP Server. A comprehensive MCP server that provides seamless integration to the CNB's API(https://cnb.cool), offering a wide range of tools for repository management, pipelines operations and collaboration features

49 lines (48 loc) 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.listRepositories = listRepositories; exports.listGroupRepositories = listGroupRepositories; exports.getRepository = getRepository; exports.createRepository = createRepository; async function listRepositories(client, params) { const url = new URL('/user/repos', client.baseUrl); if (params) { for (const [key, value] of Object.entries(params)) { if (value === undefined) continue; url.searchParams.set(key, value.toString()); } } return client.request('GET', `${url.pathname}${url.search}`); } async function listGroupRepositories(client, group, params) { const url = new URL(`/${group}/-/repos`, client.baseUrl); if (params) { for (const [key, value] of Object.entries(params)) { if (value === undefined) continue; url.searchParams.set(key, value.toString()); } } return client.request('GET', `${url.pathname}${url.search}`); } async function getRepository(client, repo) { return client.request('GET', `/${repo}`); } async function createRepository(client, group, params) { const body = Object.entries(params).reduce((acc, [key, value]) => { if (value === undefined) return acc; Object.assign(acc, { [key]: value }); return acc; }, {}); const response = await client.request('POST', `/${group}/-/repos`, body, { header: { 'Content-Type': 'application/json' } }, 'raw'); if (response.status === 201) { return { message: 'Created' }; } else { return { status: response.status, message: response.statusText }; } }