AWS CodeCommit non è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. Scopri di più»
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à.
Creazione di una regola di approvazione per una richiesta pull
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
È inoltre possibile creare modelli di regola di approvazione, che consentono di automatizzare la creazione di regole di approvazione tra repository che si applicheranno a ogni richiesta pull. Per ulteriori informazioni, consulta la pagina Utilizzo dei modelli di regola di approvazione .
Per creare le regole di approvazione per il tuo repository, puoi utilizzare la console AWS CodeCommit o l'AWS CLI.
Argomenti
Creazione di una regola di approvazione per una richiesta pull (console)
Puoi utilizzare il plugin CodeCommit Console per creare una regola di approvazione per una richiesta pull in un CodeCommit repository.
Apertura della CodeCommit Console inhttps://console.aws.amazon.com/codesuite/codecommit/home
. -
In Repositories (Repository), selezionare il nome del repository in cui si desidera creare una richiesta pull.
-
Nel riquadro di navigazione, selezionare Pull Requests (Richieste pull).
-
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.
-
Nella richiesta pull, scegliere Approvals (Approvazioni), quindi scegliere Create approval rule (Crea regola di approvazione).
-
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.
-
(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 prepopola ilAWSID account con l'account che hai usato per accedere e richiede solo un nome. Può essere utilizzato sia per gli utenti IAM sia per gli utenti di accesso federati il cui nome corrisponde al nome fornito. Questa è un'opzione molto potente che offre una grande flessibilità. Ad esempio, se si è connessi con l'account Amazon Web Services, si è connessi con l'account Amazon Web Services, si è connessi con l'account Amazon Web Services,
Mary_Major
, tutti i seguenti vengono conteggiati come approvazioni provenienti da tale utente:Un utente IAM nell'account (
arn:aws:iam::123456789012:user/Mary_Major
)Un utente federato identificato in IAM come Mary_Major (
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_Major (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 pienamente qualificato: Questa opzione consente di specificare il nome risorsa Amazon completo (ARN) dell'utente o del ruolo IAM. Questa opzione supporta anche i ruoli assunti utilizzati da altri servizi AWS, ad esempio AWS Lambda e AWS CodeBuild. Per i ruoli assunti, il formato ARN deve essere
arn:aws:sts::
per i ruoli eAccountID
:assumed-role/RoleName
arn:aws:sts::
per le funzioni.AccountID
:assumed-role/FunctionName
Se hai sceltoNome utente IAM o ruolo assuntocome tipo di approvatore, inValore, immettere 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 (*) nei loro valori. Ad esempio, se si sceglie l'opzioneNome utente IAM o ruolo assuntoopzione e tu specifichi
CodeCommitReview/*
, tutti gli utenti che assumono il ruolo diCodeCommitReview
vengono conteggiati nel pool di approvazione. I nomi delle sessioni di ruolo individuali valgono per il numero richiesto di approvatori. In questo modo, sia Mary_Major che Li_Juan sono contati come approvazioni al momento dell'accesso e dell'assunzione del ruolo diCodeCommitReview
. Per ulteriori informazioni su ARN, caratteri jolly e formati IAM, consultareIdentificatori IAM.Nota
Le regole di approvazione non supportano le approvazioni cross-account.
-
Al termine della configurazione della regola di approvazione, scegliere Submit (Invia).
Creazione di una regola di approvazione per una richiesta pull (AWS CLI)
Per utilizzareAWS CLIcomandi con CodeCommit, installare ilAWS CLI. Per ulteriori informazioni, consulta la pagina Guida di riferimento alla riga di comando .
Per creare una regola di approvazione per una richiesta pull in un CodeCommit magazzino
-
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 utilizzato sia per gli utenti IAM sia per gli utenti di accesso federati il cui nome corrisponde al nome della risorsa fornito. Questa è un'opzione molto potente che offre una grande flessibilità. Ad esempio, se si specifica l'account Amazon Web Services 123456789012 e
Mary_Major
, tutti i seguenti vengono conteggiati come approvazioni provenienti da tale utente:-
Un utente IAM nell'account (
arn:aws:iam::123456789012:user/Mary_Major
) -
Un utente federato identificato in IAM come Mary_Major (
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_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major
) a meno che non si includa un carattere jolly (*Mary_Major
). -
-
ARN pienamente qualificato: Questa opzione consente di specificare il nome risorsa Amazon completo (ARN) dell'utente o del ruolo IAM.
Per ulteriori informazioni su ARN, caratteri jolly e formati IAM, consultareIdentificatori IAM.
Nell'esempio seguente viene creata una regola di approvazione denominata
Require two approved approvers
per una richiesta pull con ID di27
. La regola specifica che sono necessarie due approvazioni da un pool di approvazioni. Il pool include tutti gli utenti che accedono CodeCommit e assumere il ruolo diCodeCommitReview
nella123456789012
account Amazon Web Services. Include anche un utente IAM o un utente federato denominatoNikhil_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/*\"]}]}" -
-
Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:
{ "approvalRule": { "approvalRuleName": "Require two approved approvers", "lastModifiedDate": 1570752871.932, "ruleContentSha256": "7c44e6ebEXAMPLE", "creationDate": 1570752871.932, "approvalRuleId": "aac33506-EXAMPLE", "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:
123456789012
:Nikhil_Jayashankar
\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major" } }