mcpField
M
mergify-config

mergify-config

github.com/mergifyioDevelopment3273 installsUpdated 1d ago
Repository

About mergify-config

mergify-config is a CLI skill for developers maintaining Mergify rules. It validates configuration against the official schema and simulates actions on a pull request using local changes.

Key features

  1. 01Validate configuration against the JSON schema
  2. 02Simulate actions on a pull request
  3. 03Detect configuration files in standard locations
  4. 04Select a file with --config-file

Use cases

  1. 01Check configuration in CI
  2. 02Test rule changes before committing
  3. 03Inspect expected actions for a GitHub pull request

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mergifyio/mergify-cli --skill mergify-config

After installing, type/mergify-configin Claude Code to confirm it loaded.

Details

From the project README

Mergify Configuration Management

Overview

The mergify config command group provides tools for validating Mergify configuration files against the official schema and simulating what Mergify would do on a specific pull request using a local configuration file.

Commands

mergify config validate                              # Validate the configuration file
mergify config simulate PULL_REQUEST_URL             # Simulate actions on a PR

Configuration File Detection

Mergify CLI auto-detects the configuration file from standard locations, in this order — the first one that exists wins:

  • .mergify.yml, then .mergify.yaml
  • .mergify/config.yml, then .mergify/config.yaml
  • .github/mergify.yml, then .github/mergify.yaml

Both extensions are read at every location, and .yml wins when a location carries both. A repository holding more than one configuration file gets a warning on stderr naming the file in use and the ones ignored — the engine applies the same order, so the CLI reads whatever production reads.

Override with --config-file / -f:

mergify config -f path/to/config.yml validate

Validating Configuration (validate)

Validates the Mergify configuration file against the official JSON schema fetched from https://docs.mergify.com/mergify-configuration-schema.json.

# Validate auto-detected config file
mergify config validate

# Validate a specific file
mergify config -f .mergify.yml validate

Output:

  • If valid: prints a success message and exits with code 0
  • If invalid: prints the number of errors and each error's path and message, then exits with code 1

Use in CI:

- name: Validate Mergify config
  run: mergify config validate

Simulating Actions (simulate)

Simulates what Mergify would do on a specific pull request using the local configuration file. This lets you test configuration changes before committing them.

mergify config simulate https://github.com/owner/repo/pull/123

Required arguments:

  • PULL_REQUEST_URL -- Full GitHub URL of the pull request to simulate against

Options:

  • --token / -t (env: MERGIFY_TOKEN) -- Mergify credential. Falls back to the credential mergify auth login stored, then to GITHUB_TOKEN / gh auth token, both deprecated for the Mergify API.
  • --api-url / -u (env: MERGIFY_API_URL) -- Mergify API URL (default: https://api.mergify.com)

Output: Shows a title and detailed Markdown summary of what actions Mergify would take on the PR with the local configuration.

Writing and Editing Configuration

When helping a user write, edit, or understand a Mergify configuration file, always fetch the relevant documentation pages first. Do not rely on memorized knowledge -- the configuration format, available actions, and conditions syntax evolve over time.

Documentation index

Fetch https://docs.mergify.com/llms.txt to get the full documentation index with all available pages and their descriptions.

Key reference pages

Fetch the pages relevant to the user's request before writing any configuration:

TopicURL
File format and structurehttps://docs.mergify.com/configuration/file-format
Conditions syntax and attributeshttps://docs.mergify.com/configuration/conditions
Data types (duration, templates)https://docs.mergify.com/configuration/data-types
Configuration sharing and reusehttps://docs.mergify.com/configuration/sharing
Workflow automation overviewhttps://docs.mergify.com/workflow
All available actionshttps://docs.mergify.com/workflow/actions
Writing your first rulehttps://docs.mergify.com/workflow/writing-your-first-rule
Merge queue ruleshttps://docs.mergify.com/merge-queue/rules
Merge queue setuphttps://docs.mergify.com/merge-queue/setup
Queue priority ruleshttps://docs.mergify.com/merge-queue/priority
Merge protectionshttps://docs.mergify.com/merge-protections/setup
Custom protection ruleshttps://docs.mergify.com/merge-protections/custom-rules
Merge protection exampleshttps://docs.mergify.com/merge-protections/examples
Commands and restrictionshttps://docs.mergify.com/commands
JSON Schemahttps://docs.mergify.com/mergify-configuration-schema.json

For individual actions (assign, backport, close, comment, copy, dismiss_reviews, edit, github_actions, label, merge, queue, rebase, request_reviews, review, squash, update), fetch the specific action page at https://docs.mergify.com/workflow/actions/<action_name>.

Workflow
  1. Read the user's existing config (if any) to understand current state
  2. Fetch the relevant doc pages for the features the user needs
  3. Write or update the configuration based on the documentation
  4. Validate: run mergify config validate to check for errors
  5. Simulate (optional): run mergify config simulate <PR_URL> against a real PR to verify the rules behave as expected

Common Patterns

Test config changes before pushing
# Edit your .mergify.yml locally, then:
mergify config validate
mergify config simulate https://github.com/myorg/myrepo/pull/42
# If both look good, commit and push
CI validation gate
jobs:
  validate-mergify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install mergify-cli
        run: pip install mergify-cli
      - name: Validate Mergify config
        run: mergify config validate

Comments

Markdown supported