

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation des pull requests dans les AWS CodeCommit référentiels
<a name="pull-requests"></a>

Une demande d'extraction est le principal moyen dont les autres utilisateurs de votre référentiel et vous-même disposez pour vérifier, commenter et fusionner les modifications apportées au code d'une branche à une autre. Vous pouvez utiliser des demandes d'extraction pour vérifier, de manière collaborative, les modifications de code associées aux corrections mineures, ainsi qu'aux ajouts de fonctions majeures ou aux nouvelles versions d'un logiciel. Voici un exemple de flux de travail pour une demande d'extraction :

Li Juan, un développeur travaillant dans un dépôt nommé MyDemoRepo, souhaite travailler sur une nouvelle fonctionnalité pour une prochaine version d'un produit. Pour séparer son travail du code prêt pour la production, elle crée une branche à partir de la branche par défaut et lui donne un nom. *feature-randomizationfeature* Elle crée du code, effectue des validations et transmet le code de la nouvelle fonction dans cette branche. Elle veut que d'autres utilisateurs du référentiel vérifient la qualité du code avant de fusionner ses modifications dans la branche par défaut. Pour ce faire, elle crée une demande d'extraction. Cette demande contient la comparaison entre sa branche de travail et la branche du code dans laquelle elle envisage de fusionner ses modifications (dans ce cas, la branche par défaut). Elle peut également créer une règle d'approbation qui requiert un nombre spécifique d'utilisateurs pour approuver sa demande d'extraction. Elle peut même spécifier un groupe d'utilisateurs d'approbation. D'autres utilisateurs vérifient son code et ses modifications, puis ajoutent des commentaires et des suggestions. Elle peut mettre à jour sa branche de travail plusieurs fois avec les modifications du code en réponse aux commentaires. Ses modifications sont incorporées dans la pull request chaque fois qu'elle les envoie vers cette branche. CodeCommit Elle peut également intégrer les modifications qui ont été apportées dans la branche de destination prévue pendant que la demande d'extraction est ouverte. De cette manière, les utilisateurs sont assurés de vérifier toutes les modifications proposées dans le contexte. Lorsqu'elle-même ainsi que ses réviseurs sont satisfaits et que les conditions applicables aux règles d'approbation (le cas échéant) sont remplies, elle ou l'un de ses évaluateurs fusionne son code et ferme la demande d'extraction. 

![\[Création d'une demande d'extraction\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-create.png)


Les demandes d'extraction nécessitent deux branches : une branche source qui contient le code que vous voulez faire vérifier et une branche de destination dans laquelle vous fusionnez le code vérifié. La branche source contient l'APRÈS-validation, qui est la validation qui contient les modifications que vous souhaitez fusionner dans la branche de destination. La brande de destination contient l'AVANT-validation, qui représente l'état du code avant que la branche de la demande d'extraction ne soit fusionnée dans la branche de destination. Le choix de la stratégie de fusion influe sur les détails de la manière dont les validations sont fusionnées entre les branches source et de destination dans la CodeCommit console. Pour plus d'informations sur les stratégies de fusion dans CodeCommit, voir[Fusionner une pull request (console)](how-to-merge-pull-request.md#how-to-merge-pull-request-console).

![\[Branches source et de destination d'une demande d'extraction, montrant la relation entre les validation avant et après\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-concepts.png)


La demande d'extraction affiche les différences entre la pointe de la branche source et la dernière validation sur la branche de destination lorsque la demande d'extraction est créée afin que les utilisateurs puissent vérifier et commenter les modifications. Vous pouvez mettre à jour la demande d'extraction en réponse aux commentaires en validant et en envoyant les modifications apportées à la branche source. 

![\[Ajout d'un commentaire à une ligne dans une demande d'extraction.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-comment.png)


Lorsque votre code a été révisé et que les exigences de la règle d'approbation (le cas échéant) ont été satisfaites, vous pouvez fermer la demande d'extraction de l'une des manières suivantes : 
+ Fusionnez les branches en local et transmettez vos modifications. Cela ferme automatiquement la demande si la stratégie de fusion rapide est utilisée et qu'il n'y a aucun conflit de fusion.
+ Utilisez la AWS CodeCommit console pour fermer la pull request sans fusion, résoudre les conflits lors d'une fusion ou, en l'absence de conflit, fermer et fusionner les branches en utilisant l'une des stratégies de fusion disponibles.
+ Utilisez AWS CLI.

Avant de créer une demande d'extraction :
+ Assurez-vous que vous avez validé et transmis les modifications de code que vous voulez faire vérifier dans une branche (la branche source).
+ Configurez les notifications pour le référentiel afin de permettre aux autres utilisateurs d'être automatiquement informés de la demande d'extraction et des modifications qui lui sont apportées. (Cette étape est facultative, mais recommandée).
+ Créez et associez des modèles de règles d'approbation à votre référentiel, afin que des règles d'approbation soient automatiquement créées pour les demandes d'extraction et garantissent la qualité du code. Pour de plus amples informations, veuillez consulter [Utilisation des modèles de règles d'approbation](approval-rule-templates.md).

Les pull requests sont plus efficaces lorsque vous avez configuré des utilisateurs IAM pour les utilisateurs de votre référentiel dans votre compte Amazon Web Services. Il est plus facile d'identifier quel utilisateur a fait quel commentaire. L'autre avantage est que les utilisateurs IAM peuvent utiliser les informations d'identification Git pour accéder au référentiel. Pour de plus amples informations, veuillez consulter [Étape 1 : Configuration initiale pour CodeCommit](setting-up-gc.md#setting-up-gc-account). Vous pouvez utiliser les demandes d'extraction avec d'autres types d'utilisateurs, y compris les utilisateurs à accès fédéré.

Pour plus d'informations sur l'utilisation d'autres aspects de votre référentiel dans CodeCommit[Utilisation des référentiels](repositories.md), voir[Utilisation des modèles de règles d'approbation](approval-rule-templates.md),[Travailler avec des fichiers](files.md),[Travailler avec des commits](commits.md),[Utilisation de branches](branches.md), et[Utilisation des préférences de l'utilisateur](user-preferences.md). 

**Topics**
+ [Créer une demande d'extraction](how-to-create-pull-request.md)
+ [Création d'une règle d'approbation pour une pull request](how-to-create-pull-request-approval-rule.md)
+ [Afficher les pull requests dans un AWS CodeCommit référentiel](how-to-view-pull-request.md)
+ [Réviser une demande d'extraction](how-to-review-pull-request.md)
+ [Mise à jour d’une demande d'extraction](how-to-update-pull-request.md)
+ [Modifier ou supprimer une règle d'approbation pour une pull request](how-to-edit-delete-pull-request-approval-rule.md)
+ [Annuler les règles d'approbation relatives à une pull request](how-to-override-approval-rules.md)
+ [Fusionner une pull request dans un AWS CodeCommit référentiel](how-to-merge-pull-request.md)
+ [Résoudre les conflits liés à une pull request dans un AWS CodeCommit référentiel](how-to-resolve-conflict-pull-request.md)
+ [Fermer une pull request dans un AWS CodeCommit référentiel](how-to-close-pull-request.md)

# Créer une demande d'extraction
<a name="how-to-create-pull-request"></a>

La création de demandes d'extraction permet aux autres utilisateurs de voir et de vérifier vos modifications de code avant de les fusionner dans une autre branche. Tout d'abord, vous devez créer une branche pour vos modifications de code. C'est ce que l'on appelle la branche source d'une demande d'extraction. Une fois que vous avez validé et envoyé ces modifications dans le référentiel, vous pouvez créer une demande d'extraction qui compare le contenu de cette branche (branche source) à la branche dans laquelle vous souhaitez fusionner vos modifications après la fermeture de la demande d'extraction (branche de destination). 

Vous pouvez utiliser la AWS CodeCommit console ou le AWS CLI pour créer des pull requests pour votre dépôt. 

**Topics**
+ [Création d'une pull request (console)](#how-to-create-pull-request-console)
+ [Créez une pull request (AWS CLI)](#how-to-create-pull-request-cli)

## Création d'une pull request (console)
<a name="how-to-create-pull-request-console"></a>

Vous pouvez utiliser la CodeCommit console pour créer une pull request dans un CodeCommit référentiel. Si votre référentiel est [configuré avec des notifications](how-to-repository-email.md), les utilisateurs abonnés reçoivent un e-mail lorsque vous créez une demande d'extraction.

1. Ouvrez la CodeCommit console sur [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Dans **Repositories** (Référentiels), sélectionnez le nom du référentiel dans lequel vous voulez créer une demande d'extraction. 

1. Dans le volet de navigation, choisissez **Pull Requests**.
**Astuce**  
Vous pouvez également créer des demandes d'extractions depuis **Branches** et **Code**.

1. Choisissez **Create pull request**.   
![\[Création d'une pull request depuis la page Pull requests de la CodeCommit console.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Dans la section **Source** de **Create pull request**, recherchez la branche qui contient les modifications que vous voulez faire vérifier. 

1. Dans **Destination**, choisissez la branche dans laquelle vous prévoyez de fusionner vos modifications de code lorsque la demande d'extraction est fermée. 

1. Choisissez **Comparer**. Une comparaison s'exécute sur les deux branches et les différences entre elles s'affichent. Une analyse est également effectuée pour déterminer si les deux branches peuvent être fusionnées automatiquement lors de la fermeture de la demande d'extraction.

1. Passez en revue les détails de la comparaison et les modifications pour vous assurer que la demande d'extraction contient les modifications et les validations que vous voulez faire vérifier. Si tel n'est pas le cas, ajustez vos choix pour les branches source et de destination, et choisissez **Compare** à nouveau.

1. Lorsque vous êtes satisfait des résultats de comparaison de la demande d'extraction, dans **Titre**, saisissez un titre court mais descriptif pour cette révision. Il s'agit du titre qui s'affiche dans la liste des demandes d'extraction pour le référentiel. 

1. (Facultatif) Dans **Description**, saisissez les détails relatifs à la révision et toutes les autres informations utiles pour les réviseurs.

1. Choisissez **Créer**.  
![\[Création d'une demande d'extraction\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-create.png)

Votre demande d'extraction s'affiche dans la liste des demandes d'extraction du référentiel. Si vous avez [configuré les notifications](how-to-repository-email.md), les abonnés à la rubrique Amazon SNS reçoivent un e-mail les informant de la nouvelle pull request créée.

## Créez une pull request (AWS CLI)
<a name="how-to-create-pull-request-cli"></a>

Pour utiliser AWS CLI des commandes avec CodeCommit, installez le AWS CLI. Pour de plus amples informations, veuillez consulter [Référence des commandes en ligne](cmd-ref.md). 

**Pour utiliser le AWS CLI pour créer une pull request dans un CodeCommit référentiel**
+ Exécutez la commande **create-pull-request** en indiquant :
  + Le nom de la demande d'extraction (avec l'option **--title**).
  + La description de la demande d'extraction (avec l'option **--description**).
  + Une liste des cibles pour la commande **create-pull-request**, y compris :
    + Le nom du CodeCommit référentiel dans lequel la pull request est créée (avec l'**repositoryName**attribut).
    + Le nom de la branche qui contient les modifications de code que vous voulez faire vérifier, également connue sous le nom de branche source (avec l'attribut **sourceReference**).
    + (Facultatif) Le nom de la branche dans laquelle vous prévoyez de fusionner vos modifications de code, également connue sous le nom de branche de destination, si vous ne souhaitez pas les fusionner dans la branche par défaut (avec l'attribut **destinationReference**).
  + Un jeton d'idempotence unique généré par le client (avec l'option **--client-request-token**). 

  Cet exemple crée une pull request nommée *Pronunciation difficulty analyzer* avec une description *Please review these changes by Tuesday* qui cible la branche *jane-branch* source. La pull request doit être fusionnée dans la branche *main* par défaut d'un CodeCommit dépôt nommé `MyDemoRepo` :

  ```
  aws codecommit create-pull-request --title "Pronunciation difficulty analyzer" --description "Please review these changes by Tuesday" --client-request-token 123Example --targets repositoryName=MyDemoRepo,sourceReference=jane-branch 
  ```

# Création d'une règle d'approbation pour une pull request
<a name="how-to-create-pull-request-approval-rule"></a>

La création de règles d'approbation pour vos demandes d'extraction permet d'assurer la qualité de votre code en exigeant que les utilisateurs approuvent la demande d'extraction pour que le code puisse être fusionné dans la branche de destination. Vous pouvez spécifier le nombre d'utilisateurs devant approuver une demande d'extraction. Vous pouvez également spécifier un groupe d'utilisateurs d'approbation pour la règle. Dans ce cas, seules les approbations de ces utilisateurs sont comptabilisées dans le nombre d'approbations requises pour la règle. 

**Note**  
Vous pouvez également créer des modèles de règles d'approbation, qui peuvent vous aider à automatiser la création de règles d'approbation dans les référentiels qui s'appliqueront à chaque pull request. Pour de plus amples informations, veuillez consulter [Utilisation des modèles de règles d'approbation](approval-rule-templates.md).

Vous pouvez utiliser la AWS CodeCommit console ou le AWS CLI pour créer des règles d'approbation pour votre référentiel. 

**Topics**
+ [Création d'une règle d'approbation pour une pull request (console)](#how-to-create-pull-request-approval-rule-console)
+ [Création d'une règle d'approbation pour une pull request (AWS CLI)](#how-to-create-pull-request-approval-rule-cli)

## Création d'une règle d'approbation pour une pull request (console)
<a name="how-to-create-pull-request-approval-rule-console"></a>

Vous pouvez utiliser la CodeCommit console pour créer une règle d'approbation pour une pull request dans un CodeCommit référentiel. 

1. Ouvrez la CodeCommit console sur [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Dans **Repositories (Référentiels)**, choisissez le nom du référentiel dans lequel vous souhaitez créer une règle d'approbation pour une demande d'extraction. 

1. Dans le volet de navigation, choisissez **Pull Requests**.

1. Choisissez la demande d'extraction pour laquelle vous souhaitez créer une règle d'approbation dans la liste. Vous pouvez uniquement créer des règles d'approbation pour les demandes d'extraction ouvertes.  
![\[Liste des pull requests pour un dépôt dans la CodeCommit console.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Dans la demande d'extraction, choisissez **Approvals (Approbations)**, puis **Create approval rule (Créer une règle d'approbation)**. 

1. Dans **Rule name (Nom de la règle)**, donnez un nom descriptif à la règle afin que vous sachiez quel est son rôle. Par exemple, si vous souhaitez que deux personnes approuvent une demande d'extraction pour qu'elle puisse être fusionnée, vous pouvez nommer la règle **Require two approvals before merge**. 
**Note**  
Vous ne pouvez pas modifier le nom d'une règle d'approbation après sa création.

   Dans **Number of approvals needed (Nombre d'approbations nécessaires)**, entrez le nombre souhaité. La valeur par défaut est 1.   
![\[Création d'une règle d'approbation pour une demande d'extraction\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-create-approval-rule.png)

1. (Facultatif) Si vous souhaitez que les approbations d'une demande d'extraction proviennent d'un groupe d'utilisateurs spécifique, dans **Approval rule members (Membres de règle d'approbation)**, choisissez **Add (Ajouter)**. Dans **Approver type (Type d'approbateur)**, choisissez l'une des options suivantes : 
   + **Nom d'utilisateur ou rôle assumé par IAM** : cette option préremplit l'ID du AWS compte avec le compte que vous avez utilisé pour vous connecter et nécessite uniquement un nom. Il peut être utilisé à la fois pour les utilisateurs IAM et les utilisateurs à accès fédéré dont le nom correspond au nom fourni. Il s'agit d'une option très puissante qui offre une grande flexibilité. Par exemple, si vous êtes connecté avec le compte Amazon Web Services 123456789012 et que vous choisissez cette option, et que vous spécifiez**Mary\$1Major**, tous les éléments suivants sont considérés comme des approbations provenant de cet utilisateur :
     + Un utilisateur IAM dans le compte () `arn:aws:iam::123456789012:user/Mary_Major`
     + Un utilisateur fédéré identifié dans IAM comme Mary\$1Major () `arn:aws:sts::123456789012:federated-user/Mary_Major`

     Cette option ne reconnaît pas une session active d'une personne assumant le rôle **CodeCommitReview** avec le nom de session de rôle Mary\$1Major (`arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major`), sauf si vous incluez un caractère générique (`*Mary_Major`). Vous pouvez également spécifier explicitement le nom du rôle (`CodeCommitReview/Mary_Major`).
   + **ARN complet** : cette option vous permet de spécifier le nom de ressource Amazon (ARN) complet de l'utilisateur ou du rôle IAM. Cette option prend également en charge les rôles assumés utilisés par d'autres AWS services, tels que AWS Lambda et AWS CodeBuild. Pour les rôles assumés, le format de l'ARN doit être `arn:aws:sts::AccountID:assumed-role/RoleName` pour les rôles et `arn:aws:sts::AccountID:assumed-role/FunctionName` pour les fonctions.

   Si vous avez choisi le **nom d'utilisateur IAM ou le rôle assumé** comme type d'approbateur, dans **Value**, entrez le nom de l'utilisateur ou du rôle IAM ou l'ARN complet de l'utilisateur ou du rôle. Choisissez à nouveau **Add (Ajouter)** pour ajouter d'autres utilisateurs ou rôles, jusqu'à ce que vous ayez ajouté tous les utilisateurs ou rôles dont les approbations comptent dans le nombre d'approbations requises. 

   Les deux types d'approbateur vous permettent d'utiliser des caractères génériques (\$1) dans leurs valeurs. Par exemple, si vous choisissez l'option **Nom d'utilisateur IAM ou rôle assumé**, et que vous le spécifiez**CodeCommitReview/\$1**, tous les utilisateurs qui assument le rôle de **CodeCommitReview** sont pris en compte dans le pool d'approbation. Les noms de session de leurs rôles individuels sont pris en compte dans le nombre d'approbateurs requis. De cette façon, Mary\$1Major et Li\$1Juan comptent comme approbations lorsqu'elles sont connectées et assument le rôle `CodeCommitReview`. Pour plus d'informations sur l'IAM ARNs, les caractères génériques et les formats, consultez la section Identifiants [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).
**Note**  
Les règles d'approbation ne prennent pas en charge les approbations entre comptes.

1. Lorsque vous avez terminé de configurer la règle d'approbation, choisissez **Submit (Envoyer)**.

 

## Création d'une règle d'approbation pour une pull request (AWS CLI)
<a name="how-to-create-pull-request-approval-rule-cli"></a>

Pour utiliser AWS CLI des commandes avec CodeCommit, installez le AWS CLI. Pour de plus amples informations, veuillez consulter [Référence des commandes en ligne](cmd-ref.md). 

## Pour créer une règle d'approbation pour une pull request dans un CodeCommit référentiel

+ Exécutez la commande **create-pull-request-approval-rule** en indiquant :
  + L'ID de la demande d'extraction (avec l'option **--id**).
  + Le nom de la règle d'approbation (avec l'option **--approval-rule-name**).
  + Le contenu de la règle d'approbation (avec l'option **--approval-rule-content**).

  Lorsque vous créez la règle d'approbation, vous pouvez spécifier des approbateurs dans un groupe d'approbation de l'une des deux manières suivantes :
  + **CodeCommitApprovers**: Cette option nécessite uniquement un compte Amazon Web Services et une ressource. Il peut être utilisé à la fois pour les utilisateurs IAM et les utilisateurs à accès fédéré dont le nom correspond au nom de ressource fourni. Il s'agit d'une option très puissante qui offre une grande flexibilité. Par exemple, si vous spécifiez le compte Amazon Web Services 123456789012 et **Mary\$1Major** que tous les éléments suivants sont considérés comme des approbations provenant de cet utilisateur :
    + Un utilisateur IAM dans le compte () `arn:aws:iam::123456789012:user/Mary_Major`
    + Un utilisateur fédéré identifié dans IAM comme Mary\$1Major () `arn:aws:sts::123456789012:federated-user/Mary_Major`

    Cette option ne reconnaît pas une session active d'une personne assumant le rôle **CodeCommitReview** avec le nom de session de rôle Mary\$1Major (`arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major`), sauf si vous incluez un caractère générique (`*Mary_Major`).
  + **ARN complet** : cette option vous permet de spécifier le nom de ressource Amazon (ARN) complet de l'utilisateur ou du rôle IAM. 

  Pour plus d'informations sur l'IAM ARNs, les caractères génériques et les formats, consultez la section Identifiants [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).

  L'exemple suivant montre comment créer une règle d'approbation nommée `Require two approved approvers` pour une demande d'extraction ayant l'ID `27`. La règle spécifie que deux approbations sont requises à partir d'un groupe d'approbation. Le pool inclut tous les utilisateurs qui accèdent au compte `123456789012` Amazon Web Services CodeCommit et **CodeCommitReview** en assument le rôle. Il inclut également un utilisateur IAM ou un utilisateur fédéré nommé `Nikhil_Jayashankar` dans le même compte Amazon Web Services :

  ```
  aws codecommit create-pull-request-approval-rule --pull-request-id 27 --approval-rule-name "Require two approved approvers" --approval-rule-content "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012:Nikhil_Jayashankar\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}"
  ```

# Afficher les pull requests dans un AWS CodeCommit référentiel
<a name="how-to-view-pull-request"></a>

Vous pouvez utiliser la AWS CodeCommit console ou le AWS CLI pour afficher les pull requests pour votre dépôt. Par défaut, vous voyez uniquement les demandes d'extraction ouvertes mais vous pouvez modifier le filtre pour afficher toutes les demandes d'extraction, uniquement les demandes fermées, uniquement les demandes que vous avez créées, etc. 

**Topics**
+ [Afficher les pull requests (console)](#how-to-view-pull-request-console)
+ [Afficher les pull requests (AWS CLI)](#how-to-view-pull-request-cli)

## Afficher les pull requests (console)
<a name="how-to-view-pull-request-console"></a>

Vous pouvez utiliser la AWS CodeCommit console pour afficher la liste des pull requests dans un CodeCommit référentiel. En changeant le filtre, vous pouvez modifier la liste pour n'afficher qu'un certain type de demandes d'extraction. Par exemple, vous pouvez choisir d'afficher une liste des demandes d'extraction que vous avez créées et dont le statut indique **Open**. Vous pouvez également choisir un autre filtre et consulter les demandes d'extraction que vous avez créées et dont le statut indique **Closed**.

1. Ouvrez la CodeCommit console sur [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Dans **Repositories (Référentiels)**, sélectionnez le nom du référentiel dans lequel vous voulez afficher les demandes d'extraction. 

1. Dans le volet de navigation, choisissez **Pull Requests**.

1. Par défaut, une liste de toutes les demandes d'extraction ouvertes s'affiche.   
![\[Les pull requests sont affichées dans la AWS CodeCommit console.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)

1. Pour modifier le filtre d'affichage, choisissez-le dans la liste des filtres disponibles :
   + **Open pull requests (Ouvrir requêtes d'extraction)** (par défaut) : affiche toutes les demandes d'extraction dont le statut est **Ouvert**.
   + **All pull requests (Toutes requêtes d'extraction)** : affiche toutes les demandes d'extraction.
   + **All closed requests (Toutes les requêtes fermées)** : affiche toutes les demandes d'extraction dont le statut est **Fermé**.
   + **My pull requests (Mes demandes d'extraction)** : affiche toutes les demandes d'extraction que vous avez créées, indépendamment de leur statut. Elle n'affiche pas les vérifications que vous avez commentées ou auxquels vous avez participé d'une quelconque manière.
   + **My open pull requests (Mes demandes d'extraction ouvertes)** : affiche toutes les demandes d'extraction que vous avez créées et qui ont le statut **Open (Ouvert)**.
   + **My closed pull requests (Mes demandes d'extraction fermées)** : affiche toutes les demandes d'extraction que vous avez créées et qui ont le statut **Closed (Fermé)**.

1. Lorsque vous trouvez dans la liste une demande d'extraction que vous souhaitez afficher, choisissez-la.

## Afficher les pull requests (AWS CLI)
<a name="how-to-view-pull-request-cli"></a>

Pour utiliser AWS CLI des commandes avec CodeCommit, installez le AWS CLI. Pour de plus amples informations, veuillez consulter [Référence des commandes en ligne](cmd-ref.md). 

Procédez comme suit pour utiliser le AWS CLI pour afficher les pull requests dans un CodeCommit référentiel.

1. Pour afficher la liste des demandes d'extraction dans un référentiel, exécutez la commande **list-pull-requests** en spécifiant les informations suivantes :
   + Le nom du CodeCommit référentiel dans lequel vous souhaitez consulter les pull requests (avec l'**--repository-name**option).
   + (Facultatif) Le statut de la demande d'extraction (avec l'option **--pull-request-status**).
   + (Facultatif) Le nom de ressource Amazon (ARN) de l'utilisateur IAM qui a créé la pull request (avec l'**--author-arn**option).
   + (Facultatif) Un jeton d'énumération qui peut être utilisé pour renvoyer des lots de résultats (avec l'option **--next-token**). 
   + (Facultatif) Une limite du nombre de résultats renvoyés par demande (avec l'option **--max-results**).

   Par exemple, pour répertorier les pull requests créées par un utilisateur IAM avec l'ARN *arn:aws:iam::111111111111:user/Li\$1Juan* et le statut de *CLOSED* dans un CodeCommit référentiel nommé `MyDemoRepo` :

   ```
   aws codecommit list-pull-requests --author-arn arn:aws:iam::111111111111:user/Li_Juan --pull-request-status CLOSED --repository-name MyDemoRepo 
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
      "nextToken": "",
      "pullRequestIds": ["2","12","16","22","23","35","30","39","47"]
   }
   ```

   Les pull requests IDs sont affichées dans l'ordre de l'activité la plus récente.

1. Pour afficher les détails d'une demande d'extraction, exécutez la commande **get-pull-request** avec l'option **--pull-request-id**, en spécifiant l'ID de la demande d'extraction. Par exemple, pour afficher les informations relatives à une pull request avec l'ID de *27* :

   ```
   aws codecommit get-pull-request --pull-request-id 27
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "2-approver-rule-for-main",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "lastActivityDate": 1562619583.565,
           "pullRequestTargets": [
               {
                   "sourceCommit": "ca45e279EXAMPLE",
                   "sourceReference": "refs/heads/bugfix-1234",
                   "mergeBase": "a99f5ddbEXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": false
                   },
                   "destinationCommit": "2abfc6beEXAMPLE",
                   "repositoryName": "MyDemoRepo"
               }
           ],
           "revisionId": "e47def21EXAMPLE",
           "title": "Quick fix for bug 1234",
           "authorArn": "arn:aws:iam::123456789012:user/Nikhil_Jayashankar",
           "clientRequestToken": "d8d7612e-EXAMPLE",
           "creationDate": 1562619583.565,
           "pullRequestId": "27",
           "pullRequestStatus": "OPEN"
       }
   }
   ```

1. <a name="get-pull-request-approval-state"></a>Pour afficher les approbations sur une demande d'extraction, exécutez la commande **get-pull-request-approval-state**, en spécifiant :
   + L'ID de la demande d'extraction (avec l'option **--pull-request-id**).
   + L'ID de révision de la demande d'extraction (avec l'option **--revision-id option)**). Vous pouvez obtenir l'ID de révision actuel d'une demande d'extraction à l'aide de la commande [get-pull-request](#get-pull-request).

   Par exemple, pour afficher les approbations d'une pull request avec un ID *8* et un ID de révision de *9f29d167EXAMPLE* :

   ```
   aws codecommit get-pull-request-approval-state --pull-request-id 8 --revision-id 9f29d167EXAMPLE
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
       "approvals": [
           {
               "userArn": "arn:aws:iam::123456789012:user/Mary_Major",
               "approvalState": "APPROVE"
           }
       ]
   }
   ```

1. Pour afficher les événements d'une demande d'extraction, exécutez la commande **describe-pull-request-events** avec l'option **--pull-request-id**, en spécifiant l'ID de la demande d'extraction. Par exemple, pour afficher les événements d'une pull request avec l'ID de *8* :

   ```
   aws codecommit describe-pull-request-events --pull-request-id 8
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
       "pullRequestEvents": [
           {
               "pullRequestId": "8",
               "pullRequestEventType": "PULL_REQUEST_CREATED",
               "eventDate": 1510341779.53,
               "actor": "arn:aws:iam::111111111111:user/Zhang_Wei"
           },
           {
               "pullRequestStatusChangedEventMetadata": {
                   "pullRequestStatus": "CLOSED"
               },
               "pullRequestId": "8",
               "pullRequestEventType": "PULL_REQUEST_STATUS_CHANGED",
               "eventDate": 1510341930.72,
               "actor": "arn:aws:iam::111111111111:user/Jane_Doe"
           }
       ]
   }
   ```

1. Pour voir s'il existe des conflits de fusion pour une demande d'extraction, exécutez la commande **get-merge-conflicts** en spécifiant les informations suivantes :
   + Le nom du CodeCommit dépôt (avec l'**--repository-name**option).
   + La branche, la balise, HEAD ou toute autre référence complète pour la source des modifications à utiliser dans la l'évaluation de la fusion (avec l'option **--source-commit-specifier**).
   + La branche, la balise, HEAD ou toute autre référence complète pour la destination des modifications à utiliser dans la l'évaluation de la fusion (avec l'option **--destination-commit-specifier**).
   + L'option de fusion à utiliser (avec l'option **--merge-option**). 

   Par exemple, pour voir s'il existe des conflits de fusion entre l'extrémité d'une branche source nommée *my-feature-branch* et une branche de destination nommée *main* dans un référentiel nommé `MyDemoRepo` :

   ```
   aws codecommit get-merge-conflicts --repository-name MyDemoRepo --source-commit-specifier my-feature-branch --destination-commit-specifier main --merge-option FAST_FORWARD_MERGE
   ```

   Si elle aboutit, cette commande renvoie une sortie similaire à ce qui suit :

   ```
   {
       "destinationCommitId": "fac04518EXAMPLE",
       "mergeable": false,
       "sourceCommitId": "16d097f03EXAMPLE"
   }
   ```

# Réviser une demande d'extraction
<a name="how-to-review-pull-request"></a>

Vous pouvez utiliser la AWS CodeCommit console pour consulter les modifications incluses dans une pull request. Vous pouvez ajouter des commentaires à la demande, aux fichiers et à des lignes de code spécifiques. Vous pouvez également répondre aux commentaires écrits par d'autres personnes. Si votre référentiel est [configuré avec des notifications](how-to-repository-email.md), vous recevez des e-mails lorsque les utilisateurs répondent à vos commentaires ou lorsqu'ils commentent une demande d'extraction.

Vous pouvez utiliser le AWS CLI pour commenter une pull request et répondre aux commentaires. Pour vérifier les modifications, vous devez utiliser la CodeCommit console, la **git diff** commande ou un outil de comparaison.

**Topics**
+ [Vérifier une pull request (console)](#how-to-review-pull-request-console)
+ [Passez en revue les pull requests (AWS CLI)](#how-to-review-pull-request-cli)

## Vérifier une pull request (console)
<a name="how-to-review-pull-request-console"></a>

Vous pouvez utiliser la CodeCommit console pour examiner une pull request dans un CodeCommit référentiel. 

1. Ouvrez la CodeCommit console sur [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Dans **Référentiels**, sélectionnez le nom du référentiel. 

1. Dans le volet de navigation, choisissez **Demandes d'extraction**.

1. Par défaut, une liste de toutes les demandes d'extraction ouvertes s'affiche. Choisissez la demande d'extraction ouverte que vous souhaitez vérifier.   
![\[Ouvrez les pull requests affichées dans la CodeCommit console.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)
**Note**  
Vous pouvez commenter une demande d'extraction fermée ou fusionnée, mais vous ne pouvez pas la fusionner ou la rouvrir.

1. Dans la demande d'extraction, choisissez **Modifications**.

1. Effectuez l’une des actions suivantes :
   + Pour ajouter un commentaire général à la totalité d'une demande d'extraction, dans **Comments on changes (Commentaires sur les modifications)**, choisissez **New comment (Nouveau commentaire)**, saisissez un commentaire, puis sélectionnez **Save (Enregistrer)**. Vous pouvez utiliser [Markdown](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html) ou saisir le commentaire en texte brut.  
![\[Un commentaire général relatif aux modifications dans une demande d'extraction.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-commenting-changecomment.png)
   + Pour ajouter un commentaire à un fichier dans la validation, dans **Modifications**, recherchez le nom du fichier. Choisissez l'icône de commentaire ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-commentbubble.png) qui s'affiche à côté du nom de fichier, saisissez un commentaire, puis choisissez **Enregistrer**.   
![\[Ajout d'un commentaire à un fichier dans une demande d'extraction.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-commenting-addfilecomment.png)
   + Pour ajouter un commentaire à une ligne modifiée dans la demande d'extraction, dans **Modifications**, accédez à la ligne pour laquelle vous souhaitez laisser un commentaire. Choisissez l'icône de commentaire ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-commentbubble.png) qui apparaît pour cette ligne, entrez un commentaire, puis choisissez **Save (Enregistrer)**.   
![\[Ajout d'un commentaire à une ligne dans une demande d'extraction.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-comment.png)

1. Pour répondre aux commentaires sur une validation, dans **Modifications** ou **Activité**, choisissez **Répondre**. Vous pouvez répondre avec du texte et des émoticônes.   
![\[Ajouter des réponses et des réactions emoji à un commentaire.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-commenting-commenttab.png)

   Vous pouvez voir les noms des personnes qui ont répondu par une réaction emoji particulière en la choisissant. Pour afficher toutes les réactions des emojis et savoir qui a répondu par quels émojis, choisissez **Afficher toutes les** réactions. Si vous avez répondu par un emoji à un commentaire, votre réponse est affichée dans l'icône du bouton de réaction de l'emoji.
**Note**  
Le nombre de réactions affiché dans la console est exact au moment du chargement de la page. Pour obtenir les informations les plus récentes sur le nombre de réactions des emoji, actualisez la page ou choisissez **Afficher toutes les réactions**.  
![\[Afficher des informations sur les utilisateurs qui ont répondu à un commentaire par une réaction emoji.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-comment-view-reaction.png)

1. (Facultatif) Pour répondre à une recommandation créée par Amazon CodeGuru Reviewer, notamment pour fournir des commentaires sur la qualité de la recommandation, choisissez **Reply**. Utilisez les boutons de réaction pour fournir des informations générales indiquant si vous approuvez ou désapprouvez la recommandation. Utilisez le champ de commentaire pour fournir des détails supplémentaires sur votre réaction.
**Note**  
Amazon CodeGuru Reviewer est un service de révision de code automatisé qui utilise l'analyse de programmes et l'apprentissage automatique pour détecter les problèmes courants et recommander des correctifs dans votre code Java ou Python.  
Les commentaires Amazon CodeGuru Reviewer ne s'affichent que si vous avez associé le référentiel à Amazon CodeGuru Reviewer, si l'analyse est terminée et si le code de la pull request est du code Java ou Python. Pour de plus amples informations, veuillez consulter [Associer ou dissocier un AWS CodeCommit référentiel à Amazon CodeGuru Reviewer](how-to-amazon-codeguru-reviewer.md).
Les commentaires d'Amazon CodeGuru Reviewer n'apparaissent dans l'onglet **Modifications** que s'ils concernent la dernière révision de la pull request. Ils apparaissent toujours dans l'onglet **Activité**.
Bien que vous puissiez répondre par n'importe laquelle des réactions emoji disponibles aux recommandations d'Amazon CodeGuru Reviewer, seules les réactions emoji « pouce levé » et « pouce bas » sont utilisées pour évaluer l'utilité de la recommandation.   
![\[Une recommandation créée par Amazon CodeGuru Reviewer alors qu'une tâche de révision est en cours.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-reply-bot.png)

1. Pour approuver les modifications apportées dans une demande d'extraction, choisissez **Approve (Approuver)**. 
**Note**  
Vous ne pouvez pas approuver une pull request que vous avez créée.

   Vous pouvez afficher les approbations, les règles d'approbation pour une demande d'extraction et les règles d'approbation créées par les modèles de règles d'approbation dans **Approvals (Approbations)**. Si vous décidez finalement de ne pas approuver la demande d'extraction, vous pouvez choisir **Revoke approval (Annuler l'approbation)**.
**Note**  
Vous ne pouvez approuver ou annuler l'approbation que pour une demande d'extraction ouverte. Vous ne pouvez pas approuver ou annuler l'approbation d'une demande d'extraction dont le statut est Merged (Fusionné) ou Closed (Fermé).  
![\[Approbations et règles d'approbation dans une demande d'extraction.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-approval-rule-met.png)

## Passez en revue les pull requests (AWS CLI)
<a name="how-to-review-pull-request-cli"></a>

Pour utiliser AWS CLI des commandes avec CodeCommit, installez le AWS CLI. Pour de plus amples informations, veuillez consulter [Référence des commandes en ligne](cmd-ref.md). 

Vous pouvez consulter les pull requests à l'aide des AWS CLI commandes suivantes :
+ [**post-comment-for-pull-request**](#post-comment-reply), pour ajouter un commentaire à une pull request
+ [**get-comments-for-pull-request**](#get-comments-for-pull-request), pour afficher les commentaires laissés sur une pull request
+ [**update-pull-request-approval-state**](#update-pull-request-approval-state), pour approuver ou révoquer l'approbation d'une pull request
+ [**post-comment-reply**](#post-comment-reply), pour répondre à un commentaire dans une pull request

Vous pouvez également utiliser des emojis avec des commentaires dans une pull request à l'aide des commandes suivantes : 
+ Pour répondre à un commentaire avec un emoji, lancez [**put-comment-reaction**](how-to-commit-comment.md#how-to-commit-comment-cli-commit-reply-emoji).
+ Pour voir les réactions des emoji à un commentaire, lancez [**get-comment-reactions**](how-to-commit-comment.md#how-to-commit-comment-cli-commit-emoji-view).

**Pour utiliser le AWS CLI pour examiner les pull requests dans un CodeCommit référentiel**

1. Pour ajouter un commentaire à une demande d'extraction dans un référentiel, exécutez la commande **post-comment-for-pull-request**, en spécifiant :
   + L'ID de la demande d'extraction (avec l'option **--pull-request-id**).
   + Le nom du référentiel qui contient la demande d'extraction (avec l'option **--repository-name**).
   + L'ID de validation complet de la validation dans la branche de destination dans laquelle la demande d'extraction est fusionnée (avec l'option **--before-commit-id**).
   + L'ID de validation complet de la validation dans la branche source qui correspond à la pointe actuelle de la branche associée à la demande d'extraction lorsque vous postez le commentaire (avec l'option **--after-commit-id**).
   + Un jeton d'idempotence unique généré par le client (avec l'option **--client-request-token**).
   + Le contenu de votre commentaire (avec l'option **--content**).
   + Une liste d'informations concernant l'emplacement de ce commentaire, y compris :
     + Le nom du fichier en cours de comparaison, y compris son extension et le sous-répertoire, le cas échéant (avec l'attribut **filePath**).
     + Le numéro de ligne de la modification dans un fichier de comparaison (avec l'attribut **filePosition**).
     + Une mention indiquant si le commentaire sur la modification se situe « avant » ou « après » dans la comparaison entre les branches source et de destination (avec l'attribut **relativeFileVersion**).

   Par exemple, utilisez cette commande pour ajouter le commentaire *"These don't appear to be used anywhere. Can we remove them?"* sur la modification apportée au *ahs\$1count.py* fichier dans une pull request avec l'ID de *47* dans un référentiel nommé*MyDemoRepo*.

   ```
   aws codecommit post-comment-for-pull-request --pull-request-id "47" --repository-name MyDemoRepo --before-commit-id 317f8570EXAMPLE --after-commit-id 5d036259EXAMPLE --client-request-token 123Example --content "These don't appear to be used anywhere. Can we remove them?" --location filePath=ahs_count.py,filePosition=367,relativeFileVersion=AFTER   
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit.

   ```
   { 
            "afterBlobId": "1f330709EXAMPLE",
            "afterCommitId": "5d036259EXAMPLE",
            "beforeBlobId": "80906a4cEXAMPLE",
            "beforeCommitId": "317f8570EXAMPLE",
            "comment": {
                  "authorArn": "arn:aws:iam::111111111111:user/Saanvi_Sarkar",
                  "clientRequestToken": "123Example",
                  "commentId": "abcd1234EXAMPLEb5678efgh",
                  "content": "These don't appear to be used anywhere. Can we remove them?",
                  "creationDate": 1508369622.123,
                  "deleted": false,
                  "lastModifiedDate": 1508369622.123,
                  "callerReactions": [],
                  "reactionCounts": []
               }
                "location": { 
                  "filePath": "ahs_count.py",
                  "filePosition": 367,
                  "relativeFileVersion": "AFTER"
                },
            "repositoryName": "MyDemoRepo",
            "pullRequestId": "47"
    }
   ```

1. Pour afficher les commentaires pour une demande d'extraction, exécutez la commande **get-comments-for-pull-request**, en spécifiant :
   + Le nom du CodeCommit dépôt (avec l'`--repository-name`option).
   + L'ID généré par le système pour la demande d'extraction (avec l'option `--pull-request-id`).
   + (Facultatif) Un jeton d'énumération pour renvoyer le prochain lot de résultats (avec l'option `--next-token`).
   + (Facultatif) Un entier non négatif pour limiter le nombre de résultats renvoyés (avec l'option `--max-results`).

   Par exemple, utilisez cette commande pour afficher les commentaires concernant une demande d'extraction dont l'ID est 42.

   ```
   aws codecommit get-comments-for-pull-request --pull-request-id 42
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit.

   ```
   {
      "commentsForPullRequestData": [ 
         { 
            "afterBlobId": "1f330709EXAMPLE",
            "afterCommitId": "5d036259EXAMPLE",
            "beforeBlobId": "80906a4cEXAMPLE",
            "beforeCommitId": "317f8570EXAMPLE",
            "comments": [ 
               { 
                  "authorArn": "arn:aws:iam::111111111111:user/Saanvi_Sarkar",
                  "clientRequestToken": "",
                  "commentId": "abcd1234EXAMPLEb5678efgh",
                  "content": "These don't appear to be used anywhere. Can we remove them?",
                  "creationDate": 1508369622.123,
                  "deleted": false,
                  "lastModifiedDate": 1508369622.123,
                  "callerReactions": [],
                  "reactionCounts": 
                   {
                     "THUMBSUP" : 6,
                     "CONFUSED" : 1
                   }
               },
               {
                  "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
                  "clientRequestToken": "",
                  "commentId": "442b498bEXAMPLE5756813",
                  "content": "Good catch. I'll remove them.",
                  "creationDate": 1508369829.104,
                  "deleted": false,
                  "lastModifiedDate": 150836912.273,
                  "callerReactions": ["THUMBSUP"]
                  "reactionCounts": 
                   {
                     "THUMBSUP" : 14
                   }
                }
            ],
            "location": { 
               "filePath": "ahs_count.py",
               "filePosition": 367,
               "relativeFileVersion": "AFTER"
            },
            "repositoryName": "MyDemoRepo",
            "pullRequestId": "42"
         }
      ],
      "nextToken": "exampleToken"
   }
   ```

1. <a name="update-pull-request-approval-state"></a>Pour approuver ou annuler l'approbation d'une demande d'extraction, exécutez la commande **update-pull-request-approval-state** en spécifiant :
   + L'ID de la demande d'extraction (avec l'option **--pull-request-id**).
   + L'ID de révision de la demande d'extraction (avec l'option **--revision-id option)**). Vous pouvez obtenir l'ID de révision actuel d'une demande d'extraction à l'aide de la commande [get-pull-request](how-to-view-pull-request.md#get-pull-request).
   + L'état d'approbation que vous souhaitez appliquer (avec l'option **--approval-state**). Les états d'approbation valides comprennent `APPROVE` et `REVOKE`.

   Par exemple, utilisez cette commande pour approuver une pull request avec l'ID *27* et l'ID de révision de*9f29d167EXAMPLE*.

   ```
   aws codecommit update-pull-request-approval-state --pull-request-id 27 --revision-id 9f29d167EXAMPLE --approval-state "APPROVE"
   ```

   Si elle aboutit, cette commande ne renvoie rien.

1. Pour publier une réponse à un commentaire dans une demande d'extraction, exécutez la commande **post-comment-reply**, en spécifiant :
   + L'ID, généré par le système, du commentaire auquel vous souhaitez répondre (avec l'option **--in-reply-to**).
   + Un jeton d'idempotence unique généré par le client (avec l'option **--client-request-token**).
   + Le contenu de votre réponse (avec l'option**--content**). 

    Par exemple, utilisez cette commande pour ajouter la réponse *"Good catch. I'll remove them."* au commentaire avec l'ID généré par le système de. *abcd1234EXAMPLEb5678efgh* 

   ```
   aws codecommit post-comment-reply --in-reply-to abcd1234EXAMPLEb5678efgh --content "Good catch. I'll remove them." --client-request-token 123Example
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit.

   ```
   { 
       "comment": {
           "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
           "clientRequestToken": "123Example",
           "commentId": "442b498bEXAMPLE5756813",
           "content": "Good catch. I'll remove them.",
           "creationDate": 1508369829.136,
           "deleted": false,
           "lastModifiedDate": 150836912.221,
           "callerReactions": [],
           "reactionCounts": []
       }
    }
   ```

# Mise à jour d’une demande d'extraction
<a name="how-to-update-pull-request"></a>

Vous pouvez mettre à jour une pull request avec d'autres modifications de code en envoyant des validations vers la branche source d'une pull request ouverte. Pour de plus amples informations, veuillez consulter [Créez un commit dans AWS CodeCommit](how-to-create-commit.md).

Vous pouvez utiliser la AWS CodeCommit console ou le AWS CLI pour mettre à jour le titre ou la description d'une pull request. Vous souhaiterez peut-être mettre à jour le titre ou la description de la pull request pour les raisons suivantes :
+ Le autres utilisateurs ne comprennent pas la description ou le titre d'origine est trompeur.
+ Vous souhaitez que le titre ou la description reflète les modifications apportées à la branche source d'une demande d'extraction ouverte.

## Mettre à jour une pull request (console)
<a name="how-to-update-pull-request-console"></a>

Vous pouvez utiliser la CodeCommit console pour mettre à jour le titre et la description d'une pull request dans un CodeCommit référentiel. Pour mettre à jour le code de la pull request, la commande push effectue des validations dans la branche source d'une pull request ouverte.

1. Ouvrez la CodeCommit console sur [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Dans **Repositories (Référentiels)**, sélectionnez le nom du référentiel dans lequel vous voulez mettre à jour une demande d'extraction. 

1. Dans le volet de navigation, choisissez **Demandes d'extraction**.

1. Par défaut, une liste de toutes les demandes d'extraction ouvertes s'affiche. Choisissez la demande d'extraction ouverte que vous souhaitez mettre à jour.

1. Dans la demande d'extraction, choisissez **Details (Détails)**, puis choisissez **Edit details (Modifier les détails)** pour modifier le titre ou la description.
**Note**  
Vous ne pouvez pas mettre à jour le titre ou la description d'une demande d'extraction fermée ou fusionnée.

## Mettre à jour les pull requests (AWS CLI)
<a name="how-to-update-pull-request-cli"></a>

Pour utiliser AWS CLI des commandes avec CodeCommit, installez le AWS CLI. Pour de plus amples informations, veuillez consulter [Référence des commandes en ligne](cmd-ref.md). 

Vous pourriez également être intéressé par les commandes suivantes :
+ **[update-pull-request-approval-state](how-to-review-pull-request.md#update-pull-request-approval-state)**, pour approuver ou annuler l'approbation d'une demande d'extraction.
+ [**create-pull-request-approval-rule**](how-to-create-pull-request-approval-rule.md#how-to-create-pull-request-approval-rule-cli), pour créer une règle d'approbation pour une demande d'extraction.
+ [**delete-pull-request-approval-rule**](how-to-edit-delete-pull-request-approval-rule.md#delete-pull-request-approval-rule), pour supprimer une règle d'approbation pour une demande d'extraction.
+ [Créez un commit à l'aide du AWS CLI](how-to-create-commit.md#how-to-create-commit-cli)ou [Création d'un commit à l'aide d'un client Git](how-to-create-commit.md#how-to-create-commit-git) pour créer et appliquer des modifications de code supplémentaires à la branche source d'une pull request ouverte.

**Pour utiliser le AWS CLI pour mettre à jour les pull requests dans un CodeCommit référentiel**

1. Pour mettre à jour le titre d'une demande d'extraction dans un référentiel, exécutez la commande **update-pull-request-title**, en spécifiant les éléments suivants :
   + L'ID de la demande d'extraction (avec l'option **--pull-request-id**).
   + Le titre de la demande d'extraction (avec l'option **--title**).

   Par exemple, pour mettre à jour le titre d'une pull request avec l'ID de *47* :

   ```
   aws codecommit update-pull-request-title --pull-request-id 47 --title "Consolidation of global variables - updated review"  
   ```

1. Pour mettre à jour la description d'une demande d'extraction dans un référentiel, exécutez la commande **update-pull-request-description**, en spécifiant les éléments suivants :
   + L'ID de la demande d'extraction (avec l'option **--pull-request-id**).
   + La description (avec l'option **--description**). 

    Par exemple, pour mettre à jour la description d'une pull request avec l'ID de *47* :

   ```
   aws codecommit update-pull-request-description --pull-request-id 47 --description "Updated the pull request to remove unused global variable."
   ```

# Modifier ou supprimer une règle d'approbation pour une pull request
<a name="how-to-edit-delete-pull-request-approval-rule"></a>

Lorsqu'il existe une règle d'approbation sur une demande d'extraction, vous ne pouvez pas fusionner cette demande d'extraction tant que ses conditions n'ont pas été satisfaites. Vous pouvez modifier les règles d'approbation des demandes d'extraction afin de faciliter la satisfaction de leurs conditions ou d'augmenter la rigueur des révisions. Vous pouvez modifier le nombre d'utilisateurs devant approuver une demande d'extraction. Vous pouvez également ajouter, supprimer ou modifier l'appartenance à un pool d'utilisateurs approuvés pour la règle. Enfin, si vous ne souhaitez plus utiliser une règle d'approbation pour une demande d'extraction, vous pouvez la supprimer.

**Note**  
Vous pouvez également outrepasser les règles d'approbation d'une demande d'extraction. Pour de plus amples informations, veuillez consulter [Annuler les règles d'approbation relatives à une pull request](how-to-override-approval-rules.md).

Vous pouvez utiliser la AWS CodeCommit console ou le AWS CLI pour modifier et supprimer les règles d'approbation de votre référentiel. 

**Topics**
+ [Modifier ou supprimer une règle d'approbation pour une pull request (console)](#how-to-edit-delete-pull-request-approval-rule-console)
+ [Modifier ou supprimer une règle d'approbation pour une pull request (AWS CLI)](#how-to-edit-delete-pull-request-approval-rule-cli)

## Modifier ou supprimer une règle d'approbation pour une pull request (console)
<a name="how-to-edit-delete-pull-request-approval-rule-console"></a>

Vous pouvez utiliser la CodeCommit console pour modifier ou supprimer une règle d'approbation pour une pull request dans un CodeCommit référentiel. 

1. Ouvrez la CodeCommit console sur [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Dans **Repositories (Référentiels)**, choisissez le nom du référentiel dans lequel vous souhaitez modifier ou supprimer une règle d'approbation pour une demande d'extraction. 

1. Dans le volet de navigation, choisissez **Pull Requests**.

1. Choisissez la demande d'extraction dans laquelle vous souhaitez modifier ou supprimer une règle d'approbation. Vous pouvez uniquement modifier et supprimer les règles d'approbation des demandes d'extraction ouvertes.  
![\[Liste des pull requests pour un dépôt dans la CodeCommit console.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Dans la demande d'extraction, choisissez **Approvals (Approbations)**, puis choisissez la règle que vous souhaitez modifier ou supprimer dans la liste. Effectuez l’une des actions suivantes :
   + Si vous souhaitez modifier la règle, choisissez **Edit (Modifier)**. 
   + Si vous souhaitez supprimer la règle, choisissez **Delete (Supprimer)**, puis suivez les instructions pour vérifier la suppression de la règle.

1. Dans **Edit approval rule (Modifier la règle d'approbation)**, apportez les modifications souhaitées à la règle, puis choisissez **Submit (Envoyer)**.  
![\[Modification d'une règle d'approbation\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-edit-rule.png)

1. Lorsque vous avez terminé de configurer la règle d'approbation, choisissez **Submit (Envoyer)**.

 

## Modifier ou supprimer une règle d'approbation pour une pull request (AWS CLI)
<a name="how-to-edit-delete-pull-request-approval-rule-cli"></a>

Pour utiliser AWS CLI des commandes avec CodeCommit, installez le AWS CLI. Pour de plus amples informations, veuillez consulter [Référence des commandes en ligne](cmd-ref.md). 

Vous pouvez utiliser le AWS CLI pour modifier le contenu d'une règle d'approbation et pour supprimer une règle d'approbation. 

**Note**  
Vous pourriez également être intéressé par les commandes suivantes :  
**[update-pull-request-approval-state](how-to-review-pull-request.md#update-pull-request-approval-state)**, pour approuver ou annuler l'approbation d'une demande d'extraction.
[**get-pull-request-approval-states**](how-to-view-pull-request.md#get-pull-request-approval-state), pour afficher les approbations pour la demande d'extraction.
[**evaluate-pull-request-approval-rules**](how-to-merge-pull-request.md#evaluate-pull-request-approval-rules), pour déterminer si les règles d'approbation d'une demande d'extraction ont été satisfaites.

**Pour utiliser la règle AWS CLI permettant de modifier ou de supprimer une règle d'approbation pour une pull request dans un CodeCommit référentiel**<a name="update-pull-request-approval-rule-content"></a>

1. Pour modifier une règle d'approbation, exécutez la commande **update-pull-request-approval-rule-content**, en spécifiant :
   + L'ID de la demande d'extraction (avec l'option **--id**).
   + Le nom de la règle d'approbation (avec l'option **--approval-rule-name**).
   + Le contenu de la règle d'approbation (avec l'option **--approval-rule-content**).

   Cet exemple met à jour une règle d'approbation nommée *Require two approved approvers* pour une pull request avec l'ID de*27*. La règle nécessite l'approbation d'un utilisateur issu d'un pool d'approbation qui inclut n'importe quel utilisateur IAM du compte *123456789012* Amazon Web Services :

   ```
   aws codecommit update-pull-request-approval-rule-content --pull-request-id 27 --approval-rule-name "Require two approved approvers" --approval-rule-content "{Version: 2018-11-08, Statements: [{Type: \"Approvers\", NumberOfApprovalsNeeded: 1, ApprovalPoolMembers:[\"CodeCommitApprovers:123456789012:user/*\"]}]}}"
   ```

1. <a name="delete-pull-request-approval-rule"></a>Pour supprimer une règle d'approbation, exécutez la commande **delete-pull-request-approval-rule**, en spécifiant :
   + L'ID de la demande d'extraction (avec l'option **--id**).
   + Le nom de la règle d'approbation (avec l'option **--approval-rule-name**).

   Par exemple, pour supprimer une règle d'approbation portant le nom *My Approval Rule* d'une pull request avec l'ID de *15* :

   ```
   aws codecommit delete-pull-request-approval-rule --pull-request-id 15 --approval-rule-name "My Approval Rule"
   ```

# Annuler les règles d'approbation relatives à une pull request
<a name="how-to-override-approval-rules"></a>

Dans le cours normal du développement, vous souhaitez que les utilisateurs respectent les conditions des règles d'approbation avant de fusionner les demandes d'extraction. Cependant, il peut arriver que vous deviez accélérer la fusion d'une demande d'extraction. Par exemple, il peut arriver que vous souhaitiez mettre un correctif de bogue en production, mais que personne dans le groupe d'approbation ne soit disponible pour approuver la demande d'extraction. Dans de tels cas, vous pouvez choisir d'outrepasser les règles d'approbation pour une demande d'extraction. Vous pouvez outrepasser toutes les règles d'approbation d'une demande d'extraction, y compris celles créées spécifiquement pour cette dernière et générées à partir d'un modèle de règle d'approbation. Vous ne pouvez pas outrepasser de manière sélective une seule règle d'approbation ; vous ne pouvez que toutes les outrepasser. Après avoir mis de côté les exigences de règle d'approbation en outrepassant les règles, vous pouvez fusionner la demande d'extraction vers sa branche de destination.

Lorsque vous outrepassez les règles d'approbation pour une demande d'extraction, les informations sur l'utilisateur auteur de cette opération sont enregistrées dans l'activité de la demande d'extraction. Cela vous permet de revenir dans l'historique d'une demande d'extraction et de vérifier qui a outrepassé les règles. Vous pouvez également choisir d'annuler le contournement des règles si la demande d'extraction est toujours ouverte. Une fois la demande d'extraction fusionnée, vous ne pouvez plus annuler le contournement.

**Topics**
+ [Annuler les règles d'approbation (console)](#how-to-override-approval-rules-console)
+ [Annuler les règles d'approbation ()AWS CLI](#how-to-override-approval-rules-cli)

## Annuler les règles d'approbation (console)
<a name="how-to-override-approval-rules-console"></a>

Vous pouvez outrepasser les exigences de règles d'approbation pour une demande d'extraction dans la console, dans le cadre de l'examen d'une demande d'extraction. Si vous changez d'avis, vous pouvez annuler ce contournement. Les exigences de la règle d'approbation sont alors de nouveau appliquées. Vous ne pouvez outrepasser les règles d'approbation ou annuler leur contournement que si la demande d'extraction est toujours ouverte. Si elle est fusionnée ou fermée, vous ne pouvez pas modifier son état de contournement.

1. Ouvrez la CodeCommit console sur [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Dans **Référentiels**, sélectionnez le nom du référentiel. 

1. Dans le volet de navigation, choisissez **Demandes d'extraction**. Choisissez la demande d'extraction pour laquelle vous souhaitez outrepasser les exigences des règles d'approbation ou annuler leur contournement.

1. Sous l'onglet **Approvals (Approbations)**, choisissez **Override approval rules (Outrepasser les règles d'approbation)**. Les exigences sont mises de côté et le texte du bouton devient **Revoke override (Annuler le contournement)**. Pour réappliquer les exigences de la règle d'approbation, choisissez **Revoke override (Annuler le contournement)**.

## Annuler les règles d'approbation ()AWS CLI
<a name="how-to-override-approval-rules-cli"></a>

Vous pouvez utiliser le AWS CLI pour annuler les exigences des règles d'approbation. Vous pouvez également l'utiliser pour afficher le statut de contournement d'une demande d'extraction.<a name="override-approval-rules"></a>

## Pour outrepasser les exigences des règles d'approbation pour une demande d'extraction
<a name="override-approval-rules"></a>

1. Depuis le terminal ou la ligne de commande, exécutez la commande **override-pull-request-approval-rules**, en spécifiant :
   + L'ID généré par le système pour la demande d'extraction.
   + L'ID de révision le plus récent de la demande d'extraction. Pour afficher ces informations, utilisez **get-pull-request**.
   + Le statut que vous souhaitez pour le contournement, `OVERRIDE` ou `REVOKE`. Le statut `REVOKE` supprime le statut `OVERRIDE` mais n'est pas enregistré.

   Par exemple, pour outrepasser les règles d'approbation d'une demande d'extraction ayant l'ID **34** et l'ID de révision **927df8d8EXAMPLE** :

   ```
   aws codecommit override-pull-request-approval-rules --pull-request-id 34 --revision-id 927df8d8dEXAMPLE --override-status OVERRIDE
   ```

1. Si elle aboutit, cette commande ne renvoie rien.

1. Pour annuler le contournement pour une demande d'extraction ayant l'ID **34** et l'ID de révision **927df8d8EXAMPLE** :

   ```
   aws codecommit override-pull-request-approval-rules --pull-request-id 34 --revision-id 927df8d8dEXAMPLE --override-status REVOKE
   ```<a name="get-override-status"></a>

## Pour obtenir des informations sur le statut de contournement d'une demande d'extraction
<a name="get-override-status"></a>

1. Depuis le terminal ou la ligne de commande, exécutez la commande **get-pull-request-override-state**, en spécifiant :
   + L'ID généré par le système pour la demande d'extraction.
   + L'ID de révision le plus récent de la demande d'extraction. Pour afficher ces informations, utilisez **get-pull-request**.

   Par exemple, pour afficher le statut de contournement d'une demande d'extraction ayant l'ID **34** et l'ID de révision **927df8d8EXAMPLE** :

   ```
   aws codecommit get-pull-request-override-state --pull-request-id 34 --revision-id 927df8d8dEXAMPLE
   ```

1. Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
       "overridden": true,
       "overrider": "arn:aws:iam::123456789012:user/Mary_Major"
   }
   ```

# Fusionner une pull request dans un AWS CodeCommit référentiel
<a name="how-to-merge-pull-request"></a>

Une fois que votre code a été révisé et que toutes les règles d'approbation (le cas échéant) de la demande d'extraction ont été satisfaites, vous pouvez fusionner une demande d'extraction de l'une des manières suivantes :
+ <a name="is-mergable"></a>Vous pouvez utiliser la console pour fusionner votre branche source dans la branche de destination à l'aide d'une des stratégies de fusion disponibles, ce qui ferme automatiquement la demande d'extraction. Vous pouvez également résoudre les conflits de fusion dans la console. La console affiche un message indiquant si la demande d'extraction peut être fusionnée ou si des conflits doivent être résolus. Lorsque tous les conflits sont résolus et que vous choisissez **Merge (Fusionner)**, la fusion est effectuée à l'aide de la stratégie de fusion que vous choisissez. La fusion rapide (fast-forward) est la stratégie de fusion par défaut, qui est l'option par défaut pour Git. En fonction de l'état du code dans les branches source et de destination, cette stratégie peut ne pas être disponible, mais d'autres le sont, comme la fusion par écrasement ou la fusion tripartite.
+ Vous pouvez utiliser le AWS CLI pour fusionner et fermer la pull request en utilisant la stratégie de fusion rapide, squash ou tridirectionnelle. 
+ <a name="why-git-merge"></a>Sur votre ordinateur local, vous pouvez utiliser la commande **git merge** pour fusionner la branche source dans la branche de destination, puis transmettre le code fusionné à la branche de destination. Cette approche a des inconvénients que vous devez examiner attentivement. Elle fusionne la demande d'extraction, que les exigences relatives aux règles d'approbation de la demande d'extraction aient été satisfaites ou non, en contournant ces contrôles. La fusion et le transfert de la branche de destination ferme également automatiquement la demande d'extraction si cette dernière est fusionnée à l'aide de la stratégie de fusion rapide. L'un des avantages de cette approche est que la **git merge** commande vous permet de choisir des options ou des stratégies de fusion qui ne sont pas disponibles dans la CodeCommit console. Pour en savoir plus sur **git merge** et les options de fusion, consultez [git-merge](https://git-scm.com/docs/git-merge) ou votre documentation Git.

CodeCommit ferme automatiquement une pull request si la branche source ou de destination de la pull request est supprimée.

**Topics**
+ [Fusionner une pull request (console)](#how-to-merge-pull-request-console)
+ [Fusionner une pull request (AWS CLI)](#how-to-merge-pull-request-cli)

## Fusionner une pull request (console)
<a name="how-to-merge-pull-request-console"></a>

Vous pouvez utiliser la CodeCommit console pour fusionner une pull request dans un CodeCommit référentiel. Lorsque le statut d'une demande d'extraction passe à **Merged (Fusionnée)**, celle-ci ne s'affiche plus dans la liste des demandes d'extraction ouvertes. Une demande d'extraction fusionnée est classée comme fermée. Le statut **Open (Ouverte)** ne peut pas lui être de nouveau affecté, mais les utilisateurs peuvent continuer à commenter les modifications et à répondre aux commentaires. Après la fusion ou la fermeture d'une demande d'extraction, vous ne pouvez plus l'approuver, annuler son approbation ou remplacer les règles d'approbation qui s'appliquent à cette demande.

1. Ouvrez la CodeCommit console sur [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Dans **Référentiels**, sélectionnez le nom du référentiel. 

1. Dans le volet de navigation, choisissez **Demandes d'extraction**.

1. Par défaut, une liste de toutes les demandes d'extraction ouvertes s'affiche. Choisissez la demande d'extraction ouverte que vous souhaitez fusionner.

1. Dans la demande d'extraction, choisissez **Approvals (Approbations)**. Examinez la liste des approbateurs et vérifiez que toutes les règles d'approbation (le cas échéant) ont été satisfaites. Vous ne pouvez pas fusionner une demande d'extraction si une ou plusieurs règles d'approbation ont le statut **Rule not satisfied (Règle non satisfaite)**. Si personne n'a approuvé la demande d'extraction, voyez si vous souhaitez la fusionner ou si vous souhaitez attendre les approbations.
**Note**  
Si une règle d'approbation a été créée pour une demande d'extraction, vous pouvez la modifier ou la supprimer pour débloquer la fusion. Si la règle d'approbation a été créée avec un modèle de règle d'approbation, vous ne pouvez pas la modifier ou la supprimer. Vous pouvez uniquement choisir de contourner les exigences. Pour de plus amples informations, veuillez consulter [Annuler les règles d'approbation relatives à une pull request](how-to-override-approval-rules.md).  
![\[Demande d'extraction montrant une règle d'approbation dont les conditions n'ont pas été remplies et une liste d'approbateurs vide.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-approval-rule-not-met.png)

1. Choisissez **Merge (Fusionner)**.

1. Dans la demande d'extraction, choisissez entre les stratégies de fusion disponibles. Les stratégies de fusion qui ne peuvent pas être appliquées apparaissent en grisé. Si aucune stratégie de fusion n'est disponible, vous pouvez choisir de résoudre les conflits manuellement dans la CodeCommit console ou de les résoudre localement à l'aide de votre client Git. Pour de plus amples informations, veuillez consulter [Résoudre les conflits liés à une pull request dans un AWS CodeCommit référentiel](how-to-resolve-conflict-pull-request.md).  
![\[Une pull request indiquant les stratégies de fusion disponibles pour la fusion dans la CodeCommit console.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-merge-squash.png)
   + Un fusion rapide transmet la référence de la branche de destination à la validation la plus récente de la branche source. Il s'agit du comportement par défaut de Git lorsque cela est possible. Aucune validation de fusion n'est créée, mais l'historique de validation à partir de la branche source est conservé comme s'il s'était déroulé dans la branche de destination. Les fusions rapides n'apparaissent pas comme une fusion de branche dans la vue du visualiseur de validation de l'historique de la branche de destination, car aucune validation de fusion n'est créée. La pointe de la branche source est déplacée rapidement vers la pointe de la branche de destination. 
   + Une fusion par écrasement crée une validation contenant les modifications dans la branche source et applique cette validation par écrasement unique à la branche de destination. Par défaut, le message de validation pour cette validation par écrasement contient tous les messages de validation des modifications apportées à la branche source. Aucun historique de validation individuelle des modifications de branche n'est conservé. Cela peut vous aider à simplifier votre historique de référentiel tout en conservant une représentation graphique de la fusion dans la vue de visualisation de la validation de l’historique de la branche de destination. 
   + Une fusion tripartite crée une validation de fusion pour la fusion dans la branche de destination, mais conserve également les validations individuelles effectuées dans la branche source dans le cadre de l'historique de la branche de destination. Cela peut vous aider à conserver un historique complet des modifications apportées à votre référentiel.

1. Si vous choisissez la stratégie de fusion par écrasement ou tripartite, vérifiez le message de validation généré automatiquement et modifiez-le si vous souhaitez modifier les informations. Ajoutez votre nom et votre adresse e-mail pour l'historique des validations.

1. (Facultatif) Désélectionnez cette option pour supprimer la branche source dans le cadre de la fusion. L'option par défaut consiste à supprimer la branche source lorsqu'une demande d'extraction est fusionnée.

1. Choisissez **Merge pull request (Fusionner la demande d'extraction)** pour terminer la fusion.

## Fusionner une pull request (AWS CLI)
<a name="how-to-merge-pull-request-cli"></a>

Pour utiliser AWS CLI des commandes avec CodeCommit, installez le AWS CLI. Pour de plus amples informations, veuillez consulter [Référence des commandes en ligne](cmd-ref.md). 

**Pour utiliser le AWS CLI pour fusionner des pull requests dans un CodeCommit référentiel**

1. <a name="evaluate-pull-request-approval-rules"></a>Pour savoir si toutes ses règles d'approbation d'une demande d'extraction ont été satisfaites et si la demande est prête à être fusionnée, exécutez la commande **evaluate-pull-request-approval-rules** en spécifiant :
   + L'ID de la demande d'extraction (avec l'option **--pull-request-id**).
   + L'ID de révision de la demande d'extraction (avec l'option **--revision-id option)**). Vous pouvez obtenir l'ID de révision actuel d'une demande d'extraction à l'aide de la commande **[get-pull-request](how-to-view-pull-request.md#get-pull-request)**.

   Par exemple, pour évaluer l'état des règles d'approbation d'une pull request avec un ID *27* et un ID de révision de *9f29d167EXAMPLE* :

   ```
   aws codecommit evaluate-pull-request-approval-rules --pull-request-id 27 --revision-id 9f29d167EXAMPLE
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
       "evaluation": {
           "approved": false,
           "approvalRulesNotSatisfied": [
               "Require two approved approvers"
           ],
           "overridden": false,
           "approvalRulesSatisfied": []
       }
   }
   ```
**Note**  
Ce résultat indique qu'une demande d'extraction n'est pas fusionnable, car les conditions d'une règle d'approbation n'ont pas été satisfaites. Pour fusionner cette demande d'extraction, vous pouvez demander aux réviseurs de l'approuver pour qu'elle respecte les conditions de la règle. Selon vos autorisations et la façon dont la règle a été créée, vous pouvez également modifier, contourner ou supprimer la règle. Pour plus d’informations, consultez [Réviser une demande d'extraction](how-to-review-pull-request.md), [Annuler les règles d'approbation relatives à une pull request](how-to-override-approval-rules.md) et [Modifier ou supprimer une règle d'approbation pour une pull request](how-to-edit-delete-pull-request-approval-rule.md). 

1. Pour fusionner et fermer une demande d'extraction à l'aide de la stratégie de fusion rapide, exécutez la commande **merge-pull-request-by-fast-forward**, en spécifiant les éléments suivants :
   + L'ID de la demande d'extraction (avec l'option **--pull-request-id**).
   + L'ID de validation complet de la pointe de la branche source (avec l'option**--source-commit-id**). 
   + Le nom du référentiel (avec l'option **--repository-name**).

    Par exemple, pour fusionner et fermer une pull request avec l'ID *47* et l'ID de commit source de *99132ab0EXAMPLE* dans un référentiel nommé *MyDemoRepo* :

   ```
   aws codecommit merge-pull-request-by-fast-forward --pull-request-id 47 --source-commit-id 99132ab0EXAMPLE --repository-name MyDemoRepo
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 1,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "I want one approver for this pull request",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "authorArn": "arn:aws:iam::123456789012:user/Li_Juan",
           "clientRequestToken": "",
           "creationDate": 1508530823.142,
           "description": "Review the latest changes and updates to the global variables",
           "lastActivityDate": 1508887223.155,
           "pullRequestId": "47",
           "pullRequestStatus": "CLOSED",
           "pullRequestTargets": [
               {
                   "destinationCommit": "9f31c968EXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": true,
                       "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major"
                   },
                   "repositoryName": "MyDemoRepo",
                   "sourceCommit": "99132ab0EXAMPLE",
                   "sourceReference": "refs/heads/variables-branch"
               }
           ],
           "title": "Consolidation of global variables"
       }
   }
   ```

1. Pour fusionner et fermer une demande d'extraction à l'aide de la stratégie de fusion par écrasement, exécutez la commande **merge-pull-request-by-squash**, en spécifiant les éléments suivants :
   + L'ID de la demande d'extraction (avec l'option **--pull-request-id**).
   + L'ID de validation complet de la pointe de la branche source (avec l'option**--source-commit-id**). 
   + Le nom du référentiel (avec l'option **--repository-name**).
   + Le niveau de détails de conflit que vous souhaitez utiliser (avec l'option **--conflict-detail-level**). Si vous ne spécifiez rien, la valeur par défaut **`FILE_LEVEL`** est utilisée.
   + La stratégie de résolution des conflits que vous souhaitez utiliser (avec l'option **--conflict-resolution-strategy**). Si vous ne spécifiez rien, la valeur par défaut `NONE` est utilisée et les conflits doivent être résolus manuellement.
   + Le message de validation à inclure (avec l'option **--commit-message**).
   + Le nom à utiliser pour la validation (avec l'option **--author-name**).
   + L'adresse e-mail à utiliser pour la validation (avec l'option **--email**).
   + Si les dossiers vides doivent être conservés (avec l'option **--keep-empty-folders**).

   L'exemple suivant fusionne et ferme une pull request avec l'ID *47* et l'ID de validation source de *99132ab0EXAMPLE* dans un référentiel nommé*MyDemoRepo*. Il utilise les détails de conflits `LINE_LEVEL` et la stratégie de résolution des conflits `ACCEPT_SOURCE` :

   ```
   aws codecommit merge-pull-request-by-squash --pull-request-id 47 --source-commit-id 99132ab0EXAMPLE --repository-name MyDemoRepo --conflict-detail-level LINE_LEVEL --conflict-resolution-strategy ACCEPT_SOURCE --author-name "Jorge Souza" --email "jorge_souza@example.com" --commit-message "Merging pull request 47 by squash and accepting source in merge conflicts"
   ```

   Si elle aboutit, cette commande produit le même type de sortie qu’une fusion rapide, semblable à ce qui suit :

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "2-approver-rule-for-main",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "originApprovalRuleTemplate": {
                       "approvalRuleTemplateId": "dd8b17fe-EXAMPLE",
                       "approvalRuleTemplateName": "2-approver-rule-for-main"
                   },
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "authorArn": "arn:aws:iam::123456789012:user/Li_Juan",
           "clientRequestToken": "",
           "creationDate": 1508530823.142,
           "description": "Review the latest changes and updates to the global variables",
           "lastActivityDate": 1508887223.155,
           "pullRequestId": "47",
           "pullRequestStatus": "CLOSED",
           "pullRequestTargets": [
               {
                   "destinationCommit": "9f31c968EXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": true,
                       "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major"
                   },
                   "repositoryName": "MyDemoRepo",
                   "sourceCommit": "99132ab0EXAMPLE",
                   "sourceReference": "refs/heads/variables-branch"
               }
           ],
           "title": "Consolidation of global variables"
       }
   }
   ```

1. Pour fusionner et fermer une demande d'extraction à l'aide de la stratégie de fusion tripartite, exécutez la commande **merge-pull-request-by-three-way**, en spécifiant les éléments suivants :
   + L'ID de la demande d'extraction (avec l'option **--pull-request-id**).
   + L'ID de validation complet de la pointe de la branche source (avec l'option**--source-commit-id**). 
   + Le nom du référentiel (avec l'option **--repository-name**).
   + Le niveau de détails de conflit que vous souhaitez utiliser (avec l'option **--conflict-detail-level**). Si vous ne spécifiez rien, la valeur par défaut **`FILE_LEVEL`** est utilisée.
   + La stratégie de résolution des conflits que vous souhaitez utiliser (avec l'option **--conflict-resolution-strategy**). Si vous ne spécifiez rien, la valeur par défaut `NONE` est utilisée et les conflits doivent être résolus manuellement.
   + Le message de validation à inclure (avec l'option **--commit-message**).
   + Le nom à utiliser pour la validation (avec l'option **--author-name**).
   + L'adresse e-mail à utiliser pour la validation (avec l'option **--email**).
   + Si les dossiers vides doivent être conservés (avec l'option **--keep-empty-folders**).

   L'exemple suivant fusionne et ferme une pull request avec l'ID *47* et l'ID de validation source de *99132ab0EXAMPLE* dans un référentiel nommé*MyDemoRepo*. Il utilise les options par défaut pour le détail des conflits et la stratégie de résolution des conflits :

   ```
   aws codecommit merge-pull-request-by-three-way --pull-request-id 47 --source-commit-id 99132ab0EXAMPLE --repository-name MyDemoRepo --author-name "Maria Garcia" --email "maria_garcia@example.com" --commit-message "Merging pull request 47 by three-way with default options"
   ```

   Si elle aboutit, cette commande produit le même type de sortie qu’une fusion rapide, similaire à ce qui suit :

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "2-approver-rule-for-main",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "originApprovalRuleTemplate": {
                       "approvalRuleTemplateId": "dd8b17fe-EXAMPLE",
                       "approvalRuleTemplateName": "2-approver-rule-for-main"
                   },
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "authorArn": "arn:aws:iam::123456789012:user/Li_Juan",
           "clientRequestToken": "",
           "creationDate": 1508530823.142,
           "description": "Review the latest changes and updates to the global variables",
           "lastActivityDate": 1508887223.155,
           "pullRequestId": "47",
           "pullRequestStatus": "CLOSED",
           "pullRequestTargets": [
               {
                   "destinationCommit": "9f31c968EXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": true,
                       "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major"
                   },
                   "repositoryName": "MyDemoRepo",
                   "sourceCommit": "99132ab0EXAMPLE",
                   "sourceReference": "refs/heads/variables-branch"
               }
           ],
           "title": "Consolidation of global variables"
       }
   }
   ```

# Résoudre les conflits liés à une pull request dans un AWS CodeCommit référentiel
<a name="how-to-resolve-conflict-pull-request"></a>

Si votre demande d'extraction présente des conflits et ne peut pas être fusionnée, vous pouvez essayer de résoudre les conflits de diverses manières :
+ Sur votre ordinateur local, vous pouvez utiliser la commande **git diff** pour rechercher les conflits entre les deux branches et apporter des modifications afin de les résoudre. Vous pouvez également utiliser un outil de recherche de différences ou un autre logiciel pour vous aider à trouver et à résoudre les différences. Une fois que vous les avez résolus de manière satisfaisante, vous pouvez appliquer à votre branche source les modifications contenant les conflits résolus, ce qui met à jour la pull request. Pour plus d'informations sur **git diff** et **git difftool**, consultez la documentation Git.
+ Dans la console, vous pouvez choisir **Resolve conflicts (Résoudre les conflits)**. Cette option permet d'ouvrir un éditeur de texte brut qui affiche les conflits de la même manière que la commande **git diff**. Vous pouvez examiner manuellement les conflits dans chaque fichier concerné, apporter des modifications, puis mettre à jour la demande d'extraction avec vos modifications.
+ Dans le AWS CLI, vous pouvez utiliser le AWS CLI pour obtenir des informations sur les conflits de fusion et créer un commit de fusion non référencé pour tester une fusion. 

**Topics**
+ [Résoudre les conflits dans une pull request (console)](#how-to-resolve-conflict-pull-request-console)
+ [Résoudre les conflits dans une pull request (AWS CLI)](#how-to-resolve-conflict-pull-request-cli)

## Résoudre les conflits dans une pull request (console)
<a name="how-to-resolve-conflict-pull-request-console"></a>

Vous pouvez utiliser la CodeCommit console pour résoudre les conflits liés à une pull request dans un CodeCommit référentiel. 

1. Ouvrez la CodeCommit console sur [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Dans **Référentiels**, sélectionnez le nom du référentiel. 

1. Dans le volet de navigation, choisissez **Demandes d'extraction**.

1. Par défaut, une liste de toutes les demandes d'extraction ouvertes s'affiche. Choisissez la demande d'extraction ouverte que vous souhaitez fusionner, mais qui contient des conflits.

1. Dans la demande d'extraction, choisissez **Resolve conflicts (Résoudre les confits)**. Cette option s'affiche uniquement s'il existe des conflits qui doivent être résolus avant que la demande d'extraction puisse être fusionnée.  
![\[Une demande d'extraction qui présente des conflits devant être résolus avant sa fusion.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-resolve-conflicts.png)

1. Une fenêtre de résolution des conflits s’ouvre et répertorie chaque fichier présentant des conflits qui doivent être résolus. Choisissez chaque fichier dans la liste pour examiner les conflits et apportez toutes les modifications nécessaires jusqu'à ce que l’ensemble des conflits soient résolus.  
![\[L’éditeur de résolution des conflits affichant un fichier avec des conflits n'ayant pas encore été résolus.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-resolve.png)
   + Vous pouvez choisir d'utiliser le contenu du fichier source, le contenu du fichier de destination ou, s’il ne s’agit pas d’un fichier binaire, de modifier manuellement le contenu d'un fichier de sorte qu’il contienne uniquement les modifications souhaitées. Des marqueurs de différence git standard sont utilisés pour indiquer les conflits entre les branches source et de destination (HEAD) dans le fichier.
   + Dans le cas d’un fichier binaire, d’un sous-module Git ou d’un conflit de nom de fichier/dossier, vous devez choisir d'utiliser le fichier source ou le fichier de destination pour résoudre le conflit. Vous ne pouvez pas afficher ou modifier les fichiers binaires dans la CodeCommit console.
   + En cas de conflit de mode fichier, vous pouvez résoudre ce conflit en choisissant entre le mode fichier du fichier source et le mode fichier du fichier de destination. 
   + Si vous décidez d’annuler vos modifications pour un fichier et le restaurer à son état conflictuel, choisissez **Reset file (Réinitialiser le fichier)**. Cela vous permet de résoudre les conflits de manière différente.

1. Lorsque vous êtes satisfait de vos modifications, choisissez **Update pull request (Mettre à jour la demande d'extraction)**.
**Note**  
Vous devez résoudre tous les conflits dans tous les fichiers avant de pouvoir mettre à jour correctement la demande d'extraction avec vos modifications. 

1. La demande d'extraction est mise à jour avec vos modifications et peut être fusionnée. La page de fusion s'affiche. Vous pouvez choisir de fusionner la demande d'extraction à ce stade, ou vous pouvez revenir à la liste des demandes d'extraction. 

## Résoudre les conflits dans une pull request (AWS CLI)
<a name="how-to-resolve-conflict-pull-request-cli"></a>

Pour utiliser AWS CLI des commandes avec CodeCommit, installez le AWS CLI. Pour de plus amples informations, veuillez consulter [Référence des commandes en ligne](cmd-ref.md). 

Aucune AWS CLI commande ne vous permet de résoudre les conflits dans une pull request et de fusionner cette demande. Cependant, vous pouvez utiliser des commandes individuelles pour détecter les conflits, essayez de les résoudre et tester si une demande d'extraction peut être fusionnée. Vous pouvez utiliser :
+ **get-merge-options**, pour déterminer les options disponibles pour fusionner deux spécificateurs de validation.
+ **get-merge-conflicts**, pour renvoyer une liste de fichiers avec les conflits de fusion dans une fusion entre deux spécificateurs de validation.
+ **batch-describe-merge-conflicts**, pour obtenir des informations sur tous les conflits de fusion dans les fichiers lors d'une fusion entre deux validations en utilisant une stratégie de fusion spécifiée. 
+ **describe-merge-conflicts**, pour obtenir des informations détaillées sur les conflits de fusion pour un fichier spécifique entre deux validations utilisant une stratégie de fusion spécifiée.
+ **create-unreferenced-merge-commit**, pour tester le résultat de la fusion de deux spécificateurs de validation avec une stratégie de fusion spécifiée.

1. <a name="get-merge-options"></a>Pour découvrir les options de fusion disponibles pour une fusion entre deux spécificateurs de validation, exécutez la commande **get-merge-options**, en spécifiant les éléments suivants :
   + Un spécificateur de validation pour la source de la fusion (avec l' option **--source-commit-specifier**).
   + Un spécificateur de validation de la destination de la fusion (avec l'option **--destination-commit-specifier**). 
   + Le nom du référentiel (avec l'option **--repository-name**).
   + (Facultatif) Une stratégie de résolution des conflits à utiliser (avec l'option **--conflict-resolution-strategy**).
   + (Facultatif) Le niveau de détails voulu sur les conflits (avec l'option **--conflict-detail-level**).

    Par exemple, pour déterminer les stratégies de fusion disponibles pour fusionner une branche source nommée *bugfix-1234* avec une branche de destination nommée *main* dans un référentiel nommé *MyDemoRepo* :

   ```
   aws codecommit get-merge-options --source-commit-specifier bugfix-1234 --destination-commit-specifier main --repository-name MyDemoRepo
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
       "mergeOptions": [
           "FAST_FORWARD_MERGE",
           "SQUASH_MERGE",
           "THREE_WAY_MERGE"
       ],
       "sourceCommitId": "d49940adEXAMPLE",
       "destinationCommitId": "86958e0aEXAMPLE",
       "baseCommitId": "86958e0aEXAMPLE"
   }
   ```

1. <a name="get-merge-conflict"></a>Pour obtenir une liste des fichiers contenant des conflits de fusion dans une fusion entre deux spécificateurs de validation, exécutez la commande **get-merge-conflicts**, en spécifiant les éléments suivants :
   + Un spécificateur de validation pour la source de la fusion (avec l' option **--source-commit-specifier**).
   + Un spécificateur de validation de la destination de la fusion (avec l'option **--destination-commit-specifier**). 
   + Le nom du référentiel (avec l'option **--repository-name**).
   + L'option de fusion que vous souhaitez utiliser (avec l'option **--merge-option**).
   + (Facultatif) Le niveau de détails voulu sur les conflits (avec l'option **--conflict-detail-level**).
   + (Facultatif) Une stratégie de résolution des conflits à utiliser (avec l'option **--conflict-resolution-strategy**).
   + (Facultatif) Le nombre maximum de fichiers contenant des conflits à renvoyer (avec l'option **--max-conflict-files**).

   Par exemple, pour obtenir une liste de fichiers contenant des conflits lors d'une fusion entre une branche source nommée feature-randomizationfeature et une branche de destination nommée main à l'aide de la stratégie de fusion à trois voies dans un référentiel nommé : MyDemoRepo

   ```
   aws codecommit get-merge-conflicts --source-commit-specifier feature-randomizationfeature --destination-commit-specifier main --merge-option THREE_WAY_MERGE --repository-name MyDemoRepo
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
       "mergeable": false,
       "destinationCommitId": "86958e0aEXAMPLE",
       "sourceCommitId": "6ccd57fdEXAMPLE",
       "baseCommitId": "767b6958EXAMPLE",
       "conflictMetadataList": [
           {
               "filePath": "readme.md",
               "fileSizes": {
                   "source": 139,
                   "destination": 230,
                   "base": 85
               },
               "fileModes": {
                   "source": "NORMAL",
                   "destination": "NORMAL",
                   "base": "NORMAL"
               },
               "objectTypes": {
                   "source": "FILE",
                   "destination": "FILE",
                   "base": "FILE"
               },
               "numberOfConflicts": 1,
               "isBinaryFile": {
                   "source": false,
                   "destination": false,
                   "base": false
               },
               "contentConflict": true,
               "fileModeConflict": false,
               "objectTypeConflict": false,
               "mergeOperations": {
                   "source": "M",
                   "destination": "M"
               }
           }
       ]
   }
   ```

1. <a name="batch-describe-merge-conflicts"></a>Pour obtenir des informations sur les conflits de fusion dans tous les fichiers ou dans un sous-ensemble de fichiers d’une fusion entre deux spécificateurs de validation, exécutez la commande **batch-describe-merge-conflicts**, en spécifiant les éléments suivants :
   + Un spécificateur de validation pour la source de la fusion (avec l' option **--source-commit-specifier**).
   + Un spécificateur de validation de la destination de la fusion (avec l'option **--destination-commit-specifier**). 
   + L'option de fusion que vous souhaitez utiliser (avec l'option **--merge-option**).
   + Le nom du référentiel (avec l'option **--repository-name**).
   + (Facultatif) Une stratégie de résolution des conflits à utiliser (avec l'option **--conflict-resolution-strategy**).
   + (Facultatif) Le niveau de détails voulu sur les conflits (avec l'option **--conflict-detail-level**).
   + (Facultatif) Le nombre maximum de morceaux de fusion à renvoyer (avec l'option **--max-merge-hunks**).
   + (Facultatif) Le nombre maximum de fichiers contenant des conflits à renvoyer (avec l'option **--max-conflict-files**).
   + (Facultatif) Le chemin de fichiers cibles à utiliser pour décrire les conflits (avec l'option **--file-paths**).

    Par exemple, pour déterminer les conflits de fusion liés à la fusion d'une branche source nommée *feature-randomizationfeature* avec une branche de destination nommée à *main* l'aide de la *THREE\$1WAY\$1MERGE* stratégie dans un référentiel nommé *MyDemoRepo* :

   ```
   aws codecommit batch-describe-merge-conflicts --source-commit-specifier feature-randomizationfeature --destination-commit-specifier main --merge-option THREE_WAY_MERGE --repository-name MyDemoRepo
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
       "conflicts": [
           {
               "conflictMetadata": {
                   "filePath": "readme.md",
                   "fileSizes": {
                       "source": 139,
                       "destination": 230,
                       "base": 85
                   },
                   "fileModes": {
                       "source": "NORMAL",
                       "destination": "NORMAL",
                       "base": "NORMAL"
                   },
                   "objectTypes": {
                       "source": "FILE",
                       "destination": "FILE",
                       "base": "FILE"
                   },
                   "numberOfConflicts": 1,
                   "isBinaryFile": {
                       "source": false,
                       "destination": false,
                       "base": false
                   },
                   "contentConflict": true,
                   "fileModeConflict": false,
                   "objectTypeConflict": false,
                   "mergeOperations": {
                       "source": "M",
                       "destination": "M"
                   }
               },
               "mergeHunks": [
                   {
                       "isConflict": true,
                       "source": {
                           "startLine": 0,
                           "endLine": 3,
                           "hunkContent": "VGhpcyBpEXAMPLE=="
                       },
                       "destination": {
                           "startLine": 0,
                           "endLine": 1,
                           "hunkContent": "VXNlIHRoEXAMPLE="
                       }
                   }
               ]
           }
       ],
       "errors": [],
       "destinationCommitId": "86958e0aEXAMPLE",
       "sourceCommitId": "6ccd57fdEXAMPLE",
       "baseCommitId": "767b6958EXAMPLE"
   }
   ```

1. <a name="describe-merge-conflicts"></a>Pour obtenir des informations détaillées sur n'importe quel conflit de fusion pour un fichier spécifique dans une fusion entre deux spécificateurs de validation, exécutez la commande **describe-merge-conflicts**, en spécifiant les éléments suivants :
   + Un spécificateur de validation pour la source de la fusion (avec l' option **--source-commit-specifier**).
   + Un spécificateur de validation de la destination de la fusion (avec l'option **--destination-commit-specifier**). 
   + L'option de fusion que vous souhaitez utiliser (avec l'option **--merge-option**).
   + Le chemin du fichier cible à utiliser pour décrire les conflits (avec l'option **--file-path**).
   + Le nom du référentiel (avec l'option **--repository-name**).
   + (Facultatif) Une stratégie de résolution des conflits à utiliser (avec l'option **--conflict-resolution-strategy**).
   + (Facultatif) Le niveau de détails voulu sur les conflits (avec l'option **--conflict-detail-level**).
   + (Facultatif) Le nombre maximum de morceaux de fusion à renvoyer (avec l'option **--max-merge-hunks**).
   + (Facultatif) Le nombre maximum de fichiers contenant des conflits à renvoyer (avec l'option **--max-conflict-files**).

   Par exemple, pour déterminer les conflits de fusion pour un fichier nommé *readme.md* dans une branche source nommée *feature-randomizationfeature* avec une branche de destination nommée à *main* l'aide de la *THREE\$1WAY\$1MERGE* stratégie dans un référentiel nommé *MyDemoRepo* :

   ```
   aws codecommit describe-merge-conflicts --source-commit-specifier feature-randomizationfeature --destination-commit-specifier main --merge-option THREE_WAY_MERGE --file-path readme.md --repository-name MyDemoRepo
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
       "conflictMetadata": {
           "filePath": "readme.md",
           "fileSizes": {
               "source": 139,
               "destination": 230,
               "base": 85
           },
           "fileModes": {
               "source": "NORMAL",
               "destination": "NORMAL",
               "base": "NORMAL"
           },
           "objectTypes": {
               "source": "FILE",
               "destination": "FILE",
               "base": "FILE"
           },
           "numberOfConflicts": 1,
           "isBinaryFile": {
               "source": false,
               "destination": false,
               "base": false
           },
           "contentConflict": true,
           "fileModeConflict": false,
           "objectTypeConflict": false,
           "mergeOperations": {
               "source": "M",
               "destination": "M"
           }
       },
       "mergeHunks": [
           {
               "isConflict": true,
               "source": {
                   "startLine": 0,
                   "endLine": 3,
                   "hunkContent": "VGhpcyBpEXAMPLE=="
               },
               "destination": {
                   "startLine": 0,
                   "endLine": 1,
                   "hunkContent": "VXNlIHRoEXAMPLE="
               }
           }
       ],
       "destinationCommitId": "86958e0aEXAMPLE",
       "sourceCommitId": "6ccd57fdEXAMPLE",
       "baseCommitId": "767b69580EXAMPLE"
   }
   ```

1. <a name="create-unreferenced-merge-commit"></a>Pour créer une validation non référencée qui représente le résultat de la fusion de deux spécificateurs de validation, exécutez la commande **create-unreferenced-merge-commit**, en spécifiant les éléments suivants :
   + Un spécificateur de validation pour la source de la fusion (avec l' option **--source-commit-specifier**).
   + Un spécificateur de validation de la destination de la fusion (avec l'option **--destination-commit-specifier**). 
   + L'option de fusion que vous souhaitez utiliser (avec l'option **--merge-option**).
   + Le nom du référentiel (avec l'option **--repository-name**).
   + (Facultatif) Une stratégie de résolution des conflits à utiliser (avec l'option **--conflict-resolution-strategy**).
   + (Facultatif) Le niveau de détails voulu sur les conflits (avec l'option **--conflict-detail-level**).
   + (Facultatif) Le message de validation à inclure (avec l'option **--commit-message**).
   + (Facultatif) Le nom à utiliser pour la validation (avec l'option **--name**).
   + (Facultatif) L'adresse e-mail à utiliser pour la validation (avec l'option **--email**).
   + Si les dossiers vides doivent être conservés (avec l'option **--keep-empty-folders**).

    Par exemple, pour déterminer les conflits de fusion liés à la fusion d'une branche source nommée *bugfix-1234* avec une branche de destination nommée à *main* l'aide de la stratégie ACCEPT\$1SOURCE dans un référentiel nommé : *MyDemoRepo*

   ```
   aws codecommit create-unreferenced-merge-commit --source-commit-specifier bugfix-1234 --destination-commit-specifier main --merge-option THREE_WAY_MERGE --repository-name MyDemoRepo --name "Maria Garcia" --email "maria_garcia@example.com" --commit-message "Testing the results of this merge."
   ```

   Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

   ```
   {
       "commitId": "4f178133EXAMPLE",
       "treeId": "389765daEXAMPLE"
   }
   ```

# Fermer une pull request dans un AWS CodeCommit référentiel
<a name="how-to-close-pull-request"></a>

Si vous souhaitez fermer une demande d'extraction sans fusionner le code, vous pouvez le faire de diverses manières :
+ Dans la console, vous pouvez fermer une demande d'extraction sans fusionner le code. Cela peut être utile si vous souhaitez utiliser la commande **git merge** pour fusionner manuellement les branches ou si vous avez décidé de ne pas fusionner le code de la branche source de la demande d'extraction dans la branche de destination. 
+ Vous pouvez supprimer la branche source spécifiée dans la pull request. CodeCommit ferme automatiquement une pull request si la branche source ou de destination de la pull request est supprimée.
+ Dans le AWS CLI, vous pouvez mettre à jour le statut d'une pull request de `OPEN` à`CLOSED`. Cela ferme la demande d'extraction sans fusionner le code. 

**Topics**
+ [Fermer une pull request (console)](#how-to-close-pull-request-console)
+ [Fermer une pull request (AWS CLI)](#how-to-close-pull-request-cli)

## Fermer une pull request (console)
<a name="how-to-close-pull-request-console"></a>

Vous pouvez utiliser la CodeCommit console pour fermer une pull request dans un CodeCommit référentiel. Une fois qu'une demande d'extraction est **fermée**, elle ne peut pas être **rouverte**, mais les utilisateurs peuvent continuer à commenter les modifications et à répondre aux commentaires.

1. Ouvrez la CodeCommit console sur [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Dans **Référentiels**, sélectionnez le nom du référentiel. 

1. Dans le volet de navigation, choisissez **Demandes d'extraction**.

1. Par défaut, une liste de toutes les demandes d'extraction ouvertes s'affiche. Choisissez la demande d'extraction ouverte que vous souhaitez fermer.  
![\[Les pull requests sont affichées dans la CodeCommit console.\]](http://docs.aws.amazon.com/fr_fr/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Dans la demande d'extraction, choisissez **Close pull request (Fermer la demande d’extraction)**. Cette option permet de fermer la demande d'extraction sans essayer de fusionner la branche source dans la branche de destination. Cette option ne donne pas la possibilité de supprimer la branche source lors de la fermeture de la demande d'extraction, mais vous pouvez le faire vous-même après la fermeture de la demande.

## Fermer une pull request (AWS CLI)
<a name="how-to-close-pull-request-cli"></a>

Pour utiliser AWS CLI des commandes avec CodeCommit, installez le AWS CLI. Pour de plus amples informations, veuillez consulter [Référence des commandes en ligne](cmd-ref.md). 

**Pour utiliser le AWS CLI pour fermer les pull requests dans un CodeCommit référentiel**
+ Pour remplacer le statut d'une demande d'extraction dans un référentiel de `OPEN` à `CLOSED`, exécutez la commande **update-pull-request-status**, en spécifiant les éléments suivants :
  + L'ID de la demande d'extraction (avec l'option **--pull-request-id**).
  + Le statut de la demande d'extraction (avec l'option **--pull-request-status**).

  Par exemple, pour mettre à jour le statut d'une pull request portant l'ID de *42* vers le statut de *CLOSED* dans un CodeCommit référentiel nommé `MyDemoRepo` :

  ```
  aws codecommit update-pull-request-status --pull-request-id 42 --pull-request-status CLOSED  
  ```

  Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "codecommit:GetRepository",
              "Resource": [
                  "arn:aws:codecommit:us-east-2:111122223333:MySharedDemoRepo"
              ]
          }
      ]
  }
  ```

------