mergify-config について
mergify-configは、Mergifyのルールを管理する開発者向けのCLIスキルです。公式JSON Schemaによる設定検証と、ローカル設定を使ったプルリクエスト上の動作シミュレーションを行います。
主な機能
- 01JSON Schemaによる設定検証
- 02プルリクエスト上の動作をシミュレート
- 03標準の場所から設定ファイルを検出
- 04--config-fileでファイルを指定
活用シーン
- 01CIで設定をチェック
- 02コミット前にルール変更をテスト
- 03GitHubのプルリクエストで想定動作を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mergifyio/ mergify-cli --skill mergify-configインストール後、Claude Code で/mergify-configを入力して読み込まれたか確認します。
詳細
Mergify 設定管理
概要
mergify config コマンドグループは、Mergify 設定ファイルを公式スキーマに対して検証するためのツールと、ローカル設定ファイルを使用して特定のプルリクエストに対して Mergify が何を行うかをシミュレートするためのツールを提供します。
コマンド
mergify config validate # Validate the configuration file
mergify config simulate PULL_REQUEST_URL # Simulate actions on a PR
設定ファイルの検出
Mergify CLI は標準的な場所から設定ファイルを自動検出します。順序は次のとおりで、最初に存在したものが優先されます。
.mergify.yml、次に.mergify.yaml.mergify/config.yml、次に.mergify/config.yaml.github/mergify.yml、次に.github/mergify.yaml
各場所で両方の拡張子が読み取られ、1 つの場所に両方が存在する場合は .yml が優先されます。複数の設定ファイルを持つリポジトリでは、使用中のファイルと無視されたファイルの名前が stderr に警告として出力されます。エンジンも同じ順序を適用するため、CLI は本番環境が読み取るものをそのまま読み取ります。
--config-file / -f で上書きできます:
mergify config -f path/to/config.yml validate
設定の検証 (validate)
https://docs.mergify.com/mergify-configuration-schema.json から取得した公式 JSON スキーマに対して Mergify 設定ファイルを検証します。
# Validate auto-detected config file
mergify config validate
# Validate a specific file
mergify config -f .mergify.yml validate
出力:
- 有効な場合: 成功メッセージを出力し、コード 0 で終了します
- 無効な場合: エラーの数と各エラーのパスおよびメッセージを出力し、コード 1 で終了します
CI での使用:
- name: Validate Mergify config
run: mergify config validate
アクションのシミュレート (simulate)
ローカル設定ファイルを使用して、特定のプルリクエストに対して Mergify が何を行うかをシミュレートします。これにより、設定変更をコミットする前にテストできます。
mergify config simulate https://github.com/owner/repo/pull/123
必須引数:
PULL_REQUEST_URL-- シミュレート対象のプルリクエストの完全な GitHub URL
オプション:
--token/-t(env:MERGIFY_TOKEN) -- Mergify の資格情報。mergify auth loginが保存した資格情報にフォールバックし、次にGITHUB_TOKEN/gh auth tokenにフォールバックしますが、後者は Mergify API では非推奨です。--api-url/-u(env:MERGIFY_API_URL) -- Mergify API URL (デフォルト:https://api.mergify.com)
出力: ローカル設定で Mergify がその PR に対して実行するアクションのタイトルと詳細な Markdown サマリーを表示します。
設定の作成と編集
ユーザーが Mergify 設定ファイルの作成、編集、または理解を支援する際は、必ず最初に関連するドキュメントページを取得してください。記憶している知識に頼らないでください。設定形式、利用可能なアクション、条件の構文は時間とともに進化します。
ドキュメントインデックス
https://docs.mergify.com/llms.txt を取得すると、利用可能なすべてのページとその説明を含む完全なドキュメントインデックスが得られます。
主要なリファレンスページ
設定を書く前に、ユーザーのリクエストに関連するページを取得してください。
| トピック | URL |
|---|---|
| ファイル形式と構造 | https://docs.mergify.com/configuration/file-format |
| 条件の構文と属性 | https://docs.mergify.com/configuration/conditions |
| データ型(duration、テンプレート) | https://docs.mergify.com/configuration/data-types |
| 設定の共有と再利用 | https://docs.mergify.com/configuration/sharing |
| ワークフロー自動化の概要 | https://docs.mergify.com/workflow |
| 利用可能なすべてのアクション | https://docs.mergify.com/workflow/actions |
| 最初のルールを書く | https://docs.mergify.com/workflow/writing-your-first-rule |
| マージキューのルール | https://docs.mergify.com/merge-queue/rules |
| マージキューのセットアップ | https://docs.mergify.com/merge-queue/setup |
| キューの優先度ルール | https://docs.mergify.com/merge-queue/priority |
| マージ保護 | https://docs.mergify.com/merge-protections/setup |
| カスタム保護ルール | https://docs.mergify.com/merge-protections/custom-rules |
| マージ保護の例 | https://docs.mergify.com/merge-protections/examples |
| コマンドと制限 | https://docs.mergify.com/commands |
| JSON Schema | https://docs.mergify.com/mergify-configuration-schema.json |
個々のアクション(assign、backport、close、comment、copy、dismiss_reviews、
edit、github_actions、label、merge、queue、rebase、request_reviews、review、
squash、update)については、
https://docs.mergify.com/workflow/actions/<action_name> で特定のアクションページを取得してください。
ワークフロー
- ユーザーの既存の設定を読む(存在する場合)。現在の状態を把握します
- 関連するドキュメントページを取得する。ユーザーが必要とする機能について調べます
- 設定を書く、または更新する。ドキュメントに基づいて行います
- 検証する:
mergify config validateを実行してエラーをチェックします - シミュレートする(任意): 実際の PR に対して
mergify config simulate <PR_URL>を実行し、 ルールが期待どおりに動作することを確認します
一般的なパターン
プッシュ前に設定の変更をテストする
# 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 検証ゲート
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