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

91 lines (90 loc) 3.93 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.listIssues = listIssues; exports.getIssue = getIssue; exports.createIssue = createIssue; exports.updateIssue = updateIssue; exports.listIssueComments = listIssueComments; exports.createIssueComment = createIssueComment; exports.updateIssueComment = updateIssueComment; exports.listIssueLabels = listIssueLabels; exports.addIssueLabels = addIssueLabels; exports.setIssueLabels = setIssueLabels; exports.deleteIssueLabels = deleteIssueLabels; exports.deleteIssueLabel = deleteIssueLabel; const client_js_1 = __importDefault(require("./client.js")); async function listIssues(repo, params) { const cnbInst = client_js_1.default.getInstance(); const url = new URL(`/${repo}/-/issues`, cnbInst.baseUrl); if (params) { for (const [key, value] of Object.entries(params)) { if (value === undefined) continue; url.searchParams.set(key, value.toString()); } } return cnbInst.request('GET', `${url.pathname}${url.search}`); } async function getIssue(repo, issueId) { return client_js_1.default.getInstance().request('GET', `/${repo}/-/issues/${issueId}`); } async function createIssue(repo, params) { const newParams = Object.entries(params).reduce((acc, [key, value]) => { if (value === undefined) return acc; Object.assign(acc, { [key]: value }); return acc; }, {}); return client_js_1.default.getInstance().request('POST', `/${repo}/-/issues`, newParams, { header: { 'Content-Type': 'application/json' } }); } async function updateIssue(repo, issueId, params) { return client_js_1.default.getInstance().request('PATCH', `/${repo}/-/issues/${issueId}`, params, { header: { 'Content-Type': 'application/json' } }); } async function listIssueComments(repo, issueId, params) { const cnbInst = client_js_1.default.getInstance(); const url = new URL(`/${repo}/-/issues/${issueId}/comments`, cnbInst.baseUrl); if (params) { for (const [key, value] of Object.entries(params)) { if (value === undefined) continue; url.searchParams.set(key, value.toString()); } } return cnbInst.request('GET', `${url.pathname}${url.search}`); } async function createIssueComment(repo, issueId, params) { return client_js_1.default.getInstance().request('POST', `/${repo}/-/issues/${issueId}/comments`, params, { header: { 'Content-Type': 'application/json' } }); } async function updateIssueComment(repo, issueId, commentId, params) { return client_js_1.default.getInstance().request('PATCH', `/${repo}/-/issues/${issueId}/comments/${commentId}`, params, { header: { 'Content-Type': 'application/json' } }); } async function listIssueLabels(repo, issueId) { return client_js_1.default.getInstance().request('GET', `/${repo}/-/issues/${issueId}/labels`); } async function addIssueLabels(repo, issueId, labels) { return client_js_1.default.getInstance().request('POST', `/${repo}/-/issues/${issueId}/labels`, { labels }, { header: { 'Content-Type': 'application/json' } }); } async function setIssueLabels(repo, issueId, labels) { return client_js_1.default.getInstance().request('PUT', `/${repo}/-/issues/${issueId}/labels`, { labels }, { header: { 'Content-Type': 'application/json' } }); } async function deleteIssueLabels(repo, issueId) { await client_js_1.default.getInstance().request('DELETE', `/${repo}/-/issues/${issueId}/labels`); } async function deleteIssueLabel(repo, issueId, labelName) { await client_js_1.default.getInstance().request('DELETE', `/${repo}/-/issues/${issueId}/labels/${encodeURIComponent(labelName)}`); }