

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Lavorare con le richieste pull nei AWS CodeCommit repository
<a name="pull-requests"></a>

Una richiesta di pull rappresenta per te e gli altri utenti del repository lo strumento principale tramite cui rivedere, commentare e unire le modifiche al codice da un ramo a un altro. È possibile utilizzare le richieste pull per rivedere in modo collaborativo le modifiche minori o le correzioni apportate al codice, le principali funzionalità aggiunte o le nuove versioni del software rilasciato. Questo è un possibile flusso di lavoro per una richiesta di pull:

Li Juan, uno sviluppatore che lavora in un repository denominato MyDemoRepo, desidera lavorare su una nuova funzionalità per una versione imminente di un prodotto. Per mantenere il suo lavoro separato dal codice pronto per la produzione, crea un ramo diverso dal ramo predefinito e gli dà un nome. *feature-randomizationfeature* Scrive codice, esegue commit e infine esegue il push del codice della nuova funzionalità in questo ramo. Desidera che altri utenti del repository rivedano il codice per garantirne la qualità prima dell'unione delle modifiche nel ramo predefinito. A tale scopo, crea una richiesta di pull. Tale richiesta contiene il confronto tra il ramo su cui lavora e quello del codice in cui intende unire le modifiche (in questo caso, il ramo predefinito). È inoltre possibile creare una regola di approvazione che richiede un numero specificato di utenti per approvare la richiesta pull. Può anche specificare un pool di approvazioni di utenti. Altri utenti rivedono il codice e le modifiche da lei apportate, aggiungendo commenti e suggerimenti. È possibile che Li Juan aggiorni più volte il ramo su cui lavora modificando il codice in base ai commenti. Le sue modifiche vengono incorporate nella pull request ogni volta che le invia a quella filiale. CodeCommit Potrebbe anche integrare le modifiche apportate nel ramo di destinazione previsto mentre la richiesta di pull è aperta, in modo da garantire che gli utenti revisionino tutte le modifiche proposte nel contesto. Quando lei e i suoi revisori sono soddisfatti e le condizioni per le regole di approvazione (se presenti) sono state soddisfatte, lei o uno dei suoi revisori unisce il suo codice e chiude la richiesta pull. 

![\[Creazione di una richiesta di pull\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-create.png)


Per le richieste pull sono necessari due rami: un ramo di origine che contiene il codice che deve essere rivisto e un ramo di destinazione, dove verrà unito il codice revisionato. Il ramo di origine contiene il commit AFTER, ovvero il commit con le modifiche da unire nel ramo di destinazione. Il ramo di destinazione contiene il commit BEFORE, che rappresenta lo stato del codice prima che il ramo della richiesta di pull venisse unito nel ramo di destinazione. La scelta della strategia di fusione influisce sui dettagli del modo in cui i commit vengono uniti tra i rami di origine e di destinazione nella console. CodeCommit Per ulteriori informazioni sulle strategie di unione in, vedere. CodeCommit [Unisce una pull request (console)](how-to-merge-pull-request.md#how-to-merge-pull-request-console)

![\[Rami di origine e destinazione per una richiesta di pull, in cui è mostrata la relazione tra commit "before" e "after"\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-concepts.png)


La richiesta di pull mostra le differenze tra l'inizio del ramo di origine e l'ultimo commit nel ramo di destinazione quando la richiesta di pull viene creata, in modo da consentire agli utenti di visualizzare e commentare le modifiche. È possibile aggiornare la richiesta di pull in base ai commenti eseguendo il commit e il push delle modifiche al ramo di origine. 

![\[Aggiunta di un commento a una riga in una richiesta pull.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-comment.png)


Quando il codice è stato esaminato e i requisiti della regola di approvazione (se presenti) sono stati soddisfatti, è possibile chiudere la richiesta pull in uno dei diversi modi seguenti: 
+ Unire i rami in locale ed eseguire il push delle modifiche. Ciò chiude automaticamente la richiesta se viene utilizzata la strategia di unione rapida e non vi sono conflitti di unione.
+ Usa la AWS CodeCommit console per chiudere la pull request senza unirla, risolvere i conflitti in caso di unione o, se non ci sono conflitti, chiudere e unire i rami utilizzando una delle strategie di unione disponibili.
+ Utilizzo della AWS CLI.

Prima di creare una richiesta di pull:
+ Assicurati di aver eseguito il commit e il push a un ramo (ramo di origine) delle modifiche apportate al codice che desideri vengano revisionate.
+ Configura le notifiche per il repository, in modo che altri utenti possano essere informati sulla richiesta di pull e sulle modifiche apportate. Questa fase è facoltativa, ma è consigliata.
+ Creare e associare i modelli di regola di approvazione al repository, in modo che le regole di approvazione vengano create automaticamente per le richieste pull per garantire la qualità del codice. Per ulteriori informazioni, consulta [Utilizzo dei modelli di regola di approvazione](approval-rule-templates.md).

Le pull request sono più efficaci quando hai configurato gli utenti IAM per gli utenti del tuo repository nel tuo account Amazon Web Services. È più facile identificare quale utente ha fatto un determinato commento. L'altro vantaggio è che gli utenti IAM possono utilizzare le credenziali Git per l'accesso al repository. Per ulteriori informazioni, consulta [Fase 1: Configurazione iniziale per CodeCommit](setting-up-gc.md#setting-up-gc-account). Le richieste pull possono essere utilizzate con altri tipi di utenti, inclusi quelli con accesso federato.

Per informazioni sull'utilizzo di altri aspetti del repository in CodeCommit, consulta,[Lavorare con i repository](repositories.md),, [Utilizzo dei modelli di regola di approvazione](approval-rule-templates.md) [Lavorare con i file](files.md)[Lavorare con i commit](commits.md), [Gestione dei rami](branches.md) e. [Utilizzo delle preferenze dell'utente](user-preferences.md) 

**Topics**
+ [

# Creazione di una richiesta di pull
](how-to-create-pull-request.md)
+ [

# Creare una regola di approvazione per una pull request
](how-to-create-pull-request-approval-rule.md)
+ [

# Visualizza le richieste pull in un AWS CodeCommit repository
](how-to-view-pull-request.md)
+ [

# Revisione di una richiesta di pull
](how-to-review-pull-request.md)
+ [

# Aggiornamento di una richiesta di pull
](how-to-update-pull-request.md)
+ [

# Modifica o elimina una regola di approvazione per una pull request
](how-to-edit-delete-pull-request-approval-rule.md)
+ [

# Sostituisci le regole di approvazione su una pull request
](how-to-override-approval-rules.md)
+ [

# Unisci una richiesta pull in un repository AWS CodeCommit
](how-to-merge-pull-request.md)
+ [

# Risolvi i conflitti in una pull request in un AWS CodeCommit repository
](how-to-resolve-conflict-pull-request.md)
+ [

# Chiudere una pull request in un AWS CodeCommit repository
](how-to-close-pull-request.md)

# Creazione di una richiesta di pull
<a name="how-to-create-pull-request"></a>

La creazione di richieste pull aiuta altri utenti a vedere ed esaminare le modifiche del codice prima di unirle in un altro ramo. In primo luogo, è necessario creare un ramo per le modifiche del codice che viene definito come il ramo di origine della richiesta pull. Dopo aver eseguito il commit e il push delle modifiche al repository, è possibile creare una richiesta pull che confronta il contenuto di quel ramo (ramo di origine) con il ramo in cui si desidera unire le modifiche dopo la chiusura della richiesta pull (ramo di destinazione). 

È possibile utilizzare la AWS CodeCommit console o AWS CLI creare richieste pull per il repository. 

**Topics**
+ [

## Crea una pull request (console)
](#how-to-create-pull-request-console)
+ [

## Crea una pull request ()AWS CLI
](#how-to-create-pull-request-cli)

## Crea una pull request (console)
<a name="how-to-create-pull-request-console"></a>

È possibile utilizzare la CodeCommit console per creare una richiesta pull in un CodeCommit repository. Se il repository viene [configurato con le notifiche](how-to-repository-email.md), gli utenti iscritti riceveranno un'e-mail quando crei una richiesta di pull.

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

1. In **Repositories (Repository)**, selezionare il nome del repository in cui si desidera creare una richiesta pull. 

1. Nel riquadro di navigazione, selezionare **Pull Requests (Richieste pull)**.
**Suggerimento**  
È anche possibile creare richieste pull da **Branches (Rami)** e **Code (Codice)**.

1. Scegliere **Create pull request (Crea richiesta pull)**.   
![\[Creazione di una richiesta pull dalla pagina Pull request della console. CodeCommit\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. In **Create pull request (Crea richiesta di pull)**, in **Source (Origine)**, scegliere il ramo che contiene le modifiche da far esaminare. 

1. In **Destinazione**, scegli il ramo in cui intendi unire le modifiche al codice quando la pull request viene chiusa. 

1. Scegliere **Compare (Confronta)**. Viene eseguito un confronto sui due rami e vengono visualizzate le differenze. Viene inoltre eseguita un'analisi per determinare se i due rami possono essere uniti automaticamente quando viene chiusa la richiesta pull.

1. Esaminare i dettagli del confronto e le modifiche per essere sicuri che la richiesta pull contenga le modifiche e i commit desiderati. In caso contrario, modificare le opzioni per i rami di origine e di destinazione e scegliere di nuovo **Compare (Confronta)**.

1. Quando i risultati del confronto per la richiesta pull sono soddisfacenti, immettere in **Title (Titolo)** un titolo breve ma descrittivo per questa revisione. Questo è il titolo che viene visualizzato nell'elenco di richieste pull per il repository. 

1. (Facoltativo) In **Description (Descrizione)**, immettere i dettagli su questa revisione ed eventuali altre informazioni utili per i revisori.

1. Scegli **Create** (Crea).  
![\[Creazione di una richiesta di pull\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-create.png)

La richiesta di pull viene visualizzata nell'elenco di richieste pull per il repository. Se hai [configurato le notifiche](how-to-repository-email.md), gli abbonati all'argomento Amazon SNS ricevono un'e-mail per informarli della richiesta pull appena creata.

## Crea una pull request ()AWS CLI
<a name="how-to-create-pull-request-cli"></a>

Per utilizzare AWS CLI i comandi con CodeCommit, installa AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

**Da utilizzare AWS CLI per creare una richiesta pull in un CodeCommit repository**
+ Eseguire il comando **create-pull-request** specificando:
  + Il nome della richiesta pull (con l'opzione **--title**).
  + La descrizione della richiesta pull (con l'opzione **--description**).
  + Un elenco di destinazioni per il comando **create-pull-request**, tra cui:
    + Il nome del CodeCommit repository in cui viene creata la pull request (con l'**repositoryName**attributo).
    + Il nome del ramo che contiene le modifiche del codice che si desidera esaminare, noto anche come ramo di origine (con l'attributo **sourceReference**).
    + (Facoltativo) Il nome del ramo in cui si intende unire le modifiche al codice, noto anche come il ramo di destinazione, se non si desidera unire al ramo predefinito (con l'attributo **destinationReference**).
  + Un token di idempotenza univoco generato dal client (con l'opzione **--client-request-token**). 

  Questo esempio crea una pull request denominata *Pronunciation difficulty analyzer* con una descrizione *Please review these changes by Tuesday* che si rivolge al ramo di *jane-branch* origine. La pull request deve essere unita al ramo predefinito *main* in un CodeCommit repository denominato: `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 
  ```

# Creare una regola di approvazione per una pull request
<a name="how-to-create-pull-request-approval-rule"></a>

La creazione di regole di approvazione per le richieste pull consente di garantire la qualità del codice richiedendo agli utenti di approvare la richiesta pull prima che il codice possa essere unito nel ramo di destinazione. È possibile specificare il numero di utenti che devono approvare una richiesta pull. È inoltre possibile specificare un pool di approvazioni di utenti per la regola. In tal caso, solo le approvazioni di tali utenti vengono conteggiate per il numero di approvazioni richieste per la regola. 

**Nota**  
Puoi anche creare modelli di regole di approvazione, che possono aiutarti ad automatizzare la creazione di regole di approvazione tra i repository che verranno applicate a tutte le pull request. Per ulteriori informazioni, consulta [Utilizzo dei modelli di regola di approvazione](approval-rule-templates.md).

Puoi utilizzare la AWS CodeCommit console o il AWS CLI per creare regole di approvazione per il tuo repository. 

**Topics**
+ [

## Crea una regola di approvazione per una pull request (console)
](#how-to-create-pull-request-approval-rule-console)
+ [

## Crea una regola di approvazione per una pull request ()AWS CLI
](#how-to-create-pull-request-approval-rule-cli)

## Crea una regola di approvazione per una pull request (console)
<a name="how-to-create-pull-request-approval-rule-console"></a>

È possibile utilizzare la CodeCommit console per creare una regola di approvazione per una pull request in un CodeCommit repository. 

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

1. In **Repositories (Repository)**, selezionare il nome del repository in cui si desidera creare una richiesta pull. 

1. Nel riquadro di navigazione, selezionare **Pull Requests (Richieste pull)**.

1. Scegliere la richiesta pull per la quale si desidera creare una regola di approvazione dall'elenco. È possibile creare regole di approvazione solo per le richieste pull aperte.  
![\[Un elenco di richieste pull per un repository nella console. CodeCommit\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Nella richiesta pull, scegliere **Approvals (Approvazioni)**, quindi scegliere **Create approval rule (Crea regola di approvazione)**. 

1. In **Rule name (Nome regola)**, assegnare alla regola un nome descrittivo in modo da sapere a cosa serve. Ad esempio, se si desidera che due persone approvino una richiesta pull prima che possa essere unita, è possibile assegnare un nome alla regola **Require two approvals before merge**. 
**Nota**  
Non è possibile modificare il nome di una regola di approvazione dopo averla creata.

   In **Number of approvals needed (Numero di approvazioni necessarie)**, immettere il numero desiderato. Il valore di default è 1.   
![\[Creazione di una regola di approvazione per una richiesta pull\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-create-approval-rule.png)

1. (Facoltativo) Se si desidera richiedere che le approvazioni per una richiesta pull provengano da un gruppo specifico di utenti, in **Approval rule members (Membri della regola di approvazione)**, scegliere **Add (Aggiungi)**. In **Approver type (Tipo approvatore)**, scegliere una delle seguenti opzioni: 
   + **Nome utente IAM o ruolo assunto**: questa opzione precompila l'ID dell' AWS account con l'account che hai usato per accedere e richiede solo un nome. Può essere utilizzato sia per gli utenti IAM che per gli utenti ad accesso federato il cui nome corrisponde al nome fornito. Si tratta di un'opzione molto potente che offre una grande flessibilità. Ad esempio, se hai effettuato l'accesso con l'account Amazon Web Services 123456789012 e scegli questa opzione e specifichi**Mary\$1Major**, tutte le seguenti approvazioni vengono conteggiate come approvazioni provenienti da quell'utente:
     + Un utente IAM nell'account () `arn:aws:iam::123456789012:user/Mary_Major`
     + Un utente federato identificato in IAM come Mary\$1Major () `arn:aws:sts::123456789012:federated-user/Mary_Major`

     Questa opzione non riconoscerebbe una sessione attiva di qualcuno che assume il ruolo di **CodeCommitReview** con un nome di sessione di ruolo Mary\$1Major (`arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major`) a meno che non si includa un carattere jolly (`*Mary_Major`). È inoltre possibile specificare esplicitamente il nome del ruolo (`CodeCommitReview/Mary_Major`).
   + **ARN completo**: questa opzione consente di specificare l'Amazon Resource Name (ARN) completo dell'utente o del ruolo IAM. Questa opzione supporta anche i ruoli presunti utilizzati da altri AWS servizi, come e AWS Lambda . AWS CodeBuild Per i ruoli assunti, il formato ARN deve essere `arn:aws:sts::AccountID:assumed-role/RoleName` per i ruoli e `arn:aws:sts::AccountID:assumed-role/FunctionName` per le funzioni.

   Se hai scelto **il nome utente IAM o hai assunto il ruolo** come tipo di approvatore, in **Valore** inserisci il nome dell'utente o del ruolo IAM o l'ARN completo dell'utente o del ruolo. Scegliere **Add (Aggiungi)** di nuovo per aggiungere altri utenti o ruoli, fino a quando non saranno stati aggiunti tutti gli utenti o i ruoli le cui approvazioni valgono per il numero di approvazioni richieste. 

   Entrambi i tipi di approvatore consentono di utilizzare caratteri jolly (\$1) nei loro valori. Ad esempio, se scegli l'opzione **nome utente IAM o ruolo assunto** e lo specifichi**CodeCommitReview/\$1**, tutti gli utenti che assumono il ruolo di **CodeCommitReview** vengono conteggiati nel pool di approvazione. I nomi delle sessioni di ruolo individuali vengono conteggiati ai fini del numero richiesto di approvatori. In questo modo, sia Mary\$1Major che Li\$1Juan sono contati come approvazioni al momento dell'accesso e dell'assunzione del ruolo di `CodeCommitReview`. [Per ulteriori informazioni su IAM ARNs, i wildcard e i formati, consulta IAM Identifiers.](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)
**Nota**  
Le regole di approvazione non supportano le approvazioni cross-account.

1. Al termine della configurazione della regola di approvazione, scegliere **Submit (Invia)**.

 

## Crea una regola di approvazione per una pull request ()AWS CLI
<a name="how-to-create-pull-request-approval-rule-cli"></a>

Per utilizzare AWS CLI i comandi con CodeCommit, installa AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

## Per creare una regola di approvazione per una pull request in un CodeCommit repository

+ Eseguire il comando **create-pull-request-approval-rule** specificando:
  + L'ID della richiesta di pull (con l'opzione **--id**).
  + Il nome della regola di approvazione (con l'opzione **--approval-rule-name**).
  + Il contenuto della regola di approvazione (con l'opzione **--approval-rule-content**).

  Quando si crea la regola di approvazione, è possibile specificare gli approvatori in un pool di approvazioni in due modi:
  + **CodeCommitApprovers**: questa opzione richiede solo un account Amazon Web Services e una risorsa. Può essere utilizzata sia per gli utenti IAM che per gli utenti ad accesso federato il cui nome corrisponde al nome della risorsa fornito. Si tratta di un'opzione molto potente che offre una grande flessibilità. Ad esempio, se specifichi l'account Amazon Web Services 123456789012 e **Mary\$1Major** tutte le seguenti approvazioni vengono conteggiate come approvazioni provenienti da quell'utente:
    + Un utente IAM nell'account () `arn:aws:iam::123456789012:user/Mary_Major`
    + Un utente federato identificato in IAM come Mary\$1Major () `arn:aws:sts::123456789012:federated-user/Mary_Major`

    Questa opzione non riconoscerebbe una sessione attiva di qualcuno che assume il ruolo di **CodeCommitReview** con un nome di sessione di ruolo Mary\$1Major (`arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major`) a meno che non si includa un carattere jolly (`*Mary_Major`).
  + **ARN completo**: questa opzione consente di specificare l'Amazon Resource Name (ARN) completo dell'utente o del ruolo IAM. 

  [Per ulteriori informazioni su IAM ARNs, i wildcard e i formati, consulta IAM Identifiers.](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)

  Nell'esempio seguente viene creata una regola di approvazione denominata `Require two approved approvers` per una richiesta pull con l'ID di `27`. La regola specifica che sono necessarie due approvazioni da un pool di approvazioni. Il pool include tutti gli utenti che accedono CodeCommit e assumono il ruolo di **CodeCommitReview** nell'account `123456789012` Amazon Web Services. Include anche un utente IAM o un utente federato denominato `Nikhil_Jayashankar` nello stesso account 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/*\"]}]}"
  ```

# Visualizza le richieste pull in un AWS CodeCommit repository
<a name="how-to-view-pull-request"></a>

È possibile utilizzare la AWS CodeCommit console o visualizzare le AWS CLI richieste pull per il proprio repository. Per impostazione predefinita, è possibile visualizzare solo le richieste pull aperte, ma è possibile modificare il filtro per visualizzare tutte le richieste pull, solo le richieste chiuse, solo le richieste pull create da te e molto altro. 

**Topics**
+ [

## Visualizza le richieste pull (console)
](#how-to-view-pull-request-console)
+ [

## Visualizza le richieste pull (AWS CLI)
](#how-to-view-pull-request-cli)

## Visualizza le richieste pull (console)
<a name="how-to-view-pull-request-console"></a>

È possibile utilizzare la AWS CodeCommit console per visualizzare un elenco di richieste pull in un CodeCommit repository. Modificando il filtro, puoi modificare la visualizzazione dell'elenco per vedere solo determinati set di richieste pull. Ad esempio, puoi visualizzare una lista di richieste pull create con uno stato **Open (Aperto)** oppure puoi scegliere un altro filtro e visualizzare le richieste pull create con uno stato **Closed (Chiuso)**.

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

1. In **Repositories (Repository)**, selezionare il nome del repository in cui si desidera visualizzare le richieste pull. 

1. Nel riquadro di navigazione, selezionare **Pull Requests (Richieste pull)**.

1. Per impostazione predefinita, viene visualizzato l'elenco di tutte le richieste pull aperte.   
![\[Le richieste pull vengono visualizzate nella console. AWS CodeCommit\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)

1. Per modificare il filtro di visualizzazione, sceglierlo dall'elenco dei filtri disponibili:
   + **Open pull requests (Apri richieste aperte)** (impostazione predefinita): visualizza tutte le richieste pull con stato **Open (Aperto)**.
   + **All pull requests (Tutte le richieste pull)**: visualizza tutte le richieste pull.
   + **Closed pull requests (Richieste pull chiuse)**: visualizza tutte le richieste pull con stato **Closed (Chiuso)**.
   + **My pull requests (Le mie richieste di pull)**: consente di visualizzare tutte le richieste di pull create, indipendentemente dallo stato. Non visualizza le recensioni che hai commentato o a cui hai partecipato.
   + **My open pull requests (Le mie richieste pull aperte)**: visualizza tutte le richieste pull create con uno stato **Open (Aperto)**.
   + **My closed pull requests (Le mie richieste pull chiuse)**: visualizza tutte le richieste pull create con uno stato **Closed (Chiuso)**.

1. Quando si trova una richiesta pull nell'elenco visualizzato che si desidera visualizzare, selezionarla.

## Visualizza le richieste pull (AWS CLI)
<a name="how-to-view-pull-request-cli"></a>

Per utilizzare AWS CLI i comandi con CodeCommit, installa AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

Segui questi passaggi per utilizzare AWS CLI per visualizzare le richieste pull in un CodeCommit repository.

1. Per visualizzare un elenco di richieste pull in un repository, eseguire il comando **list-pull-requests**, specificando:
   + Il nome del CodeCommit repository in cui desideri visualizzare le richieste pull (con l'**--repository-name**opzione).
   + (Facoltativo) Lo stato della richiesta pull (con l'opzione **--pull-request-status**).
   + (Facoltativo) L'Amazon Resource Name (ARN) dell'utente IAM che ha creato la pull request (con l'**--author-arn**opzione).
   + (Facoltativo) Un token di enumerazione può essere utilizzato per restituire il batch dei risultati (con l'opzione **--next-token**). 
   + (Facoltativo) Una restrizione sul numero di risultati restituiti per richiesta (con l'opzione **--max-results**).

   Ad esempio, per elencare le richieste pull create da un utente IAM con l'ARN *arn:aws:iam::111111111111:user/Li\$1Juan* e lo stato di *CLOSED* in un CodeCommit repository denominato: `MyDemoRepo`

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

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

   Le pull request IDs vengono visualizzate nell'ordine delle attività più recenti.

1. Per visualizzare i dettagli di una richiesta pull, eseguire il comando **get-pull-request** con l'opzione **--pull-request-id**, specificando l'ID della richiesta pull. Ad esempio, per visualizzare informazioni su una pull request con l'ID di*27*:

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
       "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>Per visualizzare le approvazioni su una richiesta pull, eseguire il comando **get-pull-request-approval-state**, specificando:
   + L'ID della richiesta di pull (da utilizzare con l'opzione **--pull-request-id**).
   + L'ID di revisione della richiesta pull, utilizzando il **--revision-id option)**. È possibile ottenere l'ID di revisione corrente per una richiesta pull utilizzando il comando [get-pull-request](#get-pull-request).

   Ad esempio, per visualizzare le approvazioni di una pull request con un ID di *8* e un ID di revisione pari a: *9f29d167EXAMPLE*

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

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

1. Per visualizzare gli eventi in una richiesta pull, eseguire il comando **describe-pull-request-events** con l'opzione **--pull-request-id**, specificando l'ID della richiesta pull. Ad esempio, per visualizzare gli eventi di una pull request con l'ID di: *8*

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
       "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. Per vedere eventuali conflitti uniti per una richiesta pull, eseguire il comando **get-merge-conflicts**, specificando:
   + Il nome del CodeCommit repository (con l'**--repository-name**opzione).
   + Il ramo, il tag, l'HEAD o qualunque altro tipo di riferimento completo per l'origine delle modifiche da utilizzare nella valutazione dell'unione (con l'opzione **--source-commit-specifier**).
   + Il ramo, il tag, l'HEAD o qualunque altro tipo di riferimento completo per la destinazione delle modifiche da utilizzare nella valutazione dell'unione (con l'opzione **--destination-commit-specifier**).
   + L'opzione di unione da utilizzare (con l'opzione **--merge-option**) 

   Ad esempio, per vedere se ci sono conflitti di fusione tra la punta di un ramo di origine denominato *my-feature-branch* e un ramo di destinazione denominato *main* in un repository denominato: `MyDemoRepo`

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

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

# Revisione di una richiesta di pull
<a name="how-to-review-pull-request"></a>

Puoi usare la AWS CodeCommit console per rivedere le modifiche incluse in una pull request. Puoi aggiungere commenti alla richiesta, ai file e a singole righe di codice. È anche possibile rispondere ai commenti degli altri utenti. Se il repository viene [configurato con le notifiche](how-to-repository-email.md), riceverai e-mail quando gli utenti rispondono ai tuoi commenti o quando gli utenti commentano una richiesta pull.

Puoi usare il AWS CLI per commentare una pull request e rispondere ai commenti. Per rivedere le modifiche, è necessario utilizzare la CodeCommit console, il **git diff** comando o uno strumento diff.

**Topics**
+ [

## Rivedi una pull request (console)
](#how-to-review-pull-request-console)
+ [

## Rivedi le richieste pull ()AWS CLI
](#how-to-review-pull-request-cli)

## Rivedi una pull request (console)
<a name="how-to-review-pull-request-console"></a>

È possibile utilizzare la CodeCommit console per esaminare una richiesta pull in un CodeCommit repository. 

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

1. In **Repositories (Repository)**, scegliere il nome del repository. 

1. Nel riquadro di navigazione, selezionare **Pull requests (Richieste pull)**.

1. Per impostazione predefinita, viene visualizzato l'elenco di tutte le richieste pull aperte. Scegliere la richiesta pull aperta che si desidera rivedere.   
![\[Apri le pull request visualizzate nella console. CodeCommit\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)
**Nota**  
È possibile commentare una richiesta pull chiusa o unita, ma non è possibile unirla o riaprirla.

1. Nella richiesta pull, scegliere **Changes (Modifiche)**.

1. Esegui una delle seguenti operazioni:
   + Per aggiungere un commento generale per l'intera richiesta pull, in **Comments on changes (Commenti sulle modifiche)**, in **New comment (Nuovo commento)**, immettere un commento e selezionare **Save (Salva)**. È possibile utilizzare [Markdown](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html) o immettere il commento in testo normale.  
![\[Un commento generale sulle modifiche in una richiesta pull.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-commenting-changecomment.png)
   + Per aggiungere un commento a un file nel commit, in **Changes (Modifiche)**, individuare il nome del file. Scegliere l'icona del commento accanto al nome del file ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-commentbubble.png), immettere un commento, quindi scegliere **Save (Salva)**.   
![\[Aggiunta di un commento a un file in una richiesta pull.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-commenting-addfilecomment.png)
   + Per aggiungere un commento a una riga modificata nella richiesta pull, in **Changes (Modifiche)**, vai alla riga che desideri commentare. Scegliere l'icona del commento ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-commentbubble.png) visualizzata per quella riga, immettere un commento, quindi scegliere **Save (Salva)**.   
![\[Aggiunta di un commento a una riga in una richiesta pull.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-comment.png)

1. Per rispondere a commenti su un commit in **Changes (Modifiche)** o **Activity (Attività)**, scegliere **Reply (Rispondi)**. Puoi rispondere con testo e con emoji.   
![\[Aggiungere risposte e reazioni emoji a un commento.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-commenting-commenttab.png)

   Puoi visualizzare i nomi di coloro che hanno risposto con una particolare risposta emoji selezionandola. **Per visualizzare tutte le reazioni emoji e le informazioni su chi ha risposto con quali emoji, scegli Visualizza tutte le reazioni.** Se hai risposto con un'emoji a un commento, la tua risposta viene mostrata nell'icona del pulsante di reazione alle emoji.
**Nota**  
I conteggi delle reazioni visualizzati nella console sono accurati al momento del caricamento della pagina. Per le informazioni più aggiornate sul conteggio delle reazioni alle emoji, aggiorna la pagina o scegli **Visualizza tutte le** reazioni.  
![\[Visualizzazione delle informazioni sugli utenti che hanno risposto a un commento con una reazione emoji.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-comment-view-reaction.png)

1. (Facoltativo) Per rispondere a un consiglio creato da Amazon CodeGuru Reviewer, incluso fornire un feedback sulla qualità del consiglio, scegli **Rispondi**. Utilizzare i pulsanti di reazione per fornire informazioni generali sull'approvazione o disapprovazione del suggerimento. Utilizzare il campo commento per fornire maggiori dettagli sulla reazione.
**Nota**  
Amazon CodeGuru Reviewer è un servizio automatizzato di revisione del codice che utilizza l'analisi dei programmi e l'apprendimento automatico per rilevare problemi comuni e consigliare correzioni nel codice Java o Python.  
I commenti di Amazon CodeGuru Reviewer vengono visualizzati solo se hai associato il repository ad Amazon CodeGuru Reviewer, se l'analisi è completa e se il codice nella pull request è codice Java o Python. Per ulteriori informazioni, consulta [Associare o dissociare un AWS CodeCommit repository con Amazon Reviewer CodeGuru](how-to-amazon-codeguru-reviewer.md).
I commenti di Amazon CodeGuru Reviewer vengono visualizzati nella scheda **Modifiche** solo se sono stati inseriti nella revisione più recente della pull request. Vengono sempre visualizzati nella scheda **Attività**.
Sebbene tu possa rispondere con una qualsiasi delle reazioni emoji disponibili ai consigli di Amazon CodeGuru Reviewer, per valutare l'utilità del consiglio vengono utilizzate solo le reazioni emoji pollice su e pollice giù.   
![\[Un consiglio creato da Amazon CodeGuru Reviewer con un processo di revisione in corso.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-reply-bot.png)

1. Per approvare le modifiche apportate in una richiesta pull, scegliere **Approve (Approva)**. 
**Nota**  
Non puoi approvare una pull request che hai creato.

   È possibile visualizzare le approvazioni, le regole di approvazione per una richiesta pull e le regole di approvazione create dai modelli di regola di approvazione in **Approvals (Approvazioni)**. Se decidi di non approvare la richiesta pull, puoi scegliere **Revoke approval (Revoca approvazione)**.
**Nota**  
È possibile approvare o revocare l'approvazione solo su una richiesta di pull aperta. Non è possibile approvare o revocare l'approvazione su una richiesta pull il cui stato è unito o chiuso.  
![\[Approvazioni e regole di approvazione in una richiesta pull.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-approval-rule-met.png)

## Rivedi le richieste pull ()AWS CLI
<a name="how-to-review-pull-request-cli"></a>

Per utilizzare AWS CLI i comandi con CodeCommit, installa AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

È possibile esaminare le richieste pull con i seguenti AWS CLI comandi:
+ [**post-comment-for-pull-request**](#post-comment-reply), per aggiungere un commento a una pull request
+ [**get-comments-for-pull-request**](#get-comments-for-pull-request), per visualizzare i commenti lasciati su una pull request
+ [**update-pull-request-approval-state**](#update-pull-request-approval-state), per approvare o revocare l'approvazione per una pull request
+ [**post-comment-reply**](#post-comment-reply), per rispondere a un commento in una pull request

Puoi anche usare emoji con commenti in una pull request con i seguenti comandi: 
+ Per rispondere a un commento con un'emoji, esegui. [**put-comment-reaction**](how-to-commit-comment.md#how-to-commit-comment-cli-commit-reply-emoji)
+ Per visualizzare le reazioni emoji a un commento, esegui. [**get-comment-reactions**](how-to-commit-comment.md#how-to-commit-comment-cli-commit-emoji-view)

**Da utilizzare per AWS CLI esaminare le richieste pull in un repository CodeCommit **

1. Per aggiungere un commento a una richiesta pull in un repository, eseguire il comando **post-comment-for-pull-request**, specificando:
   + L'ID della richiesta di pull (con l'opzione **--pull-request-id**).
   + Il nome del repository che contiene la richiesta pull (con l'opzione **--repository-name**).
   + L'ID commit completo nel ramo di destinazione a cui viene unita la richiesta pull (con l'opzione **--before-commit-id**).
   + L'ID commit completo del commit nel ramo di origine che è l'estremità corrente del ramo per la richiesta pull quando posti il commento (con l'opzione **--after-commit-id**).
   + Un token di idempotenza univoco generato dal client (con l'opzione **--client-request-token**).
   + Il contenuto del commento (con l'opzione **--content**).
   + Un elenco di informazioni sulla posizione in cui inserire il commento, tra cui:
     + Il nome del file che viene confrontato, inclusa l'estensione e la sottodirectory, se presente (con l'attributo **filePath**).
     + Il numero di riga della modifica in un file confrontato (con l'attributo **filePosition**).
     + Se il commento sulla modifica è "before" o "after" nel confronto tra i rami di origine e di destinazione (con l'attributo **relativeFileVersion**).

   Ad esempio, utilizzate questo comando per aggiungere il commento *"These don't appear to be used anywhere. Can we remove them?"* sulla modifica al *ahs\$1count.py* file in una richiesta pull con l'ID di *47* in un repository denominato. *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   
   ```

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   { 
            "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. Per visualizzare i commenti per una richiesta pull, eseguire il comando **get-comments-for-pull-request** specificando:
   + Il nome del CodeCommit repository (con l'`--repository-name`opzione).
   + L'ID generato dal sistema della richiesta pull (con l'opzione `--pull-request-id`).
   + (Facoltativo) Un token di enumerazione per restituire il batch dei risultati successivo (con l'opzione `--next-token`).
   + (Facoltativo) Un numero intero non negativo per limitare il numero di risultati restituiti (con l'opzione `--max-results`).

   Ad esempio, utilizzare questo comando per visualizzare i commenti per una richiesta pull con un ID 42.

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
      "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>Per approvare o revocare l'approvazione di una richiesta pull, eseguire il comando **update-pull-request-approval-state**, specificando:
   + L'ID della richiesta di pull (da utilizzare con l'opzione **--pull-request-id**).
   + L'ID di revisione della richiesta pull, utilizzando il **--revision-id option)**. È possibile ottenere l'ID di revisione corrente per una richiesta pull utilizzando il comando [get-pull-request](how-to-view-pull-request.md#get-pull-request).
   + Lo stato di approvazione che si desidera applicare, utilizzando l'opzione **--approval-state**. Gli stati di approvazione validi includono `APPROVE` e `REVOKE`.

   Ad esempio, utilizzate questo comando per approvare una pull request con l'ID di *27* e l'ID di revisione di. *9f29d167EXAMPLE*

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

   In caso di successo, questo comando non restituisce alcun risultato.

1. Per pubblicare la risposta a un commento in una richiesta pull, eseguire il comando **post-comment-reply**, specificando:
   + L'ID generato dal sistema del commento a cui si desidera rispondere (con l'opzione **--in-reply-to**).
   + Un token di idempotenza univoco generato dal client (con l'opzione **--client-request-token**).
   + Il contenuto della risposta (con l'opzione **--content**). 

    Ad esempio, utilizzate questo comando per aggiungere la risposta *"Good catch. I'll remove them."* al commento con l'ID generato dal sistema di. *abcd1234EXAMPLEb5678efgh* 

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   { 
       "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": []
       }
    }
   ```

# Aggiornamento di una richiesta di pull
<a name="how-to-update-pull-request"></a>

È possibile aggiornare una pull request con ulteriori modifiche al codice inviando i commit al ramo sorgente di una pull request aperta. Per ulteriori informazioni, consulta [Crea un commit in AWS CodeCommit](how-to-create-commit.md).

Puoi usare la AWS CodeCommit console o il AWS CLI per aggiornare il titolo o la descrizione di una pull request. Potresti voler aggiornare il titolo o la descrizione della pull request perché:
+ Gli altri utenti non comprendono la descrizione o il titolo originale è fuorviante.
+ Se desideri che il titolo o la descrizione riflettano le modifiche apportate al ramo d'origine di una richiesta pull aperta.

## Aggiorna una pull request (console)
<a name="how-to-update-pull-request-console"></a>

È possibile utilizzare la CodeCommit console per aggiornare il titolo e la descrizione di una pull request in un CodeCommit repository. Per aggiornare il codice nella pull request, invia i commit al ramo sorgente di una pull request aperta.

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

1. In **Repositories (Repository)**, selezionare il nome del repository in cui si desidera aggiornare una richiesta pull. 

1. Nel riquadro di navigazione, selezionare **Pull requests (Richieste pull)**.

1. Per impostazione predefinita, viene visualizzato l'elenco di tutte le richieste pull aperte. Scegliere la richiesta pull aperta che si desidera aggiornare.

1. Nella richiesta pull, scegliere **Details (Dettagli)**, quindi scegliere **Edit details (Modifica dettagli)** per modificare il titolo o la descrizione.
**Nota**  
Non è possibile aggiornare il titolo o la descrizione di una richiesta pull chiusa o unita.

## Aggiorna le richieste pull ()AWS CLI
<a name="how-to-update-pull-request-cli"></a>

Per utilizzare AWS CLI i comandi con CodeCommit, installa AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

Potresti anche essere interessato ai seguenti comandi:
+ **[update-pull-request-approval-state](how-to-review-pull-request.md#update-pull-request-approval-state)**, per approvare o revocare l'approvazione su una richiesta pull.
+ [**create-pull-request-approval-rule**](how-to-create-pull-request-approval-rule.md#how-to-create-pull-request-approval-rule-cli), per creare una regola di approvazione per una richiesta pull.
+ [**delete-pull-request-approval-rule**](how-to-edit-delete-pull-request-approval-rule.md#delete-pull-request-approval-rule), per eliminare una regola di approvazione per una richiesta pull.
+ [Crea un commit usando il AWS CLI](how-to-create-commit.md#how-to-create-commit-cli)oppure[Crea un commit usando un client Git](how-to-create-commit.md#how-to-create-commit-git), per creare e inviare ulteriori modifiche al codice nel ramo sorgente di una pull request aperta.

**Da utilizzare AWS CLI per aggiornare le richieste pull in un CodeCommit repository**

1.  Per aggiornare il titolo di una richiesta pull in un repository, eseguire il comando **update-pull-request-title** specificando:
   + L'ID della richiesta di pull (con l'opzione **--pull-request-id**).
   + Il titolo della richiesta pull (con l'opzione **--title**).

   Ad esempio, per aggiornare il titolo di una pull request con l'ID di*47*:

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

1.  Per aggiornare la descrizione di una richiesta pull, eseguire il comando **update-pull-request-description** specificando:
   + L'ID della richiesta di pull (con l'opzione **--pull-request-id**).
   + La descrizione (con l'opzione **--description**). 

    Ad esempio, per aggiornare la descrizione di una pull request con l'ID di*47*:

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

# Modifica o elimina una regola di approvazione per una pull request
<a name="how-to-edit-delete-pull-request-approval-rule"></a>

Quando si dispone di una regola di approvazione in una richiesta pull, non è possibile unire tale richiesta fino a quando non sono state soddisfatte le condizioni. È possibile modificare le regole di approvazione per le richieste pull per semplificare la soddisfazione delle loro condizioni o per aumentare il rigore delle revisioni. È possibile modificare il numero di utenti che devono approvare una richiesta pull. Puoi anche aggiungere, rimuovere o modificare l'appartenenza a un pool di utenti di approvazione per la regola. Infine, se non si desidera più utilizzare una regola di approvazione per una richiesta pull, è possibile eliminarla.

**Nota**  
È inoltre possibile ignorare le regole di approvazione per una richiesta pull. Per ulteriori informazioni, consulta [Sostituisci le regole di approvazione su una pull request](how-to-override-approval-rules.md).

Puoi utilizzare la AWS CodeCommit console o il AWS CLI per modificare ed eliminare le regole di approvazione per il tuo repository. 

**Topics**
+ [

## Modifica o elimina una regola di approvazione per una pull request (console)
](#how-to-edit-delete-pull-request-approval-rule-console)
+ [

## Modifica o elimina una regola di approvazione per una pull request (AWS CLI)
](#how-to-edit-delete-pull-request-approval-rule-cli)

## Modifica o elimina una regola di approvazione per una pull request (console)
<a name="how-to-edit-delete-pull-request-approval-rule-console"></a>

È possibile utilizzare la CodeCommit console per modificare o eliminare una regola di approvazione per una pull request in un CodeCommit repository. 

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

1. In **Repositories (Repository)**, selezionare il nome del repository in cui si desidera modificare o eliminare una regola di approvazione per una richiesta pull. 

1. Nel riquadro di navigazione, selezionare **Pull Requests (Richieste pull)**.

1. Scegliere la richiesta pull in cui si desidera modificare o eliminare una regola di approvazione. È possibile modificare ed eliminare solo le regole di approvazione per le richieste pull aperte.  
![\[Un elenco di richieste pull per un repository nella console. CodeCommit\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Nella richiesta pull, scegliere **Approvals (Approvazioni)**, quindi scegliere la regola che si desidera modificare o eliminare dall'elenco. Esegui una delle seguenti operazioni:
   + Se desideri modificare la regola, scegli **Modifica**. 
   + Se si desidera eliminare la regola, scegliere **Delete (Elimina)**, quindi seguire le istruzioni per verificare l'eliminazione della regola.

1. In **Edit approval rule (Modifica regola di approvazione)**, apportare le modifiche desiderate alla regola e quindi scegliere **Submit (Invia)**.  
![\[Modifica di una regola di approvazione\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-edit-rule.png)

1. Al termine della configurazione della regola di approvazione, scegliere **Submit (Invia)**.

 

## Modifica o elimina una regola di approvazione per una pull request (AWS CLI)
<a name="how-to-edit-delete-pull-request-approval-rule-cli"></a>

Per utilizzare AWS CLI i comandi con CodeCommit, installa il AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

È possibile utilizzare il AWS CLI per modificare il contenuto di una regola di approvazione e per eliminare una regola di approvazione. 

**Nota**  
Potresti anche essere interessato ai seguenti comandi:  
**[update-pull-request-approval-state](how-to-review-pull-request.md#update-pull-request-approval-state)**, per approvare o revocare l'approvazione su una richiesta pull.
[**get-pull-request-approval-states**](how-to-view-pull-request.md#get-pull-request-approval-state), per visualizzare le approvazioni nella richiesta pull.
[**evaluate-pull-request-approval-rules**](how-to-merge-pull-request.md#evaluate-pull-request-approval-rules), per stabilire se le condizioni per le regole di approvazione per una richiesta pull sono state soddisfatte.

**Da utilizzare AWS CLI per modificare o eliminare una regola di approvazione per una pull request in un CodeCommit repository**<a name="update-pull-request-approval-rule-content"></a>

1. Per modificare una regola di approvazione, eseguire il comando **update-pull-request-approval-rule-content** specificando:
   + L'ID della richiesta di pull (con l'opzione **--id**).
   + Il nome della regola di approvazione (con l'opzione **--approval-rule-name**).
   + Il contenuto della regola di approvazione (con l'opzione **--approval-rule-content**).

   Questo esempio aggiorna una regola di approvazione denominata *Require two approved approvers* per una richiesta pull con l'ID di*27*. La regola richiede l'approvazione di un utente da un pool di approvazione che include qualsiasi utente IAM nell'account *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>Per eliminare una regola di approvazione, eseguire il comando **delete-pull-request-approval-rule**, specificando:
   + L'ID della richiesta di pull (con l'opzione **--id**).
   + Il nome della regola di approvazione (con l'opzione **--approval-rule-name**).

   Ad esempio, per eliminare una regola di approvazione con il nome *My Approval Rule* di una pull request con l'ID di*15*:

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

# Sostituisci le regole di approvazione su una pull request
<a name="how-to-override-approval-rules"></a>

Nel corso normale dello sviluppo, si desidera che gli utenti soddisfino le condizioni delle regole di approvazione prima di unire le richieste pull. Tuttavia, in alcuni casi potrebbe essere necessario accelerare l'unione di una richiesta pull. Ad esempio, è potrebbe essere necessario inserire una correzione di bug in produzione, ma nessuno nel pool di approvazione è disponibile per approvare la richiesta pull. In casi come questi, è possibile scegliere di ignorare le regole di approvazione in una richiesta pull. È possibile ignorare tutte le regole di approvazione per una richiesta pull, incluse quelle create appositamente per la richiesta pull e generate da un modello di regola di approvazione. Non è possibile ignorare selettivamente una regola di approvazione specifica, ma solo tutte le regole. Dopo aver impostato i requisiti della regola di approvazione sovrascrivendo le regole, è possibile unire la richiesta pull al relativo ramo di destinazione.

Quando si sostituiscono le regole di approvazione in una richiesta pull, le informazioni sull'utente che ha ignorato le regole vengono registrate nell'attività per la richiesta pull. In questo modo puoi tornare indietro nella cronologia di una richiesta pull e rivedere chi ha ignorato le regole. Puoi anche scegliere di revocare l'override se la richiesta pull è ancora aperta. Dopo che la richiesta pull è stata unita, non è più possibile revocare l'override.

**Topics**
+ [

## Sostituisci le regole di approvazione (console)
](#how-to-override-approval-rules-console)
+ [

## Sostituisci le regole di approvazione ()AWS CLI
](#how-to-override-approval-rules-cli)

## Sostituisci le regole di approvazione (console)
<a name="how-to-override-approval-rules-console"></a>

È possibile ignorare i requisiti delle regole di approvazione in una richiesta pull nella console, come parte della revisione di una richiesta pull. Se si cambia idea, è possibile revocare la sostituzione e i requisiti della regola di approvazione vengono riapplicati. È possibile ignorare le regole di approvazione o revocare una sostituzione solo se la richiesta pull è ancora aperta. Se viene unita o chiusa, non è possibile modificarne lo stato di sostituzione.

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

1. In **Repositories (Repository)**, scegliere il nome del repository. 

1. Nel riquadro di navigazione, selezionare **Pull requests (Richieste pull)**. Scegliere la richiesta pull in cui si desidera sostituire i requisiti delle regole di approvazione o revocare una sostituzione.

1. Nella scheda **Approvals (Approvazioni)** scegliere **Override approval rules (Sostituisci regole di approvazione)**. I requisiti vengono impostati e il testo del pulsante cambia in **Revoke override (Revoca override)**. Per riapplicare i requisiti della regola di approvazione, scegliere **Revoke override (Revoca sostituzione)**.

## Sostituisci le regole di approvazione ()AWS CLI
<a name="how-to-override-approval-rules-cli"></a>

È possibile utilizzare il AWS CLI per sovrascrivere i requisiti delle regole di approvazione. È inoltre possibile utilizzarlo per visualizzare lo stato di sostituzione di una richiesta pull.<a name="override-approval-rules"></a>

## Per sostituire i requisiti della regola di approvazione in una richiesta pull
<a name="override-approval-rules"></a>

1. Dal terminale o dalla riga di comando, eseguire il comando **override-pull-request-approval-rules**, specificando:
   + L'ID generato dal sistema della richiesta pull.
   + L'ultimo ID di revisione della richiesta pull. Per visualizzare queste informazioni, utilizzare **get-pull-request**.
   + Lo stato che si desidera per la sostituzione, `OVERRIDE` o `REVOKE`. Lo stato `REVOKE` rimuove lo stato `OVERRIDE`, ma non viene salvato.

   Ad esempio, per sostituire le regole di approvazione su una richiesta pull con un ID di **34** e un ID di revisione di **927df8d8EXAMPLE**:

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

1. In caso di successo, questo comando non restituisce alcun risultato.

1. Per revocare la sostituzione su una richiesta pull con un ID di **34** e un ID di revisione di **927df8d8EXAMPLE**:

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

## Per ottenere informazioni sullo stato di sostituzione di una richiesta pull
<a name="get-override-status"></a>

1. Dal terminale o dalla riga di comando, eseguire il comando **get-pull-request-override-state**, specificando:
   + L'ID generato dal sistema della richiesta pull.
   + L'ultimo ID di revisione della richiesta pull. Per visualizzare queste informazioni, utilizzare **get-pull-request**.

   Ad esempio, per visualizzare lo stato di sostituzione per una richiesta pull con un ID di **34** e un ID di revisione di **927df8d8EXAMPLE**:

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

1. Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

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

# Unisci una richiesta pull in un repository AWS CodeCommit
<a name="how-to-merge-pull-request"></a>

Una volta esaminato il codice e soddisfatte tutte le regole di approvazione (se presenti) nella richiesta pull, è possibile unire una richiesta pull in uno dei diversi modi illustrati di seguito:
+ <a name="is-mergable"></a>È possibile utilizzare la console per unire il ramo di origine al ramo di destinazione utilizzando una delle strategie di unione disponibili, che chiude anche la richiesta di pull. È inoltre possibile risolvere qualsiasi conflitto di unione nella console. Nella console viene visualizzato un messaggio che indica se la richiesta pull può essere unita o se i conflitti devono essere risolti. Quando tutti i conflitti vengono risolti e si sceglie **Merge (Unisci)**, l'unione viene eseguita utilizzando la strategia di unione scelta. L'inoltro rapido è la strategia di unione predefinita, che è l'opzione predefinita per Git. A seconda dello stato del codice nei rami di origine e di destinazione, tale strategia potrebbe non essere disponibile, ma potrebbero esserne disponibili altre, ad esempio la strategia squash o quella a 3 vie.
+ È possibile utilizzare la AWS CLI per unire e chiudere la pull request utilizzando la strategia fast-forward, squash o 3-way merge. 
+ <a name="why-git-merge"></a>Sul tuo computer locale, puoi usare il comando **git merge** per unire il ramo di origine nel ramo di destinazione e quindi eseguire il push del codice unito nel ramo di destinazione. Questo approccio presenta degli svantaggi da considerare attentamente. Unisce la richiesta di pull indipendentemente dal fatto che siano stati soddisfatti i requisiti per le regole di approvazione della richiesta di pull, eludendo tali controlli. L'unione e il push del ramo di destinazione chiudono automaticamente anche la richiesta pull, se la richiesta pull viene unita utilizzando la strategia di unione inoltro rapido. Un vantaggio di questo approccio è che il **git merge** comando consente di scegliere opzioni o strategie di unione che non sono disponibili nella console. CodeCommit Per ulteriori informazioni su **git merge** e sulle opzioni di unione, consulta [git-merge](https://git-scm.com/docs/git-merge) o la documentazione Git.

CodeCommit chiude automaticamente una richiesta pull se il ramo di origine o di destinazione della pull request viene eliminato.

**Topics**
+ [

## Unisce una pull request (console)
](#how-to-merge-pull-request-console)
+ [

## Unisci una richiesta pull ()AWS CLI
](#how-to-merge-pull-request-cli)

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

È possibile utilizzare la CodeCommit console per unire una richiesta pull in un CodeCommit repository. Una volta modificato in **Merged (Unito)**, lo stato di una richiesta di pull non appare più nell'elenco delle richieste di pull aperte. Una richiesta di pull unita è categorizzata come chiusa. Non può essere modificato in **Open (Apri)**, ma gli utenti possono comunque commentare le modifiche e rispondere ai commenti. Dopo l'unione o la chiusura di una richiesta pull, non è possibile approvarla, revocare l'approvazione o ignorare le regole di approvazione applicate alla richiesta pull.

1. [Apri la CodeCommit console su codecommit/homehttps://console.aws.amazon.com/codesuite/.](https://console.aws.amazon.com/codesuite/codecommit/home)

1. In **Repositories (Repository)**, scegliere il nome del repository. 

1. Nel riquadro di navigazione, selezionare **Pull requests (Richieste pull)**.

1. Per impostazione predefinita, viene visualizzato l'elenco di tutte le richieste pull aperte. Scegliere la richiesta di pull aperta che si desidera unire.

1. Nella richiesta pull, scegliere **Approvals (Approvazioni)**. Esaminare l'elenco degli approvatori e verificare che siano state soddisfatte le condizioni per tutte le regole di approvazione (se presenti). Non è possibile unire una richiesta pull se una o più regole di approvazione hanno lo stato **Rule not satisfied (Regola non soddisfatta)**. Se nessuno ha approvato la richiesta pull, valutare se si desidera unirla o se si desidera attendere le approvazioni.
**Nota**  
Se è stata creata una regola di approvazione per una richiesta pull, è possibile modificarla o eliminarla per sbloccare l'unione. Se la regola di approvazione è stata creata con un modello di regola di approvazione, non è possibile modificarla o eliminarla. È possibile scegliere solo di ignorare i requisiti. Per ulteriori informazioni, consulta [Sostituisci le regole di approvazione su una pull request](how-to-override-approval-rules.md).  
![\[Una richiesta pull che mostra una regola di approvazione le cui condizioni non sono state soddisfatte e un elenco vuoto di approvatori.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-approval-rule-not-met.png)

1. Selezionare **Merge (Unisci)**.

1. Nel richiesta di pull, scegliere tra le strategie di unione disponibili. Le strategie di unione non applicabili vengono visualizzate in grigio. Se non sono disponibili strategie di unione, puoi scegliere di risolvere manualmente i conflitti nella CodeCommit console oppure puoi risolverli localmente usando il tuo client Git. Per ulteriori informazioni, consulta [Risolvi i conflitti in una pull request in un AWS CodeCommit repository](how-to-resolve-conflict-pull-request.md).  
![\[Una pull request che mostra le strategie di unione disponibili per l'unione nella console. CodeCommit\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-merge-squash.png)
   + Una unione ad avanzamento rapido farà avanzare il riferimento per il ramo di destinazione al più recente commit del ramo di origine. Questo è il comportamento predefinito di Git quando possibile. Non viene creato nessun commit di unione, ma tutta la cronologia di commit dal ramo di origine viene conservata come se fosse avvenuta nel ramo di destinazione. Le unioni di avanzamento rapido non vengono visualizzate come unione di ramo nella visualizzazione del commit della cronologia del ramo di destinazione perché non viene creato alcun commit di unione. La punta del ramo di origine viene inoltrata rapidamente alla punta del ramo di destinazione. 
   + Una unione squash crea un commit contenente le modifiche nel ramo di origine e applica quel singolo commit squash al ramo di destinazione. Per impostazione predefinita, il messaggio di commit per il commit squash contiene tutti i messaggi di commit delle modifiche apportate al ramo di origine. Non verrà conservata nessuna cronologia di commit singola delle modifiche del ramo. Questo può aiutare a semplificare la cronologia dei repository conservando una rappresentazione grafica dell'unione nella vista del visualizzatore di commit della cronologia dei rami di destinazione. 
   + Una unione a tre vie creerà un commit di unione per l'unione nel ramo di destinazione, ma conserverà anche i commit singoli effettuati nel ramo di origine come parte della cronologia del ramo di destinazione. Questo può aiutare a mantenere una cronologia completa delle modifiche al repository.

1. Se si sceglie la strategia di unione squash o a tre vie, rivedere il messaggio di commit generato automaticamente e modificarlo se si desidera cambiare le informazioni. Aggiungere il nome e l'indirizzo e-mail per la cronologia di commit.

1. (Facoltativo) Deselezionare l'opzione per eliminare il ramo di origine come parte dell'unione. L'impostazione predefinita è eliminare il ramo di origine quando viene unita una richiesta pull.

1. Scegliere **Merge pull request (Unisci richiesta di pull)** per completare l'unione.

## Unisci una richiesta pull ()AWS CLI
<a name="how-to-merge-pull-request-cli"></a>

Per utilizzare AWS CLI i comandi con CodeCommit, installa AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

**Da utilizzare AWS CLI per unire le richieste pull in un repository CodeCommit **

1. <a name="evaluate-pull-request-approval-rules"></a>Per valutare se per una richiesta pull sono state soddisfatte tutte le regole di approvazione e risulta essere pronta per l'unione, eseguire il comando **evaluate-pull-request-approval-rules**, specificando:
   + L'ID della richiesta di pull (da utilizzare con l'opzione **--pull-request-id**).
   + L'ID di revisione della richiesta pull, utilizzando il **--revision-id option)**. È possibile ottenere l'ID di revisione corrente per una richiesta pull utilizzando il comando **[get-pull-request](how-to-view-pull-request.md#get-pull-request)**.

   Ad esempio, per valutare lo stato delle regole di approvazione su una pull request con un ID *27* e un ID di revisione pari a: *9f29d167EXAMPLE*

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
       "evaluation": {
           "approved": false,
           "approvalRulesNotSatisfied": [
               "Require two approved approvers"
           ],
           "overridden": false,
           "approvalRulesSatisfied": []
       }
   }
   ```
**Nota**  
Questo output indica che una richiesta pull non può essere unita perché i requisiti di una regola di approvazione non sono stati soddisfatti. Per unire questa richiesta pull, è possibile chiedere ai revisori di approvarla per soddisfare le condizioni della regola. A seconda delle autorizzazioni e della modalità di creazione della regola, è possibile modificare, ignorare o eliminare la regola. Per ulteriori informazioni, consulta [Revisione di una richiesta di pull](how-to-review-pull-request.md), [Sostituisci le regole di approvazione su una pull request](how-to-override-approval-rules.md) e [Modifica o elimina una regola di approvazione per una pull request](how-to-edit-delete-pull-request-approval-rule.md). 

1. Per unire e chiudere una richiesta di pull utilizzando una strategia di unione di avanzamento rapido, eseguire il comando **merge-pull-request-by-fast-forward**, specificando:
   + L'ID della richiesta di pull (con l'opzione **--pull-request-id**).
   + L'ID commit completo dell'estremità del ramo di origine (con l'opzione **--source-commit-id**). 
   + Il nome del repository (con l'opzione **--repository-name**).

    Ad esempio, per unire e chiudere una richiesta pull con l'ID di *47* e un ID di commit di origine *99132ab0EXAMPLE* in un repository denominato: *MyDemoRepo*

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
       "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. Per unire e chiudere una richiesta di pull utilizzando la strategia di unione squash, eseguire il comando **merge-pull-request-by-squash**, specificando:
   + L'ID della richiesta di pull (con l'opzione **--pull-request-id**).
   + L'ID commit completo dell'estremità del ramo di origine (con l'opzione **--source-commit-id**). 
   + Il nome del repository (con l'opzione **--repository-name**).
   + Il livello di dettaglio del conflitto che si desidera utilizzare (con l'opzione **--conflict-detail-level**). Se non altrimenti specificato, si utilizza l'impostazione predefinita **`FILE_LEVEL`**.
   + La strategia di risoluzione dei conflitti che si desidera utilizzare (con l'opzione **--conflict-resolution-strategy**). Se non altrimenti specificato, l'impostazione predefinita è `NONE` e i conflitti devono essere risolti manualmente.
   + Il messaggio di commit da includere (con l'opzione **--commit-message**).
   + Il nome da utilizzare per il commit (con l'opzione **--author-name**).
   + L'indirizzo e-mail da utilizzare per il commit (con l'opzione **--email**).
   + Per mantenere le cartelle vuote (con l'opzione **--keep-empty-folders**).

   L'esempio seguente unisce e chiude una richiesta pull con l'ID di *47* e l'ID di commit di origine *99132ab0EXAMPLE* in un repository denominato. *MyDemoRepo* Utilizza i dettagli del conflitto di `LINE_LEVEL` e la strategia di risoluzione dei conflitti di `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"
   ```

   In caso di successo, questo comando produce lo stesso tipo di output dell'unione mediante l'avanzamento rapido, output simile ai seguenti:

   ```
   {
       "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. Per unire e chiudere una richiesta di pull utilizzando la strategia di unione a tre vie, eseguire il comando **merge-pull-request-by-three-way**, specificando:
   + L'ID della richiesta di pull (con l'opzione **--pull-request-id**).
   + L'ID commit completo dell'estremità del ramo di origine (con l'opzione **--source-commit-id**). 
   + Il nome del repository (con l'opzione **--repository-name**).
   + Il livello di dettaglio del conflitto che si desidera utilizzare (con l'opzione **--conflict-detail-level**). Se non altrimenti specificato, si utilizza l'impostazione predefinita **`FILE_LEVEL`**.
   + La strategia di risoluzione dei conflitti che si desidera utilizzare (con l'opzione **--conflict-resolution-strategy**). Se non altrimenti specificato, l'impostazione predefinita è `NONE` e i conflitti devono essere risolti manualmente.
   + Il messaggio di commit da includere (con l'opzione **--commit-message**).
   + Il nome da utilizzare per il commit (con l'opzione **--author-name**).
   + L'indirizzo e-mail da utilizzare per il commit (con l'opzione **--email**).
   + Per mantenere le cartelle vuote (con l'opzione **--keep-empty-folders**).

   L'esempio seguente unisce e chiude una pull request con l'ID di *47* e un source commit ID di *99132ab0EXAMPLE* in un repository denominato. *MyDemoRepo* Utilizza le opzioni predefinite per i dettagli dei conflitti e la strategia di risoluzione dei conflitti:

   ```
   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"
   ```

   In caso di successo, questo comando produce lo stesso tipo di output dell'unione mediante l'avanzamento rapido, simile ai seguenti:

   ```
   {
       "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"
       }
   }
   ```

# Risolvi i conflitti in una pull request in un AWS CodeCommit repository
<a name="how-to-resolve-conflict-pull-request"></a>

Se la richiesta di pull presenta dei conflitti e non può essere unita, è possibile provare a risolvere i conflitti in uno dei seguenti modi:
+ Sul computer locale, è possibile utilizzare il comando **git diff** per trovare i conflitti tra i due rami e apportare modifiche per risolverli. È inoltre possibile utilizzare uno strumento delle differenze o altri prodotti software per aiutare i clienti a individuare e risolvere le differenze. Dopo averli risolti in modo soddisfacente, puoi inviare al ramo sorgente le modifiche che contengono i conflitti risolti, aggiornando così la pull request. Per ulteriori informazioni su **git diff** e **git difftool**, consulta la documentazione di Git.
+ Nella console, è possibile scegliere **Resolve conflicts (Risolvi conflitti)**. Si apre un editor di testo normale che mostra i conflitti in modo analogo al comando **git diff**. È possibile rivedere manualmente i conflitti in ogni file che li contiene, apportare le modifiche e quindi aggiornare la richiesta con le modifiche apportate.
+ In AWS CLI, puoi usare il AWS CLI per ottenere informazioni sui conflitti di unione e creare un commit di unione senza riferimenti per testare un'unione. 

**Topics**
+ [

## Risolvi i conflitti in una pull request (console)
](#how-to-resolve-conflict-pull-request-console)
+ [

## Risolvi i conflitti in una pull request ()AWS CLI
](#how-to-resolve-conflict-pull-request-cli)

## Risolvi i conflitti in una pull request (console)
<a name="how-to-resolve-conflict-pull-request-console"></a>

È possibile utilizzare la CodeCommit console per risolvere i conflitti in una richiesta pull in un CodeCommit repository. 

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

1. In **Repositories (Repository)**, scegliere il nome del repository. 

1. Nel riquadro di navigazione, selezionare **Pull requests (Richieste pull)**.

1. Per impostazione predefinita, viene visualizzato l'elenco di tutte le richieste pull aperte. Scegliere la richiesta di pull aperta da unire ma questa contiene i conflitti.

1. Nella richiesta di pull, scegliere **Resolve conflicts (Risolvi conflitti)**. Questa opzione è disponibile solo se non ci sono conflitti che devono essere risolti prima che la richiesta di pull possa essere unita.  
![\[Una richiesta di pull indicante conflitti che devono essere risolti prima di poter essere uniti.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-resolve-conflicts.png)

1. Si apre una finestra di risoluzione dei conflitti che mostra un elenco di tutti i file che presentano conflitti da risolvere. Scegliere ogni file nell'elenco per rivedere i conflitti e apportare le modifiche necessarie finché tutti i conflitti saranno stati risolti.  
![\[L'editor di risoluzione dei conflitti mostra un file con i conflitti che non sono stati ancora risolti.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-resolve.png)
   + È possibile scegliere di utilizzare i contenuti del file di origine, i contenuti del file di destinazione oppure se il file non è un file binario, per modificare manualmente i contenuti di un file in modo che contenga solo le modifiche desiderate. I marker git diff standard vengono utilizzati per visualizzare i conflitti tra la destinazione (HEAD) e i rami di origine nel file.
   + Se un file è un file binario, un modulo secondario Git oppure se esiste un conflitto di nome file/cartella, è necessario scegliere di utilizzare il file di origine o il file di destinazione per risolvere i conflitti. Non è possibile visualizzare o modificare file binari nella console. CodeCommit 
   + In caso di conflitti tra le modalità di file, viene visualizzata l'opzione per risolvere tale conflitto scegliendo tra la modalità di file del file di origine e la modalità di file del file di destinazione. 
   + Se si decide di ignorare le modifiche per un file e ripristinarne lo stato in conflitto, scegliere **Reset file (Ripristina file)**. In questo modo sarà possibile risolvere i conflitti in modo diverso.

1. Se si è soddisfatti delle modifiche, scegliere **Update pull request (Aggiorna pull di richiesta)**.
**Nota**  
È necessario risolvere tutti i conflitti in tutti i file prima di aggiornare con successo la richiesta di pull con le modifiche apportate. 

1. La richiesta di pull viene aggiornata con le modifiche e può essere unita. Viene visualizzata la pagina di unione. È possibile scegliere di unire la richiesta di pull in questo momento oppure è possibile tornare all'elenco delle richieste di pull. 

## Risolvi i conflitti in una pull request ()AWS CLI
<a name="how-to-resolve-conflict-pull-request-cli"></a>

Per utilizzare AWS CLI i comandi con CodeCommit, installa AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

Nessun AWS CLI comando consente di risolvere i conflitti in una richiesta pull e di unire tale richiesta. Tuttavia, è possibile utilizzare i comandi individuali per individuare i conflitti, tentare di risolverli e verificare se una richiesta di pull può essere unita. È possibile utilizzare:
+ **get-merge-options**, per conoscere quali opzioni di unione sono disponibili per una unione tra due specificatori di commit.
+ **get-merge-conflicts**, per restituire un elenco di file con conflitti di unione in un'unione tra due specificatori di commit.
+ **batch-describe-merge-conflicts**, per ottenere informazioni su tutti i conflitti di unione nei file in un'unione tra due commit utilizzando una strategia di unione specificata. 
+ **describe-merge-conflicts**, per ottenere informazioni dettagliate su conflitti di unione per un determinato file tra due commit utilizzando una strategia di unione specificata.
+ **create-unreferenced-merge-commit**, per testare il risultato dell'unione di due specificatori di commit utilizzando una strategia di unione specificata.

1. <a name="get-merge-options"></a>Per scoprire quali opzioni di unione sono disponibili per una fusione tra due specificatori di commit, eseguire il comando **get-merge-options**, specificando:
   + Uno specificatore di commit per l'origine dell'unione (con l'opzione **--source-commit-specifier**).
   + Uno specificatore di commit per la destinazione dell'unione (con l'opzione **--destination-commit-specifier**). 
   + Il nome del repository (con l'opzione **--repository-name**).
   + (Facoltativo) Una strategia di risoluzione dei conflitti da utilizzare (con l'opzione **--conflict-resolution-strategy**).
   + (Facoltativo) Il livello di dettaglio delle informazioni sui conflitti (con l'opzione **--conflict-detail-level**).

    Ad esempio, per determinare le strategie di unione disponibili per unire un ramo di origine denominato *bugfix-1234* con un ramo di destinazione denominato in un repository denominato: *main* *MyDemoRepo*

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

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

1. <a name="get-merge-conflict"></a>Per ottenere un elenco dei file contenenti i conflitti di unione in un'unione tra due specificatori di commit, eseguire il comando **get-merge-conflicts**, specificando:
   + Uno specificatore di commit per l'origine dell'unione (con l'opzione **--source-commit-specifier**).
   + Uno specificatore di commit per la destinazione dell'unione (con l'opzione **--destination-commit-specifier**). 
   + Il nome del repository (con l'opzione **--repository-name**).
   + L'opzione di unione da utilizzare (con l'opzione **--merge-option**).
   + (Facoltativo) Il livello di dettaglio delle informazioni sui conflitti (con l'opzione **--conflict-detail-level**).
   + (Facoltativo) Una strategia di risoluzione dei conflitti da utilizzare (con l'opzione **--conflict-resolution-strategy**).
   + (Facoltativo) Il numero massimo di file con conflitti da restituire (con l'opzione **--max-conflict-files**).

   Ad esempio, per ottenere un elenco di file che contengono conflitti in seguito a un'unione tra un ramo di origine denominato feature-randomizationfeature e un ramo di destinazione denominato main, utilizza la strategia di unione a tre vie in un repository denominato: MyDemoRepo

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
       "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>Per ottenere informazioni sui conflitti di unione in tutti i file o in un sottoinsieme di file in una unione tra due specificatori di commit, eseguire il comando **batch-describe-merge-conflicts**, specificando:
   + Uno specificatore di commit per l'origine dell'unione (con l'opzione **--source-commit-specifier**).
   + Uno specificatore di commit per la destinazione dell'unione (con l'opzione **--destination-commit-specifier**). 
   + L'opzione di unione da utilizzare (con l'opzione **--merge-option**).
   + Il nome del repository (con l'opzione **--repository-name**).
   + (Facoltativo) Una strategia di risoluzione dei conflitti da utilizzare (con l'opzione **--conflict-resolution-strategy**).
   + (Facoltativo) Il livello di dettaglio delle informazioni sui conflitti (con l'opzione **--conflict-detail-level**).
   + (Facoltativo) Il numero massimo di hunk di unione da restituire (con l'opzione **--max-merge-hunks**).
   + (Facoltativo) Il numero massimo di file con conflitti da restituire (con l'opzione **--max-conflict-files**).
   + (Facoltativo) il percorso dei file di destinazione da utilizzare per descrivere i conflitti (con l'opzione **--file-paths**).

    Ad esempio, per determinare i conflitti di unione dovuti all'unione di un ramo di origine denominato *feature-randomizationfeature* con un ramo di destinazione denominato utilizzando la strategia in un repository denominato: *main* *THREE\$1WAY\$1MERGE* *MyDemoRepo*

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

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
       "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>Per ottenere informazioni dettagliate su qualsiasi conflitto di unione per un determinato file in un'unione tra due specificatori di commit, eseguire il comando **describe-merge-conflicts**, specificando:
   + Uno specificatore di commit per l'origine dell'unione (con l'opzione **--source-commit-specifier**).
   + Uno specificatore di commit per la destinazione dell'unione (con l'opzione **--destination-commit-specifier**). 
   + L'opzione di unione da utilizzare (con l'opzione **--merge-option**).
   + Il percorso dei file di destinazione da utilizzare per descrivere i conflitti (con l'opzione **--file-path**).
   + Il nome del repository (con l'opzione **--repository-name**).
   + (Facoltativo) Una strategia di risoluzione dei conflitti da utilizzare (con l'opzione **--conflict-resolution-strategy**).
   + (Facoltativo) Il livello di dettaglio delle informazioni sui conflitti (con l'opzione **--conflict-detail-level**).
   + (Facoltativo) Il numero massimo di hunk di unione da restituire (con l'opzione **--max-merge-hunks**).
   + (Facoltativo) Il numero massimo di file con conflitti da restituire (con l'opzione **--max-conflict-files**).

   Ad esempio, per determinare i conflitti di unione per un file denominato *readme.md* in un ramo di origine denominato *feature-randomizationfeature* con un ramo di destinazione denominato *main* utilizzando la *THREE\$1WAY\$1MERGE* strategia in un repository denominato: *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
   ```

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
       "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>Per creare un commit non referenziato che rappresenta il risultato dell'unione di due specificatori di commit, eseguire il comando **create-unreferenced-merge-commit**, specificando:
   + Uno specificatore di commit per l'origine dell'unione (con l'opzione **--source-commit-specifier**).
   + Uno specificatore di commit per la destinazione dell'unione (con l'opzione **--destination-commit-specifier**). 
   + L'opzione di unione da utilizzare (con l'opzione **--merge-option**).
   + Il nome del repository (con l'opzione **--repository-name**).
   + (Facoltativo) Una strategia di risoluzione dei conflitti da utilizzare (con l'opzione **--conflict-resolution-strategy**).
   + (Facoltativo) Il livello di dettaglio delle informazioni sui conflitti (con l'opzione **--conflict-detail-level**).
   + (Facoltativo) Il messaggio di commit da includere (con l'opzione **--commit-message**).
   + (Facoltativo) Il nome da utilizzare per il commit (con l'opzione **--name**).
   + (Facoltativo) L'indirizzo e-mail da utilizzare per il commit (con l'opzione **--email**).
   + (Facoltativo) Per mantenere le cartelle vuote (con l'opzione **--keep-empty-folders**).

    Ad esempio, per determinare i conflitti di unione per l'unione di un ramo di origine denominato *bugfix-1234* con un ramo di destinazione denominato *main* utilizzando la strategia ACCEPT\$1SOURCE in un repository denominato: *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."
   ```

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

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

# Chiudere una pull request in un AWS CodeCommit repository
<a name="how-to-close-pull-request"></a>

Se si desidera chiudere una richiesta di pull senza unire il codice, è possibile farlo in uno dei seguenti modi:
+ Nella console, puoi chiudere una richiesta di pull senza unire il codice. Potresti voler eseguire questa operazione quando vuoi utilizzare il comando **git merge** per unire manualmente i rami o se il codice nel ramo di origine della richiesta di pull non è il codice che vuoi unire al ramo di destinazione. 
+ È possibile eliminare il ramo di origine specificato nella pull request. CodeCommit chiude automaticamente una richiesta pull se il ramo di origine o di destinazione della pull request viene eliminato.
+ In AWS CLI, puoi aggiornare lo stato di una pull request da `OPEN` a`CLOSED`. Questo chiude la richiesta di pull senza unire il codice. 

**Topics**
+ [

## Chiudi una pull request (console)
](#how-to-close-pull-request-console)
+ [

## Chiudere una pull request (AWS CLI)
](#how-to-close-pull-request-cli)

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

È possibile utilizzare la CodeCommit console per chiudere una richiesta pull in un CodeCommit repository. Una volta che lo stato di una richiesta di pull è diventato **Closed (Chiuso)**, non può tornare **Open (Aperto)**, ma gli utenti possono ancora commentare le modifiche e rispondere ai commenti.

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

1. In **Repositories (Repository)**, scegliere il nome del repository. 

1. Nel riquadro di navigazione, selezionare **Pull requests (Richieste pull)**.

1. Per impostazione predefinita, viene visualizzato l'elenco di tutte le richieste pull aperte. Scegliere la richiesta di pull aperta che si desidera chiudere.  
![\[Le richieste pull vengono visualizzate nella console. CodeCommit\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Nella richiesta di pull, scegliere **Close pull request (Chiudi richiesta di pull)**. Questa opzione chiude la richiesta di pull senza tentare di unire il ramo di origine nel ramo di destinazione. Questa opzione non fornisce un modo per eliminare il ramo di origine come parte della chiusura della richiesta di pull, ma è possibile farlo dopo che la richiesta è stata chiusa.

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

Per utilizzare AWS CLI i comandi con CodeCommit, installa AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

**Da utilizzare AWS CLI per chiudere le richieste pull in un CodeCommit repository**
+ Per aggiornare lo stato di una richiesta di pull in un repository da `OPEN` a `CLOSED`, eseguire il comando **update-pull-request-status** specificando:
  + L'ID della richiesta di pull (con l'opzione **--pull-request-id**).
  + Lo stato della richiesta di pull (con l'opzione **--pull-request-status**).

  Ad esempio, per aggiornare lo stato di una pull request con l'ID di *42* a uno status di *CLOSED* in un CodeCommit repository denominato: `MyDemoRepo`

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

  Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

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

****  

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

------