Anhang A: GitHub (per OAuth App) Quellaktionen - AWS CodePipeline

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.

Anhang A: GitHub (per OAuth App) Quellaktionen

Dieser Anhang enthält Informationen über die GitHub Aktion (per OAuth App) in CodePipeline.

Anmerkung

Wir empfehlen zwar nicht, die Aktion GitHub (per OAuth App) zu verwenden, aber bestehende Pipelines mit der Aktion GitHub (per OAuth App) funktionieren weiterhin, ohne dass dies Auswirkungen hat. CodePipeline Verwendet bei einer Pipeline mit einer Aktion GitHub (per OAuth App) OAuth basierte Tokens, um eine Verbindung zu deinem GitHub Repository herzustellen. Im Gegensatz dazu verwendet die GitHub Aktion (über GitHub App) eine Verbindungsressource, um AWS Ressourcen mit Ihrem GitHub Repository zu verknüpfen. Die Verbindungsressource verwendet App-basierte Token, um eine Verbindung herzustellen. Weitere Informationen zur Aktualisierung Ihrer Pipeline auf die empfohlene GitHub Aktion, die eine Verbindung verwendet, finden Sie unterAktualisieren Sie eine GitHub (über OAuth App) Quellaktion auf eine GitHub (über GitHub App) Quellaktion. Weitere Informationen zum OAuth basierten GitHub Zugriff im Gegensatz zum appbasierten GitHub Zugriff finden Sie unterhttps://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps.

Für die Integration GitHub CodePipeline verwendet eine GitHub OAuth Anwendung für Ihre Pipeline. CodePipelineverwendet Webhooks, um die Änderungserkennung für Ihre Pipeline mit der Quellaktion GitHub (per OAuth App) zu verwalten.

Anmerkung

Wenn Sie eine Quellaktion GitHub (per GitHub App) in konfigurieren AWS CloudFormation, geben Sie keine GitHub Token-Informationen an und fügen keine Webhook-Ressource hinzu. Sie konfigurieren eine Verbindungsressource wie AWS::CodeStarConnections::Connectionim AWS CloudFormation Benutzerhandbuch beschrieben.

Diese Referenz enthält die folgenden Abschnitte für die Aktion GitHub (per OAuth App):

Wichtig

Verwenden Sie beim Erstellen von CodePipeline Webhooks nicht Ihre eigenen Anmeldeinformationen und verwenden Sie nicht dasselbe geheime Token für mehrere Webhooks. Generieren Sie für optimale Sicherheit für jeden Webhook, den Sie erstellen, ein eindeutiges geheimes Token. Das geheime Token ist eine willkürliche Zeichenfolge, die Sie angeben und die zur Berechnung und Signierung der gesendeten Webhook-Payloads GitHub verwendet wird CodePipeline, um die Integrität und Authentizität der Webhook-Payloads zu schützen. Die Verwendung Ihrer eigenen Anmeldeinformationen oder die Wiederverwendung desselben Tokens in mehreren Webhooks kann zu Sicherheitslücken führen.

Anmerkung

Wenn ein geheimes Token bereitgestellt wurde, wird es in der Antwort redigiert.

Hinzufügen einer GitHub Quellaktion (über die OAuth App)

Sie fügen GitHub (per OAuth App) Quellaktionen hinzu, CodePipeline indem Sie:

  • Wählen Sie mithilfe der CodePipeline Konsole den Assistenten „Pipeline erstellen“ (Erstellen Sie eine benutzerdefinierte Pipeline (Konsole)) oder die Aktionsseite „Bearbeiten“ aus, um die GitHubAnbieteroption auszuwählen. Die Konsole erstellt einen Webhook, der Ihre Pipeline startet, wenn sich die Quelle ändert.

  • Verwenden Sie die CLI, um die Aktionskonfiguration für die GitHub Aktion hinzuzufügen und zusätzliche Ressourcen wie folgt zu erstellen:

    • Verwenden Sie die GitHub Beispiel-Aktionskonfiguration inGitHub Referenz für die Quellaktion (per OAuth App), um die Aktion zu erstellen, wie unter gezeigtErstellen einer Pipeline (CLI).

    • Regelmäßige Prüfungen werden deaktiviert und die Änderungserkennung manuell erstellt, da die Methode zur Änderungserkennung standardmäßig die Pipeline durch Abfragen der Quelle startet. Sie migrieren Ihre Polling-Pipeline für GitHub (über App-) Aktionen zu Webhooks. OAuth

GitHub Referenz für die Quellaktion (per OAuth App)

Anmerkung

Wir empfehlen zwar nicht, die Aktion GitHub (per OAuth App) zu verwenden, aber bestehende Pipelines mit der Aktion GitHub (per OAuth App) funktionieren weiterhin ohne Auswirkungen. CodePipeline Verwendet bei einer Pipeline mit einer Quellaktion GitHub GitHub (per OAuth App) OAuth basierte Tokens, um eine Verbindung zu deinem GitHub Repository herzustellen. Im Gegensatz dazu verwendet die neue GitHub Aktion (über GitHub App) eine Verbindungsressource, um AWS Ressourcen mit Ihrem GitHub Repository zu verknüpfen. Die Verbindungsressource verwendet App-basierte Token, um eine Verbindung herzustellen. Weitere Informationen zur Aktualisierung Ihrer Pipeline auf die empfohlene GitHub Aktion, die eine Verbindung verwendet, finden Sie unterAktualisieren Sie eine GitHub (über OAuth App) Quellaktion auf eine GitHub (über GitHub App) Quellaktion.

Löst die Pipeline aus, wenn ein neuer Commit für das konfigurierte GitHub Repository und den Branch vorgenommen wird.

CodePipeline Verwendet zur Integration GitHub eine OAuth Anwendung oder ein persönliches Zugriffstoken für Ihre Pipeline. Wenn Sie die Konsole verwenden, um Ihre Pipeline zu erstellen oder zu bearbeiten, CodePipeline erstellt sie einen GitHub Webhook, der Ihre Pipeline startet, wenn eine Änderung im Repository erfolgt.

Sie müssen bereits ein GitHub Konto und ein Repository erstellt haben, bevor Sie die Pipeline über eine GitHub Aktion verbinden können.

Wenn Sie den Zugriff auf CodePipeline Repositorys einschränken möchten, erstellen Sie ein GitHub Konto und gewähren Sie dem Konto nur Zugriff auf die Repositorys, in die Sie integrieren möchten. CodePipeline Verwenden Sie dieses Konto, wenn Sie die Verwendung von GitHub Repositorys für Quellstufen in Pipelines konfigurieren CodePipeline .

Weitere Informationen finden Sie in der GitHub Entwicklerdokumentation auf der GitHub Website.

Aktionstyp

  • Kategorie: Source

  • Eigentümer: ThirdParty

  • Anbieter: GitHub

  • Version: 1

Konfigurationsparameter

Eigentümer

Erforderlich: Ja

Der Name des GitHub Benutzers oder der Organisation, dem das GitHub Repository gehört.

Repo

Erforderlich: Ja

Der Name des Repositorys, in dem Quelländerungen erkannt werden sollen.

Verzweigung

Erforderlich: Ja

Der Name des Zweigs, in dem Quelländerungen erkannt werden sollen.

OAuthToken

Erforderlich: Ja

Stellt das GitHub Authentifizierungstoken dar, mit CodePipeline dem Operationen in Ihrem GitHub Repository ausgeführt werden können. Die Eingabe wird stets als Maske mit vier Sternchen angezeigt. Sie stellt einen der folgenden Werte dar:

  • Wenn Sie die Konsole verwenden, um die Pipeline zu erstellen, CodePipeline verwendet ein OAuth Token, um die GitHub Verbindung zu registrieren.

  • Wenn Sie die Pipeline AWS CLI zum Erstellen der Pipeline verwenden, können Sie in diesem Feld Ihr GitHub persönliches Zugriffstoken übergeben. Ersetzen Sie die Sternchen (****) durch Ihr persönliches Zugriffstoken, von dem Sie kopiert wurden. GitHub Wenn Sie get-pipeline ausführen, um die Aktionskonfiguration anzuzeigen, wird dieser Wert durch vier Sternchen maskiert angezeigt.

  • Wenn Sie eine AWS CloudFormation Vorlage verwenden, um die Pipeline zu erstellen, müssen Sie das Token zunächst als Secret in speichern. AWS Secrets Manager Sie fügen den Wert für dieses Feld als dynamischen Verweis auf das gespeicherte Geheimnis in Secrets Manager ein, z. {{resolve:secretsmanager:MyGitHubSecret:SecretString:token}} B.

Weitere Informationen zu GitHub Bereichen finden Sie in der GitHub Developer API Reference auf der GitHub Website.

PollForSourceChanges

Erforderlich: Nein

PollForSourceChangessteuert, ob das GitHub Repository nach Quellenänderungen CodePipeline abfragt. Es wird empfohlen, stattdessen Webhooks zu verwenden, um Quelländerungen zu erkennen. Weitere Informationen zum Konfigurieren von Webhooks finden Sie unter Migrieren Sie Abfrage-Pipelines zu Webhooks GitHub (über OAuth App), Quellaktionen) (CLI) oder Aktualisiere Pipelines für Push-Ereignisse GitHub (über OAuth App), Quellaktionen) (AWS CloudFormation Vorlage).

Wichtig

Wenn Sie Webhooks konfigurieren möchten, müssen Sie PollForSourceChanges auf false festlegen, um doppelte Pipeline-Ausführungen zu vermeiden.

Gültige Werte für diesen Parameter sind:

  • True: Falls gesetzt, CodePipeline fragt dein Repository nach Quellenänderungen ab.

    Anmerkung

    Wenn Sie diese Option weglassenPollForSourceChanges, wird CodePipeline standardmäßig Ihr Repository nach Quelländerungen abgefragt. Dieses Verhalten ist das gleiche, als ob PollForSourceChanges auf true festgelegt würde.

  • False: Falls gesetzt, fragt dein Repository CodePipeline nicht nach Quelländerungen ab. Sie verwenden diese Einstellung, wenn Sie einen Webhook konfigurieren möchten, um Quelländerungen zu erkennen.

Input artifacts (Eingabeartefakte)

  • Anzahl der Artefakte: 0

  • Beschreibung: Eingabe-Artefakte sind für diesen Aktionstyp nicht gültig.

Ausgabeartefakte

  • Anzahl der Artefakte: 1

  • Beschreibung: Das Ausgabe-Artefakt dieser Aktion ist eine ZIP-Datei, die den Inhalt des konfigurierten Repositorys und Zweigs beim Commit enthält, der als Quellrevision für die Pipeline-Ausführung angegeben wurde. Die aus dem Repository generierten Artefakte sind die Ausgabeartefakte für die GitHub Aktion. Die Quellcode-Commit-ID wird CodePipeline als Quellrevision für die ausgelöste Pipeline-Ausführung angezeigt.

Ausgabevariablen

Wenn dies konfiguriert ist, werden durch diese Aktion Variablen erzeugt, die von der Aktionskonfiguration einer nachgeschalteten Aktion in der Pipeline referenziert werden können. Diese Aktion erzeugt Variablen, die als Ausgabevariablen angezeigt werden können, auch wenn die Aktion keinen Namespace hat. Sie konfigurieren eine Aktion mit einem Namespace, um diese Variablen für die Konfiguration nachgeschalteter Aktionen zur Verfügung zu stellen.

Weitere Hinweise zu Variablen in CodePipeline finden Sie unterVariablen-Referenz.

CommitId

Die GitHub Commit-ID, die die Pipeline-Ausführung ausgelöst hat. Commit IDs sind die vollständigen SHA-Werte des Commits.

CommitMessage

Die Beschreibungsmeldung (wenn vorhanden), die dem Commit zugeordnet ist, der die Pipeline-Ausführung ausgelöst hat.

CommitUrl

Die URL-Adresse für den Commit, der die Pipeline ausgelöst hat.

RepositoryName

Der Name des GitHub Repositorys, in dem der Commit vorgenommen wurde, der die Pipeline ausgelöst hat.

BranchName

Der Name des Branches für das GitHub Repository, in dem die Quellenänderung vorgenommen wurde.

AuthorDate

Das Datum im Zeitstempelformat, an dem der Commit erstellt wurde.

CommitterDate

Das Datum im Zeitstempelformat, an dem der Commit durchgeführt wurde.

Aktionsdeklaration (GitHub-Beispiel)

YAML
Name: Source Actions: - InputArtifacts: [] ActionTypeId: Version: '1' Owner: ThirdParty Category: Source Provider: GitHub OutputArtifacts: - Name: SourceArtifact RunOrder: 1 Configuration: Owner: MyGitHubAccountName Repo: MyGitHubRepositoryName PollForSourceChanges: 'false' Branch: main OAuthToken: '{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}' Name: ApplicationSource
JSON
{ "Name": "Source", "Actions": [ { "InputArtifacts": [], "ActionTypeId": { "Version": "1", "Owner": "ThirdParty", "Category": "Source", "Provider": "GitHub" }, "OutputArtifacts": [ { "Name": "SourceArtifact" } ], "RunOrder": 1, "Configuration": { "Owner": "MyGitHubAccountName", "Repo": "MyGitHubRepositoryName", "PollForSourceChanges": "false", "Branch": "main", "OAuthToken": "{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}" }, "Name": "ApplicationSource" } ] },

Verbindung herstellen zu GitHub (OAuth)

Wenn Sie die Konsole zum ersten Mal verwenden, um einer Pipeline ein GitHub Repository hinzuzufügen, werden Sie aufgefordert, den CodePipeline Zugriff auf Ihre Repositorys zu autorisieren. Das Token erfordert die folgenden Bereiche: GitHub

  • Den repo- Umfang, der für die volle Kontrolle verwendet wird, um Artefakte aus öffentlichen und privaten Repositorys in eine Pipeline zu lesen und einzufügen.

  • Den admin:repo_hook Umfang, der für die volle Kontrolle über Repository-Hooks verwendet wird.

Wenn Sie die CLI oder eine AWS CloudFormation Vorlage verwenden, müssen Sie den Wert für ein persönliches Zugriffstoken angeben, das Sie bereits erstellt haben GitHub.

Die folgenden verwandten Ressourcen bieten Ihnen nützliche Informationen für die Arbeit mit dieser Aktion.