> For the complete documentation index, see [llms.txt](https://gitbook.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gitbook.com/docs/documentation/ja-gitbook-documentation/gong-tong-zuo-ye/merge-rules.md).

# マージルール

マージルールを使用すると、変更リクエストをマージする前に満たす必要がある要件を定義できます。たとえば、特定のユーザーによるレビューが必要であったり、変更リクエストに件名または説明が必要だったりします。

これらのルールはコンテンツの品質を維持し、ドキュメントワークフロー全体で適切なレビュー प्रक्रियाを確実にします。

マージルールを設定すると、変更リクエストがマージされる前に自動的に評価されます。ルールが満たされていない場合、要件が満たされるまでマージはブロックされます。

これにより、チームのコラボレーションとレビューの基準を強制する自動化された方法が提供されます。

## マージルールの使用

チームのワークフローに合わせて、さまざまなレベルでマージルールを設定できます：

### 組織レベルの設定

組織は、すべてのセクションが継承する既定のマージルールを設定できます。これにより、必要に応じて各セクションがルールをカスタマイズできる一方で、複数のセクション間で一貫性を保てます。

組織のマージルールを設定するには、組織の **ホーム** に戻って **設定** <picture><source srcset="/files/CG9bVSmdbJnQxrYiNbRI" media="(prefers-color-scheme: dark)"><img src="/files/477fc6b8be7ea4395872753916f62023abc28604" alt=""></picture>の下の **管理** をサイドバーでクリックします。設定画面で、 **マージルール** の下にある **組織** グループをクリックします。ここで、組織全体のマージルールを指定できます。

制限なしのマージを選ぶか、組織全体の変更リクエストに適用するプリセットの一覧から選択します。

### セクションレベルの設定

組織全体のマージルールを有効にしているかどうかにかかわらず、各セクションには、その内容とチーム構成に合わせた独自のマージ要件を設定できます。

これにより、重要なドキュメントにはより厳しいルールを、下書きコンテンツにはより緩やかなルールを適用する柔軟性が得られます。

セクションのマージルールを設定するときは、次のいずれかを選べます：

* **継承する** 組織のマージルールを
* **カスタムルールを定義する** そのセクション専用の
* **マージルールを無効化する** 完全に

{% hint style="info" %}
組織のルールを継承すると、組織のマージルールへの変更は自動的にそのセクションに適用されます。
{% endhint %}

セクションのマージルールを設定するには、エディターの左上にある **アクションメニュー** <i class="fa-ellipsis">:ellipsis:</i> を開き、次に **マージルール**をクリックします。ここでは、組織のマージルールを継承するか、そのセクション専用の新しいルールを設定するかを指定できます。

## ルール評価

### ルールの仕組み

誰かが変更リクエストをマージしようとすると、GitBook は設定されているすべてのルールを順番に評価します：

* マージを許可するには、設定内のすべてのルールが通過する必要があります
* ルールは設定に表示される順に評価されます
* いずれかのルールが失敗すると、適切なエラーメッセージとともにマージはブロックされます
* バイパス機能を持つルールは、先行する失敗を上書きできます

### バイパスルール

一部のルールにはバイパス機能があります（たとえば **指定したアクターに要件のバイパスを許可する**）。これらの特別なルールは他のルールの失敗を上書きできます。バイパスルールが true と評価されると、他のルールが失敗していてもマージは許可されます。

## ベストプラクティス

マージルールを設定するときは、次の推奨事項を検討してください：

* **シンプルに始める**: まずは、少なくとも 1 件のレビューを必須にするような基本的なルールから始めます。
* **段階的に拡張する**: チームの成長とワークフローの成熟に応じて、より具体的な要件を追加します。
* **バイパスは慎重に使う**: バイパス権限は信頼できる管理者にのみ付与してください。
* **定期的に見直す**: チームの実際のワークフローパターンに基づいてルールを調整します。
* **まずテストする**: 可能であれば、本番のセクションに適用する前に、テスト用セクションでルール変更を試してください。

## 利用可能なルールタイプ

### レビュー要件

<table><thead><tr><th width="279.703125">ルール</th><th>説明</th></tr></thead><tbody><tr><td><strong>少なくとも 1 件のレビューを必須にする</strong></td><td>マージ可能になる前に、少なくとも 1 人のチームメンバーが変更リクエストをレビューしていることを保証します。</td></tr><tr><td><strong>すべてのレビューの承認を必須にする</strong></td><td>すべて <strong>完了済み</strong> （未依頼の）レビューはすべて承認でなければなりません。いずれかのレビュアーが変更を要求しているか、変更リクエストを却下している場合、マージはブロックされます。</td></tr><tr><td><strong>指定したアクターによるレビューを必須にする</strong></td><td>指定したすべてのユーザーからの承認が必要です。マージ可能になる前に、変更リクエストをレビューして承認しなければならない特定のチームメンバーを選択できます。</td></tr><tr><td><strong>指定したアクターのいずれか 1 人によるレビューを必須にする</strong></td><td>指定されたユーザーのうち少なくとも 1 人からの承認が必要です。複数の適格なレビュアーがいるが、グループの中から 1 件の承認だけでよい場合に便利です。</td></tr><tr><td><strong>Docs Agent のレビューを必須にする（近日公開）</strong></td><td>GitBook の AI エージェントによるレビューが必要です。これにより、マージ前にコンテンツの変更に対して自動品質チェックが実行されます。</td></tr></tbody></table>

### 変更リクエスト要件

<table><thead><tr><th width="279.703125">ルール</th><th>説明</th></tr></thead><tbody><tr><td><strong>最新の変更リクエストを必須にする</strong></td><td>変更リクエストは、メインのコンテンツブランチと同期している必要があります。変更リクエスト作成後にメインコンテンツが更新されている場合は、マージ前に rebase するか更新する必要があります。</td></tr><tr><td><strong>件名を必須にする</strong></td><td>変更リクエストには説明的な件名/タイトルが必要です。件名が空だとマージはブロックされます。</td></tr><tr><td><strong>説明を必須にする</strong></td><td>変更リクエストには、どのような変更を行い、なぜ行ったのかを説明する内容が含まれていなければなりません。</td></tr></tbody></table>

### 詳細オプション

<table><thead><tr><th width="279.703125">ルール</th><th>説明</th></tr></thead><tbody><tr><td><strong>指定したアクターに要件のバイパスを許可する</strong></td><td>他のすべてのマージルール要件をバイパスできる特定のユーザーを指定できます。これは、管理者やルールの上書きが必要な緊急時に便利です。</td></tr><tr><td><strong>カスタム式</strong></td><td>カスタム JavaScript 式を使用して、高度なマージルールを作成できます。これにより、評価コンテキストに基づく複雑なロジックを定義でき、変更リクエスト、レビュー、マージを試みるユーザーのプロパティにアクセスできます。</td></tr></tbody></table>

#### カスタム式

カスタム式を作成すると、誰かが変更リクエストをマージしようとするたびに評価されます。式が `true`を返すと、マージは許可されます。 `false`を返すと、マージはブロックされます。

{% hint style="info" %}
カスタム式は標準の JavaScript 構文（ES2022）をサポートし、最大長は 1024 文字です。
{% endhint %}

**利用可能なコンテキスト変数：**

* `changeRequest.subject` - 変更リクエストの件名/タイトル
* `changeRequest.description` - 変更リクエストの説明
* `changeRequest.outdated` - 変更リクエストが古くなっているかどうか（真偽値）
* `changeRequest.createdBy.id` - 変更リクエストを作成したユーザーの ID
* `reviews` - 各レビューオブジェクトの配列。各オブジェクトには次が含まれます：
  * `reviews[].status` - レビューステータス（`"approved"` または `"changes_requested"`)
  * `reviews[].reviewer.id` - レビュアーの ID
* `actor.id` - マージしようとしているユーザーの ID

**一般的な式の例：**

{% code title="複数の承認済みレビューを必須にする" %}

```javascript
reviews.filter(r => r.status === "approved").length >= 2
```

{% endcode %}

{% code title="特定ユーザーの承認を必須にする" %}

```javascript
reviews.some(r => r.reviewer.id === "harry" && r.status === "approved")
```

{% endcode %}

{% code title="緊急変更に説明を必須にする" %}

```javascript
!changeRequest.subject.includes("[URGENT]") || !!changeRequest.description
```

{% endcode %}

{% code title="軽微な変更にのみセルフマージを許可する" %}

```javascript
changeRequest.createdBy.id === actor.id ? changeRequest.subject.startsWith("[minor]") : true
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://gitbook.com/docs/documentation/ja-gitbook-documentation/gong-tong-zuo-ye/merge-rules.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
