# Règles de fusion

Les règles de fusion vous permettent de définir des exigences qui doivent être remplies avant que les demandes de changement puissent être fusionnées, comme nécessiter une revue d’un utilisateur spécifique ou exiger un sujet ou une description pour la demande de changement.

Ces règles aident à maintenir la qualité du contenu et à garantir des processus de revue appropriés tout au long de votre flux de travail documentaire.

Lorsque vous avez configuré des règles de fusion, elles évalueront automatiquement les demandes de changement avant qu’elles puissent être fusionnées. Si une règle n’est pas satisfaite, la fusion sera bloquée jusqu’à ce que les exigences soient remplies.

Cela offre un moyen automatisé d’appliquer les standards de collaboration et de revue de votre équipe.

## Utilisation des règles de fusion

Vous pouvez configurer les règles de fusion à différents niveaux pour correspondre au flux de travail de votre équipe :

### Configuration au niveau de l’organisation

Les organisations peuvent définir des règles de fusion par défaut que tous les espaces héritent. Cela ապահովe une cohérence entre plusieurs espaces tout en permettant à chaque espace de personnaliser ses règles selon ses besoins.

Pour configurer les règles de fusion de votre organisation, ouvrez le menu de l’organisation en haut de la barre latérale et choisissez **Paramètres** <picture><source srcset="/files/CG9bVSmdbJnQxrYiNbRI" media="(prefers-color-scheme: dark)"><img src="/files/2a76779430a3fcc834e20d4187948d61c0f3062b" alt=""></picture>. Dans l’écran Paramètres, sélectionnez **Règles de fusion** dans la section **Organisation** de la barre latérale. Ici, vous pouvez spécifier les règles de fusion pour l’ensemble de votre organisation.

Choisissez entre une fusion sans restriction ou sélectionnez un préréglage dans la liste à appliquer aux demandes de changement dans toute votre organisation.

### Configuration au niveau de l’espace

Que vous ayez ou non activé les règles de fusion à l’échelle de l’organisation, chaque espace peut avoir ses propres exigences de fusion adaptées à son contenu et à la structure de son équipe.

Cela vous donne la flexibilité d’avoir des règles plus strictes pour les documentations importantes et des règles plus souples pour le contenu de brouillon.

Lors de la configuration des règles de fusion pour un espace, vous pouvez choisir de :

* **Hériter** des règles de fusion de votre organisation
* **Définir des règles personnalisées** spécifiques à cet espace
* **Désactiver les règles de fusion** entièrement

{% hint style="info" %}
Si vous héritez des règles de l’organisation, toute modification des règles de fusion de l’organisation s’appliquera automatiquement à l’espace.
{% endhint %}

Pour configurer les règles de fusion de votre organisation, ouvrez le **menu Actions** <i class="fa-ellipsis">:ellipsis:</i> en haut à gauche de l’éditeur, puis sélectionnez **Règles de fusion**. Ici, vous pouvez spécifier si vous souhaitez hériter des règles de fusion de votre organisation ou en configurer de nouvelles spécifiques à cet espace.

## Évaluation des règles

### Comment fonctionnent les règles

Lorsqu’une personne souhaite fusionner une demande de changement, GitBook évaluera toutes les règles configurées dans l’ordre :

* Toutes les règles d’une configuration doivent être validées pour qu’une fusion soit autorisée
* Les règles sont évaluées dans l’ordre où elles apparaissent dans votre configuration
* Si une règle échoue, la fusion est bloquée avec un message d’erreur approprié
* Les règles avec des capacités de contournement peuvent annuler les échecs précédents

### Règles de contournement

Certaines règles ont des capacités de contournement (comme **Autoriser des acteurs spécifiés à contourner les exigences**). Ces règles spéciales peuvent remplacer les échecs d’autres règles. Si une règle de contournement est évaluée à vrai, la fusion sera autorisée même si d’autres règles ont échoué.

## Bonnes pratiques

Lors de la configuration des règles de fusion, tenez compte de ces recommandations :

* **Commencez simplement**: Commencez par des règles de base, comme exiger au moins une revue.
* **Montez en charge progressivement**: Ajoutez des exigences plus spécifiques à mesure que votre équipe grandit et que les flux de travail mûrissent.
* **Utilisez le contournement avec prudence**: N’accordez les autorisations de contournement qu’à des administrateurs de confiance.
* **Révisez régulièrement**: Ajustez les règles en fonction des schémas réels du flux de travail de votre équipe.
* **Testez d’abord**: Lorsque cela est possible, testez les modifications des règles dans un espace de test avant de les appliquer aux espaces de production.

## Types de règles disponibles

### Exigences de revue

<table><thead><tr><th width="279.703125">Règle</th><th>Description</th></tr></thead><tbody><tr><td><strong>Exiger au moins une revue</strong></td><td>Garantit qu’au moins un membre de l’équipe a examiné la demande de changement avant qu’elle puisse être fusionnée.</td></tr><tr><td><strong>Exiger que toutes les revues soient approuvées</strong></td><td>Toutes <strong>les revues</strong> terminées (non demandées) doivent être des approbations. Si un réviseur a demandé des modifications ou rejeté la demande de changement, la fusion sera bloquée.</td></tr><tr><td><strong>Exiger une revue par des acteurs spécifiés</strong></td><td>Nécessite l’approbation de tous les utilisateurs spécifiés. Vous pouvez sélectionner des membres spécifiques de l’équipe qui doivent examiner et approuver la demande de changement avant qu’elle puisse être fusionnée.</td></tr><tr><td><strong>Exiger une revue par l’un des acteurs spécifiés</strong></td><td>Nécessite l’approbation d’au moins un des utilisateurs spécifiés. Cela est utile lorsque vous avez plusieurs réviseurs qualifiés, mais qu’une seule approbation du groupe suffit.</td></tr><tr><td><strong>Exiger la revue de l’agent Docs (bientôt disponible)</strong></td><td>Nécessite une revue de l’agent IA de GitBook. Cela garantit que des vérifications automatiques de qualité sont effectuées sur les modifications de contenu avant la fusion.</td></tr></tbody></table>

### Exigences de la demande de changement

<table><thead><tr><th width="279.703125">Règle</th><th>Description</th></tr></thead><tbody><tr><td><strong>Exiger une demande de changement à jour</strong></td><td>La demande de changement doit être à jour avec la branche de contenu principale. Si le contenu principal a été mis à jour depuis la création de la demande de changement, vous devrez la rebaser ou la mettre à jour avant de la fusionner.</td></tr><tr><td><strong>Exiger un sujet</strong></td><td>La demande de changement doit avoir un sujet/titre descriptif. Les sujets vides bloqueront la fusion.</td></tr><tr><td><strong>Exiger une description</strong></td><td>La demande de changement doit inclure une description expliquant quelles modifications ont été apportées et pourquoi.</td></tr></tbody></table>

### Options avancées

<table><thead><tr><th width="279.703125">Règle</th><th>Description</th></tr></thead><tbody><tr><td><strong>Autoriser des acteurs spécifiés à contourner les exigences</strong></td><td>Vous pouvez désigner des utilisateurs spécifiques qui sont autorisés à contourner toutes les autres exigences des règles de fusion. Cela est utile pour les administrateurs ou dans les situations d’urgence où les règles doivent être outrepassées.</td></tr><tr><td><strong>Expression personnalisée</strong></td><td>Vous pouvez créer des règles de fusion avancées à l’aide d’expressions JavaScript personnalisées. Cela vous permet de définir une logique complexe basée sur le contexte d’évaluation, avec accès aux propriétés de la demande de changement, des revues et de l’utilisateur qui tente de fusionner.</td></tr></tbody></table>

#### Expressions personnalisées

Lorsque vous créez une expression personnalisée, elle sera évaluée chaque fois que quelqu’un tentera de fusionner une demande de changement. Si l’expression renvoie `true`, la fusion est autorisée. Si elle renvoie `false`, la fusion est bloquée.

{% hint style="info" %}
Les expressions personnalisées prennent en charge la syntaxe JavaScript standard (ES2022) et ont une longueur maximale de 1024 caractères.
{% endhint %}

**Variables de contexte disponibles :**

* `changeRequest.subject` - Le sujet/titre de la demande de changement
* `changeRequest.description` - La description de la demande de changement
* `changeRequest.outdated` - Indique si la demande de changement est obsolète (booléen)
* `changeRequest.createdBy.id` - ID de l’utilisateur qui a créé la demande de changement
* `reviews` - Tableau d’objets de revue, chacun contenant :
  * `reviews[].status` - Statut de la revue (`"approved"` ou `"changes_requested"`)
  * `reviews[].reviewer.id` - ID du réviseur
* `actor.id` - ID de l’utilisateur qui tente de fusionner

**Exemples courants d’expressions :**

{% code title="Exiger plusieurs revues approuvées" %}

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

{% endcode %}

{% code title="Exiger l’approbation d’un utilisateur spécifique" %}

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

{% endcode %}

{% code title="Exiger une description pour les modifications urgentes" %}

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

{% endcode %}

{% code title="Autoriser la fusion par l’auteur uniquement pour les modifications mineures" %}

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

{% endcode %}


---

# Agent Instructions: 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:

```
GET https://gitbook.com/docs/documentation/fr/collaboration/merge-rules.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
