Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Genehmigung eines Pull-Request-Kommentars
CodeBuild unterstützt Richtlinien zum Erstellen von Pull-Requests, die zusätzliche Kontrolle über Builds bieten, die durch Pull-Requests ausgelöst werden. Möglicherweise möchten Sie Pull-Requests von unbekannten Benutzern erst dann automatisch erstellen, wenn deren Änderungen überprüft werden können. Mit dieser Funktion können Sie von einem Ihrer Teammitglieder verlangen, zuerst den Code zu überprüfen und dann die Pipeline auszuführen. Dies wird häufig als Sicherheitsmaßnahme bei der Erstellung eines Codes verwendet, der von unbekannten Mitwirkenden eingereicht wurde.
Mithilfe von Richtlinien zum Erstellen von Pull-Requests können Sie anhand der Berechtigungen und des Genehmigungsstatus des Mitwirkenden steuern, wann Builds für Pull-Requests CodeBuild ausgelöst werden. Dies ist besonders wichtig für öffentliche Repositorien oder Repositorien, die Beiträge von externen Mitarbeitern akzeptieren.
Wenn diese Funktion aktiviert ist, stellt sie sicher, dass Builds nur für Pull-Requests ausgelöst werden, wenn entweder:
-
Die Pull-Anfrage wird von einem vertrauenswürdigen Mitwirkenden erstellt.
-
Ein vertrauenswürdiger Mitwirkender genehmigt die Pull-Anfrage, indem er einen bestimmten Kommentar veröffentlicht.
Funktionsweise
- Vertrauenswürdige Mitwirkende
-
Ein vertrauenswürdiger Mitwirkender ist ein Benutzer, dessen aktuelle Rolle im Quellcodeverwaltungssystem in der auf Pull-Requests basierenden Richtlinie als Genehmiger festgelegt ist. Wenn ein vertrauenswürdiger Mitwirkender eine Pull-Anfrage erstellt, CodeBuild löst er den Build automatisch aus, wobei das aktuelle Verhalten beibehalten wird.
- Nicht vertrauenswürdige Mitwirkende
-
Ein nicht vertrauenswürdiger Mitwirkender ist ein Benutzer, dessen Rolle nicht in der Liste der Genehmigerrollen aufgeführt ist. Wenn ein nicht vertrauenswürdiger Beitrag eine Pull-Anfrage erstellt:
-
CodeBuild markiert den Build-Status als „Fehlgeschlagen“ mit der Meldung „Für den Start eines Builds ist eine Genehmigung der Pull-Anfrage erforderlich“.
-
Ein vertrauenswürdiger Mitwirkender muss die Änderungen überprüfen und einen Kommentar posten,
/codebuild_run(um den Build auszulösen. Beispiel,<SHA_OF_THE_LATEST_COMMIT>)/codebuild_run(.046e8b67481d53bdc86c3f6affdd5d1afae6d369) -
CodeBuild validiert die Berechtigungen des Kommentators und löst den Build aus, wenn er genehmigt wird.
-
Die Build-Ergebnisse werden auf der Pull-Request-Seite gemeldet.
-
- Syntax zur Genehmigung von Kommentaren
-
Vertrauenswürdige Mitwirkende können Builds mit den folgenden Kommentarformaten genehmigen:
-
/codebuild_run(— Trigger bauen auf dem angegebenen Commit-SHA auf.046e8b67481d53bdc86c3f6affdd5d1afae6d369)
-
Konfiguration
- Standardverhalten
-
Die Build-Richtlinie für Pull-Requests ist standardmäßig für alle neu erstellten CodeBuild Projekte aktiviert.
- API-Parameter
-
Die Richtlinie zum Erstellen von Pull-Requests wird mithilfe des
PullRequestBuildPolicyParameters in den folgenden Aktionen konfiguriert:-
CreateWebhook -
UpdateWebhook
-
PullRequestBuildPolicyStruktur-
{ "requiresCommentApproval": "string", "approverRoles": ["string", ...] } requiresCommentApproval-
Gibt an, wann eine kommentarbasierte Genehmigung erforderlich ist, bevor ein Build auf Pull-Requests ausgelöst wird. Diese Einstellung bestimmt, ob Builds automatisch ausgeführt werden oder eine ausdrückliche Genehmigung durch Kommentare erfordern.
Typ: Zeichenfolge
Zulässige Werte:
-
DISABLED- Builds werden automatisch ausgelöst, ohne dass eine Genehmigung durch Kommentare erforderlich ist. -
FORK_PULL_REQUESTS— Nur Pull-Requests von Fork-Repositorys erfordern die Genehmigung von Kommentaren (es sei denn, der Mitwirkende gehört zu den Genehmiger). -
ALL_PULL_REQUESTS— Für alle Pull-Requests ist die Genehmigung von Kommentaren erforderlich, bevor Builds ausgeführt werden können (es sei denn, der Mitwirkende gehört zu den Genehmiger). Dies ist der Standardwert.
-
approverRoles-
Liste der Repository-Rollen, die Genehmigungsrechte für Pull-Request-Builds haben, wenn eine Genehmigung von Kommentaren erforderlich ist. Nur Benutzer mit diesen Rollen können gültige Genehmigungen für Kommentare erteilen. Wenn ein Pull-Request-Mitwirkender eine dieser Rollen ist, werden seine Pull-Request-Builds automatisch ausgelöst.
Typ: Zeichenfolgen-Array
Gültige Werte für GitHub Projekte (die Werte sind den GitHub Rollen zugeordnet):
-
GITHUB_ADMIN- Repository-Administratoren -
GITHUB_MAINTAIN- Repository-Betreuer -
GITHUB_WRITE- Benutzer mit Schreibrechten -
GITHUB_TRIAGE- Benutzer mit Triage-Rechten -
GITHUB_READ- Benutzer mit Leseberechtigungen -
Standard:
["GITHUB_ADMIN", "GITHUB_MAINTAINER", "GITHUB_WRITE"]
Gültige Werte für GitLab Projekte (die Werte sind den GitLab Rollen zugeordnet):
-
GITLAB_OWNER- Besitzer des Repositorys -
GITLAB_MAINTAINER- Betreuer des Repositorys -
GITLAB_DEVELOPER- Benutzer mit Entwicklerberechtigungen -
GITLAB_REPORTER- Benutzer mit Reporterberechtigungen -
GITLAB_PLANNER- Benutzer mit Planerberechtigungen -
GITLAB_GUEST- Benutzer mit Gastberechtigungen -
Standard:
["GITLAB_OWNER", "GITLAB_MAINTAINER", "GITLAB_DEVELOPER"]
Gültige Werte für Bitbucket-Projekte (die Werte sind den Bitbucket-Rollen zugeordnet):
-
BITBUCKET_ADMIN— Repository-Administrator -
BITBUCKET_WRITE- Benutzer mit Schreibrechten -
BITBUCKET_READ- Benutzer mit Leserechten -
Standard:
["BITBUCKET_ADMIN", "BITBUCKET_WRITE"]
-
Beispiele
- Aktiviert die Genehmigung von Kommentaren für alle Pull-Requests
-
Um das AWS CodeBuild SDK zu verwenden, um die Pull-Request-Build-Richtlinie für einen Webhook zu aktivieren oder zu deaktivieren, verwenden Sie das
pullRequestBuildPolicyFeld in der Anforderungssyntax derCreateWebhookoderUpdateWebhookAPI-Methoden. Weitere Informationen finden Sie unter WebhookFilter in der CodeBuild -API-Referenz.Benutzer mit den Github-Rollen Admin, Maintain und Write werden als vertrauenswürdige Mitwirkende behandelt.
"pullRequestBuildPolicy": { "requiresCommentApproval": "ALL_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAIN", "GITHUB_WRITE"] } - Aktiviere die Genehmigung von Kommentaren nur für Repository-Administratoren und -Betreuer
-
Benutzer mit den GitHub Rollen Admin und Maintain werden als vertrauenswürdige Mitwirkende behandelt.
"pullRequestBuildPolicy": { "requiresCommentApproval": "FORK_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAINER"] } - Deaktivieren Sie die Genehmigung von Kommentaren
-
"pullRequestBuildPolicy": { "requiresCommentApproval": "DISABLED" }
AWS CloudFormation
Um eine AWS CloudFormation Vorlage zu verwenden, um die Pull-Request-Build-Richtlinie für einen Webhook zu aktivieren oder zu deaktivieren, verwenden Sie die PullRequestBuildPolicy Eigenschaft. Der folgende Teil einer AWS CloudFormation Vorlage im YAML-Format erstellt ein Projekt mit einem Webhook, für den die Pull-Request-Build-Richtlinie für alle Pull-Requests aktiviert ist. Verwalte und verwalte die Rollen, wie sie als Genehmiger angegeben sind.
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
Konfiguration der Konsole
So verwenden Sie die AWS Management Console zum Filtern von Webhook-Ereignissen:
-
Wählen Sie für die Genehmigung von Kommentaren entweder deaktiviert oder aktiviert für alle Pull-Requests (
ALL_PULL_REQUEST) oder nur für Pull-Anfragen von Forks (FORK_PULL_REQUEST) aus. -
Wählen Sie für Genehmigerrollen Repository-Rollen aus, die Genehmigungsrechte für Pull-Request-Builds haben, wenn eine Genehmigung von Kommentaren erforderlich ist.
Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt (Konsole) und WebhookFilter in der CodeBuild -API-Referenz.