Skip to main content
Glama

gitea_compliance_init

Initialize a Gitea compliance configuration file with default rules to enforce repository standards and policies.

Instructions

Initialize compliance configuration file (.gitea/compliance.yaml) with default rules.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
forceNoForce overwrite existing configuration (default: false)
config_pathNoCustom path for config file

Implementation Reference

  • The core handler function `initConfig` that creates the .gitea/compliance.yaml file with default compliance rules for branches, commits, and PRs. Handles force overwrite and directory creation.
    export async function initConfig(params: InitConfigParams): Promise<{ success: boolean; path: string; message: string }> { const configPath = params.config_path || path.join(process.cwd(), '.gitea', 'compliance.yaml'); const configDir = path.dirname(configPath); // 检查文件是否存在 if (fs.existsSync(configPath) && !params.force) { return { success: false, path: configPath, message: `配置文件已存在: ${configPath},使用 --force 覆盖`, }; } // 创建目录 if (!fs.existsSync(configDir)) { fs.mkdirSync(configDir, { recursive: true }); } // 生成配置内容 const configContent = `# Gitea 规范检查配置 # 用于检查分支、提交、PR 是否符合项目规范 # 分支命名规范 branch: patterns: - "^feat/issue-\\\\d+-.*$" # 功能分支: feat/issue-123-add-feature - "^fix/issue-\\\\d+-.*$" # 修复分支: fix/issue-456-fix-bug - "^docs/.*$" # 文档分支: docs/update-readme - "^refactor/.*$" # 重构分支: refactor/improve-performance - "^test/.*$" # 测试分支: test/add-unit-tests - "^chore/.*$" # 杂务分支: chore/update-deps - "^main$" # 主分支 - "^dev$" # 开发分支 - "^release/.*$" # 发布分支: release/v1.0.0 # 提交信息规范 (Conventional Commits) commit: types: - feat # 新功能 - fix # 修复 - docs # 文档 - refactor # 重构 - test # 测试 - chore # 杂务 - style # 格式 - perf # 性能 - ci # CI/CD - build # 构建 - revert # 回滚 scope_required: false # 是否要求 scope max_subject_length: 72 # 主题行最大长度 # PR 格式规范 pr: required_sections: - Summary # 摘要 - Test Plan # 测试计划 require_issue_link: true # 是否要求关联 Issue `; fs.writeFileSync(configPath, configContent, 'utf-8'); return { success: true, path: configPath, message: `配置文件已创建: ${configPath}`, }; }
  • Registers the 'gitea_compliance_init' tool with MCP server, including title, description, input schema, and a thin wrapper handler that calls the core initConfig function.
    mcpServer.registerTool( 'gitea_compliance_init', { title: '初始化规范检查配置', description: 'Initialize compliance configuration file (.gitea/compliance.yaml) with default rules.', inputSchema: z.object({ force: z.boolean().optional().describe('Force overwrite existing configuration (default: false)'), config_path: z.string().optional().describe('Custom path for config file'), }), }, async (args) => { try { const result = await ComplianceTools.initConfig(args as any); return { content: [{ type: 'text' as const, text: JSON.stringify(result, null, 2) }] }; } catch (error: unknown) { const errorMessage = error instanceof Error ? error.message : String(error); return { content: [{ type: 'text' as const, text: `Error: ${errorMessage}` }], isError: true }; } } );
  • TypeScript interface defining the input parameters for the initConfig function, matching the Zod schema in registration.
    export interface InitConfigParams { force?: boolean; config_path?: string; } /** * 初始化规范配置文件 */ export async function initConfig(params: InitConfigParams): Promise<{ success: boolean; path: string; message: string }> { const configPath = params.config_path || path.join(process.cwd(), '.gitea', 'compliance.yaml'); const configDir = path.dirname(configPath); // 检查文件是否存在 if (fs.existsSync(configPath) && !params.force) { return { success: false, path: configPath, message: `配置文件已存在: ${configPath},使用 --force 覆盖`, }; } // 创建目录 if (!fs.existsSync(configDir)) { fs.mkdirSync(configDir, { recursive: true }); } // 生成配置内容 const configContent = `# Gitea 规范检查配置 # 用于检查分支、提交、PR 是否符合项目规范 # 分支命名规范 branch: patterns: - "^feat/issue-\\\\d+-.*$" # 功能分支: feat/issue-123-add-feature - "^fix/issue-\\\\d+-.*$" # 修复分支: fix/issue-456-fix-bug - "^docs/.*$" # 文档分支: docs/update-readme - "^refactor/.*$" # 重构分支: refactor/improve-performance - "^test/.*$" # 测试分支: test/add-unit-tests - "^chore/.*$" # 杂务分支: chore/update-deps - "^main$" # 主分支 - "^dev$" # 开发分支 - "^release/.*$" # 发布分支: release/v1.0.0 # 提交信息规范 (Conventional Commits) commit: types: - feat # 新功能 - fix # 修复 - docs # 文档 - refactor # 重构 - test # 测试 - chore # 杂务 - style # 格式 - perf # 性能 - ci # CI/CD - build # 构建 - revert # 回滚 scope_required: false # 是否要求 scope max_subject_length: 72 # 主题行最大长度 # PR 格式规范 pr: required_sections: - Summary # 摘要 - Test Plan # 测试计划 require_issue_link: true # 是否要求关联 Issue `; fs.writeFileSync(configPath, configContent, 'utf-8'); return { success: true, path: configPath, message: `配置文件已创建: ${configPath}`, }; }
  • Default compliance configuration used by initConfig to populate the YAML file with branch patterns, commit types, and PR requirements.
    const DEFAULT_CONFIG: ComplianceConfig = { branch: { patterns: [ '^feat/issue-\\d+-.*$', '^fix/issue-\\d+-.*$', '^docs/.*$', '^refactor/.*$', '^test/.*$', '^chore/.*$', '^main$', '^dev$', '^release/.*$', ], }, commit: { types: ['feat', 'fix', 'docs', 'refactor', 'test', 'chore', 'style', 'perf', 'ci', 'build', 'revert'], scope_required: false, max_subject_length: 72, }, pr: { required_sections: ['Summary', 'Test Plan'], require_issue_link: true, }, };

Latest Blog Posts

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/SupenBysz/gitea-mcp-tool'

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