> 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/collaboration/merge-rules.md).

# マージルール

{% hint style="info" %}
この機能は～で利用できます [ProプランおよびEnterpriseプラン](https://www.gitbook.com/pricing).
{% endhint %}

マージルールでは、特定のユーザーによるレビューが必要であることや、変更リクエストに件名または説明を必須にすることなど、変更リクエストをマージする前に満たす必要がある条件を定義できます。

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

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

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

## マージルールの使用

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

### 組織レベルの設定

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

組織のマージルールを設定するには、組織の **ホーム** に戻って **設定** <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/collaboration/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.
