Skip to main content
Glama

AtomGit MCP Server

Mulan Permissive Software License, Version 2
1
7
label.ts4.98 kB
import { z } from "zod"; import { atomGitRequest } from "../common/utils.js"; // Label-related Schema definitions export const CreateLabelSchema = z.object({ owner: z.string().describe("Repository owner, typically referred to as 'username'. Case-insensitive."), repo: z.string().describe("Repository name. Case-insensitive."), name: z.string().describe("Label name"), color: z.string().describe("Label color. A 6-character string, e.g: #ED4014"), description: z.string().optional().describe("Label description"), }); export const GetLabelsSchema = z.object({ owner: z.string().describe("Repository owner, typically referred to as 'username'. Case-insensitive."), repo: z.string().describe("Repository name. Case-insensitive."), }); export const CreateIssueLabelsSchema = z.object({ owner: z.string().describe("Repository owner, typically referred to as 'username'. Case-insensitive."), repo: z.string().describe("Repository name. Case-insensitive."), issue_number: z.number().describe("Issue number"), labels: z.array(z.string()).describe("Array of label names"), }); export const GetIssueLabelsSchema = z.object({ owner: z.string().describe("Repository owner, typically referred to as 'username'. Case-insensitive."), repo: z.string().describe("Repository name. Case-insensitive."), issue_number: z.number().describe("Issue number"), }); export const DeleteIssueLabelSchema = z.object({ owner: z.string().describe("Repository owner, typically referred to as 'username'. Case-insensitive."), repo: z.string().describe("Repository name. Case-insensitive."), issue_number: z.number().describe("Issue number"), name: z.string().describe("Label name"), }); export const GetLabelByNameSchema = z.object({ owner: z.string().describe("Repository owner, typically referred to as 'username'. Case-insensitive."), repo: z.string().describe("Repository name. Case-insensitive."), name: z.string().describe("Label name"), }); /** * Create a repository label * @param owner - Repository owner * @param repo - Repository name * @param name - Label name * @param color - Label color, a 6-character string, e.g: #ED4014 * @param description - Label description (optional) */ export async function createLabel( owner: string, repo: string, name: string, color: string, description?: string ) { // ① Create URLSearchParams const params = new URLSearchParams({ name, color, }); if (description) { params.append('description', description); } return atomGitRequest( `https://api.atomgit.com/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/labels`, { method: "POST", body: params.toString(), } ); } /** * Get all labels for a repository * @param owner - Repository owner * @param repo - Repository name */ export async function getLabels( owner: string, repo: string ) { return atomGitRequest( `https://api.atomgit.com/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/labels`, { method: "GET", } ); } /** * Create issue labels * @param owner - Repository owner * @param repo - Repository name * @param issue_number - Issue number * @param labels - Array of label names */ export async function createIssueLabels( owner: string, repo: string, issue_number: number, labels: string[] ) { return atomGitRequest( `https://api.atomgit.com/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/issues/${encodeURIComponent(issue_number)}/labels`, { method: "POST", body: labels, } ); } /** * Get all labels for an issue * @param owner - Repository owner * @param repo - Repository name * @param issue_number - Issue number */ export async function getIssueLabels( owner: string, repo: string, issue_number: number ) { return atomGitRequest( `https://api.atomgit.com/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/issues/${encodeURIComponent(issue_number)}/labels`, { method: "GET", } ); } /** * Delete issue label * @param owner - Repository owner * @param repo - Repository name * @param issue_number - Issue number * @param name - Label name */ export async function deleteIssueLabel( owner: string, repo: string, issue_number: number, name: string ) { return atomGitRequest( `https://api.atomgit.com/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/issues/${encodeURIComponent(issue_number)}/labels/${encodeURIComponent(name)}`, { method: "DELETE", } ); } /** * Get a single label by name * @param owner - Repository owner * @param repo - Repository name * @param name - Label name */ export async function getLabelByName( owner: string, repo: string, name: string ) { return atomGitRequest( `https://api.atomgit.com/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/labels/${encodeURIComponent(name)}`, { method: "GET", } ); }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kaiyuanxiaobing/atomgit-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server