View a markdown version of this page

Genehmigung eines Kommentars per Pull-Anfrage - AWS CodeBuild

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 Kommentars per Pull-Anfrage

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 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 verwendet, wenn Code erstellt wird, der von unbekannten Mitwirkenden eingereicht wurde.

Mithilfe von Richtlinien zum Erstellen von Pull-Requests kannst du 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 Repositorys 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:

  • Der Pull Request wird von einem vertrauenswürdigen Mitwirkenden erstellt.

  • Ein vertrauenswürdiger Mitwirkender genehmigt den Pull-Request, indem er einen bestimmten Kommentar veröffentlicht.

Funktionsweise

Vertrauenswürdige Mitwirkende

Ein vertrauenswürdiger Mitwirkender ist ein Benutzer, dessen aktuelle Rolle im Versionskontrollsystem in der auf Pull-Requests basierenden Richtlinie als Genehmigerrolle festgelegt ist. Wenn ein vertrauenswürdiger Mitwirkender einen Pull Request erstellt, wird der Build automatisch CodeBuild ausgelöst, 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 Mitwirkender einen Pull Request erstellt:

  1. CodeBuild markiert den Build-Status als „Fehlgeschlagen“ mit der Meldung „Für den Start eines Builds ist eine Genehmigung des Pull-Requests erforderlich“.

  2. Ein vertrauenswürdiger Mitwirkender muss die Änderungen überprüfen und einen Kommentar posten, /codebuild_run(<SHA_OF_THE_LATEST_COMMIT>) um den Build auszulösen. Beispiel, /codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369).

  3. CodeBuild überprüft die Berechtigungen des Kommentators und löst den Build aus, wenn er genehmigt wird.

  4. Die Build-Ergebnisse werden auf der Pull-Request-Seite gemeldet.

Syntax zur Genehmigung von Kommentaren

Vertrauenswürdige Mitwirkende können Builds mithilfe der folgenden Kommentarformate genehmigen:

  • /codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)— Trigger bauen auf dem angegebenen Commit-SHA auf.

Konfiguration

Standardverhalten

Die Pull-Request-Build-Richtlinie ist standardmäßig für alle neu erstellten CodeBuild Projekte aktiviert.

API-Parameter

Die Build-Richtlinie für Pull-Requests wird mithilfe des PullRequestBuildPolicy Parameters 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 ob eine ausdrückliche Genehmigung durch Kommentare erforderlich ist.

Typ: Zeichenfolge

Zulässige Werte:

  • DISABLED— Builds werden automatisch ausgelöst, ohne dass eine Genehmigung des Kommentars erforderlich ist.

  • FORK_PULL_REQUESTS— Nur für Pull-Requests aus geforkten Repositorys ist eine Genehmigung des Kommentars erforderlich (es sei denn, der Mitwirkende hat eine der Genehmigerrollen).

  • ALL_PULL_REQUESTS— Alle Pull-Requests müssen vor der Ausführung von Builds durch Kommentare genehmigt werden (es sei denn, der Mitwirkende hat eine der Genehmigerrollen). Dies ist der Standardwert.

approverRoles

Liste der Repository-Rollen, die Genehmigungsrechte für Pull-Request-Builds haben, wenn die Genehmigung von Kommentaren erforderlich ist. Nur Benutzer mit diesen Rollen können gültige Kommentare genehmigen. 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-Berechtigungen

  • GITHUB_READ- Benutzer mit Leseberechtigungen

  • Standard: ["GITHUB_ADMIN", "GITHUB_MAINTAIN", "GITHUB_WRITE"]

Gültige Werte für GitLab Projekte (die Werte werden den GitLab Rollen zugeordnet):

  • GITLAB_OWNER- Besitzer des Repositorys

  • GITLAB_MAINTAINER- Repository-Betreuer

  • 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"]

Benutzerdefinierte GitHub Enterprise-Rollen

CodeBuild ordnet benutzerdefinierte GitHub Enterprise-Repository-Rollen (GHE) GITHUB_* Standardwerten zu, die auf der höchsten Berechtigungsstufe basieren, die der benutzerdefinierten Rolle gewährt wurde. CodeBuild wertet Berechtigungen von der höchsten zur niedrigsten Berechtigung aus, und die erste aktivierte Berechtigung bestimmt die zugeordnete Rolle.

  • adminGITHUB_ADMIN

  • maintainGITHUB_MAINTAIN

  • push(schreiben) → GITHUB_WRITE

  • triageGITHUB_TRIAGE

  • pull(lesen) → GITHUB_READ

Beispiel: Eine benutzerdefinierte Rolle, die beide triage Berechtigungen gewährt push und der GITHUB_WRITE Grund dafür ist, dass sie höhere Rechte als push hattriage.

Wenn eine benutzerdefinierte Rolle über keine der anerkannten Berechtigungen verfügt (Admin, Maintain, Push, Triage, Pull — alle deaktiviert), entspricht der Benutzer keiner Genehmigerrolle und wird als nicht vertrauenswürdiger Mitwirkender behandelt.

GitHub Standardrollen (Admin, Maintain, Write, Triage, Read) werden direkt den entsprechenden GITHUB_* Werten zugeordnet, ohne dass eine berechtigungsbasierte Lösung erforderlich ist.

Beispiele

Aktiviere die Genehmigung von Kommentaren für alle Pull-Requests

Um das AWS CodeBuild SDK zum Aktivieren oder Deaktivieren der Pull Request Build-Richtlinie für einen Webhook zu verwenden, verwenden Sie das pullRequestBuildPolicy Feld in der Anforderungssyntax der CreateWebhook oder UpdateWebhook API-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_MAINTAIN"] }
Deaktivieren Sie die Genehmigung von Kommentaren
"pullRequestBuildPolicy": { "requiresCommentApproval": "DISABLED" }

AWS CloudFormation

Um eine AWS CloudFormation Vorlage zum Aktivieren oder Deaktivieren der Pull Request Build-Richtlinie für einen Webhook zu verwenden, verwenden Sie die PullRequestBuildPolicy Eigenschaft. Im folgenden YAML-formatted Teil einer AWS CloudFormation Vorlage wird ein Projekt mit einem Webhook erstellt, bei dem die Pull Request Build Policy für alle Pull Requests aktiviert ist. Die Rollen Maintain und Admin sind als Genehmiger angegeben.

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 Managementkonsole zum Filtern von Webhook-Ereignissen:

  1. Wähle für die Genehmigung von Kommentaren entweder Deaktiviert oder Aktiviert für alle Pull Requests (ALL_PULL_REQUEST) oder nur für Pull Requests von Forks (FORK_PULL_REQUEST) aus.

  2. Wähle für Genehmigerrollen Repository-Rollen aus, die Genehmigungsberechtigungen für Pull-Request-Builds haben, wenn eine Kommentargenehmigung erforderlich ist.

Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt (Konsole) und WebhookFilter in der CodeBuild -API-Referenz.

Konsole für Webhook-Ereignisse aus der Primärquelle mit Genehmigung von Kommentaren.