Pull richiedi l'approvazione dei commenti - AWS CodeBuild

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

Pull richiedi l'approvazione dei commenti

CodeBuild supporta le politiche di compilazione delle pull request che forniscono un controllo aggiuntivo sulle build attivate dalle richieste pull. Potresti non voler creare automaticamente richieste pull da utenti sconosciuti fino a quando le loro modifiche non saranno riviste. Questa funzionalità ti consente di richiedere a uno dei membri del tuo team di rivedere prima il codice e poi eseguire la pipeline. Questa è comunemente usata come misura di sicurezza quando si crea un codice inviato da collaboratori sconosciuti.

Le politiche di compilazione delle pull request consentono di controllare quando vengono generati i CodeBuild trigger per le richieste pull in base alle autorizzazioni e allo stato di approvazione del contributore. Ciò è particolarmente importante per gli archivi pubblici o gli archivi che accettano contributi da collaboratori esterni.

Se abilitata, questa funzionalità assicura che le build vengano attivate solo per le richieste pull quando:

  • La pull request viene creata da un collaboratore affidabile.

  • Un collaboratore affidabile approva la pull request pubblicando un commento specifico.

Come funziona

Collaboratori fidati

Un collaboratore affidabile è un utente il cui ruolo attuale nel sistema di controllo del codice sorgente è impostato nella politica basata sulle pull request come ruoli di approvatore. Quando un collaboratore affidabile crea una pull request, CodeBuild attiva automaticamente la build, mantenendo il comportamento corrente.

Collaboratori non attendibili

Un collaboratore non attendibile è un utente il cui ruolo non è impostato nell'elenco dei ruoli di approvatore. Quando un contributo non attendibile crea una pull request:

  1. CodeBuild contrassegna lo stato di compilazione come «Failed» con il messaggio «Pull request approval required for start a build».

  2. Un collaboratore affidabile deve esaminare le modifiche e pubblicare un commento /codebuild_run(<SHA_OF_THE_LATEST_COMMIT>) per attivare la build. Ad esempio, /codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369).

  3. CodeBuild convalida le autorizzazioni del commentatore e attiva la build se approvata.

  4. I risultati della build vengono riportati nella pagina di pull request.

Sintassi di approvazione dei commenti

I collaboratori attendibili possono approvare le build utilizzando i seguenti formati di commento:

  • /codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)- I trigger si basano sul commit SHA specificato.

Configurazione

Comportamento predefinito

La politica di compilazione delle pull request è abilitata per impostazione predefinita per tutti i progetti appena creati CodeBuild .

Parametri dell'API

La politica di compilazione della pull request è configurata utilizzando il PullRequestBuildPolicy parametro nelle seguenti azioni:

  • CreateWebhook

  • UpdateWebhook

PullRequestBuildPolicystruttura
{ "requiresCommentApproval": "string", "approverRoles": ["string", ...] }
requiresCommentApproval

Speciifica quando è richiesta l'approvazione basata sui commenti prima di attivare una build on pull request. Questa impostazione determina se le build vengono eseguite automaticamente o richiedono l'approvazione esplicita tramite commenti.

Tipo: stringa

Valori validi:

  • DISABLED- Le build si attivano automaticamente senza richiedere l'approvazione dei commenti.

  • FORK_PULL_REQUESTS- Solo le richieste pull provenienti da repository biforcati richiedono l'approvazione dei commenti (a meno che il collaboratore non sia uno dei ruoli di approvazione).

  • ALL_PULL_REQUESTS- Tutte le richieste pull richiedono l'approvazione dei commenti prima dell'esecuzione delle build (a meno che il collaboratore non sia uno dei ruoli di approvazione). Si tratta del valore di default.

approverRoles

Elenco dei ruoli del repository che dispongono dei privilegi di approvazione per le build di pull request quando è richiesta l'approvazione dei commenti. Solo gli utenti con questi ruoli possono fornire approvazioni di commenti valide. Se un collaboratore di pull request è uno di questi ruoli, le relative build di pull request verranno attivate automaticamente.

Tipo: matrice di stringhe

Valori validi per i GitHub progetti (i valori sono mappati ai ruoli): GitHub

  • GITHUB_ADMIN- Amministratori del repository

  • GITHUB_MAINTAIN- Manutentori del repository

  • GITHUB_WRITE- Utente con autorizzazioni di scrittura

  • GITHUB_TRIAGE- Utente con autorizzazioni di triage

  • GITHUB_READ- Utente con autorizzazioni di lettura

  • Impostazione predefinita: ["GITHUB_ADMIN", "GITHUB_MAINTAINER", "GITHUB_WRITE"]

Valori validi per i GitLab progetti (i valori sono mappati ai GitLab ruoli):

  • GITLAB_OWNER- Proprietario del repository

  • GITLAB_MAINTAINER- Gestore del repository

  • GITLAB_DEVELOPER- Utente con autorizzazioni di sviluppatore

  • GITLAB_REPORTER- Utente con autorizzazioni di reporter

  • GITLAB_PLANNER- Utente con autorizzazioni di pianificazione

  • GITLAB_GUEST - Utente con autorizzazioni da ospite

  • Impostazione predefinita: ["GITLAB_OWNER", "GITLAB_MAINTAINER", "GITLAB_DEVELOPER"]

Valori validi per i progetti Bitbucket (i valori sono mappati ai ruoli di Bitbucket):

  • BITBUCKET_ADMIN - Amministratore del repository

  • BITBUCKET_WRITE- Utente con autorizzazioni di scrittura

  • BITBUCKET_READ - Utente con autorizzazioni di lettura

  • Impostazione predefinita: ["BITBUCKET_ADMIN", "BITBUCKET_WRITE"]

Esempi

Abilita l'approvazione dei commenti per tutte le richieste pull

Per utilizzare l' AWS CodeBuild SDK per abilitare o disabilitare la politica Pull Request Build per un webhook, utilizza il pullRequestBuildPolicy campo nella sintassi della richiesta dei metodi CreateWebhook o UpdateWebhook API. Per ulteriori informazioni, consulta WebhookFilter nella documentazione di riferimento dell'API CodeBuild .

Gli utenti con ruoli Github Admin, Maintain e Write verranno trattati come collaboratori affidabili.

"pullRequestBuildPolicy": { "requiresCommentApproval": "ALL_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAIN", "GITHUB_WRITE"] }
Abilita l'approvazione dei commenti solo per gli amministratori e i manutentori del repository

Gli utenti con GitHub i ruoli Admin, Maintain verranno trattati come collaboratori affidabili.

"pullRequestBuildPolicy": { "requiresCommentApproval": "FORK_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAINER"] }
Disabilita l'approvazione dei commenti
"pullRequestBuildPolicy": { "requiresCommentApproval": "DISABLED" }

AWS CloudFormation

Per utilizzare un AWS CloudFormation modello per abilitare o disabilitare la politica Pull Request Build per un webhook, utilizzate la PullRequestBuildPolicy proprietà. La seguente parte di un AWS CloudFormation modello in formato YAML crea un progetto con un webhook che ha la Pull Request Build Policy abilitata per tutte le richieste pull. Mantieni e amministra i ruoli specificati come approvatori.

CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole: service-role Artifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Source: Type: BITBUCKET Location: source-location Triggers: Webhook: true FilterGroups: - - Type: EVENT Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED - Type: BASE_REF Pattern: ^refs/heads/main$ ExcludeMatchedPattern: false PullRequestBuildPolicy: RequiresCommentApproval: ALL_PULL_REQUESTS ApproverRoles: - GITHUB_MAINTAIN - GITHUB_ADMIN

Configurazione della console

Per utilizzare la console di AWS gestione per filtrare gli eventi dei webhook:

  1. Per l'approvazione dei commenti, seleziona disabilitato o abilitato per tutte le richieste pull (ALL_PULL_REQUEST) o solo per le richieste pull da forks (FORK_PULL_REQUEST).

  2. Per i ruoli di approvatore, seleziona i ruoli del repository che dispongono dei privilegi di approvazione per le build di pull request quando è richiesta l'approvazione dei commenti.

Per ulteriori informazioni, consulta le pagine Creare un progetto di compilazione (console) e WebhookFilter nella Documentazione di riferimento dell'API CodeBuild .

Console per eventi webhook di origine principale con approvazione dei commenti.