Creare un modello di regola di approvazione - AWS CodeCommit

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à.

Creare un modello di regola di approvazione

È possibile creare uno o più modelli di regola di approvazione per personalizzare i flussi di lavoro di sviluppo tra repository. Creando più modelli, è possibile configurare la creazione automatica delle regole di approvazione in modo che i diversi rami abbiano livelli appropriati di approvazioni e controllo. Ad esempio, è possibile creare modelli diversi per i rami di produzione e sviluppo e applicare questi modelli a uno o più repository. Quando gli utenti creano richieste pull in tali repository, la richiesta viene valutata rispetto a tali modelli. Se la richiesta corrisponde alle condizioni nei modelli applicati, vengono create regole di approvazione per la richiesta pull.

È possibile utilizzare la console o l'AWS CLI per creare modelli di regola di approvazione. Per ulteriori informazioni sulle politiche gestite e sulle autorizzazioni per i modelli di regole di approvazione, vedereAutorizzazioni per le azioni sui modelli di regole di approvazione eAWS politiche gestite per CodeCommit.

Creare un modello di regola di approvazione (console)

I modelli di regola di approvazione non sono associati a nessun repository per impostazione predefinita. È possibile creare un'associazione tra un modello e uno o più repository quando si crea il modello oppure è possibile aggiungere le associazioni in un secondo momento.

Per creare un modello di regola di approvazione (Console)

  1. Apri laCodeCommit console all'indirizzo https://console.aws.amazon.com/codesuite/codecommit/home.

  2. Scegliere Approval rule templates (Modelli di regola di approvazione), quindi Create template (Crea modello).

  3. Nel Approval rule template name (Nome del modello di regola di approvazione), assegnare al modello un nome descrittivo in modo da sapere a cosa serve. Ad esempio, se si desidera richiedere a una persona di un gruppo di sviluppatori senior di approvare una richiesta pull prima che possa essere unita, è possibile assegnare un nome alla regola Require 1 approver from a senior developer.

  4. (Facoltativo) In Description (Descrizione), fornire una descrizione dello scopo di questo modello. Questo può aiutare gli altri a decidere se questo modello è appropriato per i loro repository.

  5. In Number of approvals needed (Numero di approvazioni necessarie), immettere il numero desiderato. Il valore di default è 1.

  6. (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 presunto: questa opzione precompila l'ID dell'account Amazon Web Services per 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. Questa è un'opzione molto potente che offre una grande flessibilità. Ad esempio, se scegli questa opzione e hai effettuato l'accesso con l'account Amazon Web Services 123456789012 e lo specifichiMary_Major, tutte le seguenti informazioni vengono conteggiate come approvazioni provenienti da quell'utente:

      • Un utente IAM nell'account (arn:aws:iam::123456789012:user/Mary_Major)

      • Un utente federato in IAM come Mary_Major (arn:aws:sts::123456789012:federated-user/Mary_Major)

      Questa opzione non riconosce 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 completo: questa opzione consente di specificare l'Amazon Resource Name (ARN) completo 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::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 il ruolo assunto 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 (*) nei loro valori. Ad esempio, se si sceglie l'opzione nome utente IAM o ruolo presunto e si specificaCodeCommitReview/*, 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 sia Li_Juan contano come approvazioni quando accedono e assumono il ruolo di CodeCommitReview. Per ulteriori informazioni sugli ARN IAM, sulle wildcard e sui formati IAM, consultare la sezione relativa all'utilizzo degli ARN IAM, consultare la sezione relativa all'utilizzo degli ARN IAM, consultare la sezione

    Nota

    Le regole di approvazione non supportano le approvazioni cross-account.

  7. (Facoltativo) In Branch filters (Filtri ramo), immettere i nomi dei rami di destinazione da utilizzare per filtrare la creazione delle regole di approvazione. Ad esempio, se si specifica main, viene creata una regola di approvazione per le richieste pull nei repository associati solo se il ramo di destinazione della richiesta pull è un ramo denominato main. È possibile utilizzare i caratteri jolly (*) nei nomi dei rami per applicare le regole di approvazione a tutti i nomi di ramo che corrispondono ai caratteri jolly. Tuttavia, non è possibile utilizzare un carattere jolly all'inizio del nome di un ramo. È possibile specificare fino a 100 nomi di ramo. Se non si specificano filtri, il modello si applica a tutti i rami in un repository associato.

  8. (Facoltativo) In Archivi associati, nell'elenco Repository, scegli i repositoryRegione AWS che desideri associare a questa regola di approvazione.

    Nota

    È possibile scegliere di associare repository dopo aver creato il modello. Per ulteriori informazioni, consulta Associare un modello di regola di approvazione a un repository.

  9. Scegli Create (Crea) .

Un modello di regola di approvazione che richiede 1 approvatore da una regola di approvazione definita se viene creata una pull request su un ramo denominato main, associato a due repository

Creare un modello di regola di approvazione (AWS CLI)

È possibile utilizzare l'AWS CLI per creare modelli di regola di approvazione. Quando si utilizza l'AWS CLI, è possibile specificare i riferimenti di destinazione per il modello, in modo che si applichi solo alle richieste pull i cui rami di destinazione corrispondono a quelli del modello.

Per creare un modello di regola di approvazione (AWS CLI)

  1. Dal terminale o dalla riga di comando, eseguire il comando create-approval-rule-template, specificando:

    • Nome per il modello di regola di approvazione. Prendere in considerazione l'utilizzo di un nome che ne descrive lo scopo.

    • Descrizione del modello di regola di approvazione. Come per il nome, prendere in considerazione la possibilità di fornire una descrizione dettagliata.

    • La struttura JSON del modello di regola di approvazione. Questa struttura può includere i requisiti per i riferimenti di destinazione, ovvero i rami di destinazione per le richieste pull a cui viene applicata la regola di approvazione, e i membri del pool di approvazione, che sono utenti le cui approvazioni contano per il numero di approvazioni richieste.

    Quando si crea il contenuto della 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 che per gli utenti ad accesso federato 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'AWSaccount 123456789012 eMary_Major, tutte le seguenti informazioni vengono conteggiate come approvazioni provenienti da quell'utente:

      • Un utente IAM nell'account (arn:aws:iam::123456789012:user/Mary_Major)

      • Un utente federato in IAM come Mary_Major (arn:aws:sts::123456789012:federated-user/Mary_Major)

      Questa opzione non riconosce una sessione attiva di qualcuno che assume il ruolo di SeniorDeveloperscon un nome di sessione di ruolo Mary_Major (arn:aws:sts::123456789012:assumed-role/SeniorDevelopers/Mary_Major) a meno che non si includa un wildcard (*Mary_Major).

    • ARN completo: questa opzione consente di specificare l'Amazon Resource Name (ARN) completo dell'utente o del ruolo IAM.

    Per ulteriori informazioni sugli ARN IAM, sulle wildcard e sui formati IAM, consultare la sezione relativa all'utilizzo degli ARN IAM, consultare la sezione relativa all'utilizzo degli ARN IAM, consultare la sezione

    Nell'esempio seguente viene creato un modello di regola di approvazione denominato 2-approver-rule-for-main e una descrizione di Requires two developers from the team to approve the pull request if the destination branch is main. Il modello richiede due utenti che assumono il ruolo di CodeCommitReview per approvare qualsiasi richiesta pull prima che possa essere unita al ramo main:

    aws codecommit create-approval-rule-template --approval-rule-template-name 2-approver-rule-for-main --approval-rule-template-description "Requires two developers from the team to approve the pull request if the destination branch is main" --approval-rule-template-content "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}"
  2. Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

    { "approvalRuleTemplate": { "approvalRuleTemplateName": "2-approver-rule-for-main", "creationDate": 1571356106.936, "approvalRuleTemplateId": "dd8b17fe-EXAMPLE", "approvalRuleTemplateContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", "approvalRuleTemplateDescription": "Requires two developers from the team to approve the pull request if the destination branch is main", "lastModifiedDate": 1571356106.936, "ruleContentSha256": "4711b576EXAMPLE" } }