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