View a markdown version of this page

Annexe A : actions relatives aux sources GitHub (via l'application OAuth) - AWS CodePipeline

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Annexe A : actions relatives aux sources GitHub (via l'application OAuth)

Cette annexe fournit des informations sur l'action GitHub (via l'application OAuth) dans. CodePipeline

Note

Bien que nous ne recommandons pas d'utiliser l'action GitHub (via l'application OAuth), les pipelines existants dotés de l'action GitHub (via l'application OAuth) continueront de fonctionner sans aucun impact. Pour un pipeline avec une action GitHub (via l'application OAuth), CodePipeline utilise des OAuth-based jetons pour se connecter à votre GitHub référentiel. En revanche, l' GitHub action (via GitHub App) utilise une ressource de connexion pour associer AWS des ressources à votre GitHub référentiel. La ressource de connexion utilise des jetons basés sur des applications pour se connecter. Pour plus d'informations sur la mise à jour de votre pipeline selon l' GitHubaction recommandée utilisant une connexion, consultezMettre à jour une action source GitHub (via l'application OAuth) en une action source GitHub (via GitHub l'application). Pour plus d'informations sur OAuth-based GitHub l'accès par opposition à l' GitHub accès basé sur une application, consultezhttps://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps.

Pour intégrer GitHub, CodePipeline utilise une application GitHub OAuth pour votre pipeline. CodePipelineutilise des webhooks pour gérer la détection des modifications pour votre pipeline à l'aide de l'action GitHub source (via l'application OAuth).

Note

Lorsque vous configurez une action source GitHub (via GitHub App) dans CloudFormation, vous n'incluez aucune information sur les GitHub jetons et vous n'ajoutez aucune ressource Webhook. Vous configurez une ressource de connexions comme indiqué dans AWS::CodeStarConnections : :Connection du Guide de l' CloudFormation utilisateur.

Cette référence contient les sections suivantes relatives à l'action GitHub (via l'application OAuth) :

Important

Lorsque vous créez des CodePipeline webhooks, n'utilisez pas vos propres informations d'identification et ne réutilisez pas le même jeton secret sur plusieurs webhooks. Pour une sécurité optimale, générez un jeton secret unique pour chaque webhook que vous créez. Le jeton secret est une chaîne arbitraire que vous fournissez, qui est GitHub utilisée pour calculer et signer les charges utiles du webhook envoyées CodePipeline, afin de protéger l'intégrité et l'authenticité des charges utiles du webhook. L'utilisation de vos propres informations d'identification ou la réutilisation du même jeton sur plusieurs webhooks peut entraîner des failles de sécurité.

Note

Si un jeton secret a été fourni, il sera supprimé dans la réponse.

Ajouter une action GitHub source (via l'application OAuth)

Vous ajoutez GitHub (via l'application OAuth) des actions source pour CodePipeline  :

  • À l'aide de l'assistant de création de pipeline (Création d'un pipeline personnalisé (console)) de la CodePipeline console ou de la page Modifier l'action pour choisir l'option du GitHub fournisseur. La console crée un webhook qui démarre votre pipeline lorsque la source change.

  • Utilisation de l'interface de ligne de commande pour ajouter la configuration de l'GitHubaction et créer des ressources supplémentaires comme suit :

GitHub (via l'application OAuth) référence de l'action source

Note

Bien que nous ne recommandons pas d'utiliser l'action GitHub (via l'application OAuth), les pipelines existants dotés de l'action GitHub (via l'application OAuth) continueront de fonctionner sans aucun impact. Pour un pipeline avec une action source GitHub (via l'application OAuth), CodePipeline utilise des OAuth-based jetons pour se connecter à votre GitHub référentiel. En revanche, la nouvelle GitHub action (via GitHub App) utilise une ressource de connexion pour associer AWS des ressources à votre GitHub référentiel. La ressource de connexion utilise des jetons basés sur des applications pour se connecter. Pour plus d'informations sur la mise à jour de votre pipeline selon l' GitHub action recommandée utilisant une connexion, consultezMettre à jour une action source GitHub (via l'application OAuth) en une action source GitHub (via GitHub l'application).

Déclenche le pipeline lorsqu'un nouveau commit est effectué sur le GitHub référentiel et la branche configurés.

Pour l'intégrer GitHub, CodePipeline utilise une application OAuth ou un jeton d'accès personnel pour votre pipeline. Si vous utilisez la console pour créer ou modifier votre pipeline, CodePipeline crée un GitHub webhook qui démarre votre pipeline lorsqu'une modification se produit dans le référentiel.

Vous devez déjà avoir créé un GitHub compte et un référentiel avant de connecter le pipeline par le biais d'une GitHub action.

Si vous souhaitez limiter l'accès aux CodePipeline référentiels, créez un GitHub compte et accordez-lui l'accès uniquement aux référentiels auxquels vous souhaitez vous intégrer. CodePipeline Utilisez ce compte lorsque vous configurez CodePipeline l'utilisation de GitHub référentiels pour les étapes source dans les pipelines.

Pour plus d'informations, consultez la documentation GitHub destinée aux développeurs sur le GitHub site Web.

Type d'action

  • Catégorie : Source

  • Propriétaire : ThirdParty

  • Fournisseur : GitHub

  • Version : 1

Paramètres de configuration

Propriétaire

Obligatoire : oui

Le nom de l' GitHub utilisateur ou de l'organisation propriétaire du GitHub référentiel.

Repo

Obligatoire : oui

Nom du référentiel où les modifications de la source doivent être détectées.

Branche

Obligatoire : oui

Nom de la branche où les modifications de la source doivent être détectées.

OAuthToken

Obligatoire : oui

Représente le jeton GitHub d'authentification qui permet CodePipeline d'effectuer des opérations sur votre GitHub référentiel. L'entrée est toujours affichée sous la forme d'un masque de quatre astérisques. Celui-ci représente l'une des valeurs suivantes :

  • Lorsque vous utilisez la console pour créer le pipeline, CodePipeline utilise un jeton OAuth pour enregistrer la GitHub connexion.

  • Lorsque vous utilisez le AWS CLI pour créer le pipeline, vous pouvez transmettre votre jeton d'accès GitHub personnel dans ce champ. Remplacez les astérisques (****) par votre jeton d'accès personnel copié depuis. GitHub Lorsque vous exécutez get-pipeline pour afficher la configuration de l'action, le masque à quatre astérisques s'affiche pour cette valeur.

  • Lorsque vous utilisez un CloudFormation modèle pour créer le pipeline, vous devez d'abord stocker le jeton en tant que secret dans AWS Secrets Manager. Vous incluez la valeur de ce champ en tant que référence dynamique au secret stocké dans Secrets Manager, tel que{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}.

Pour plus d'informations sur GitHub les scopes, consultez le GitHub Developer API Reference sur le GitHub site Web.

PollForSourceChanges

Obligatoire : non

PollForSourceChangescontrôle si CodePipeline les modifications apportées à la source sont interrogées dans le GitHub référentiel. Nous vous recommandons plutôt d'utiliser des webhooks pour détecter les modifications de la source. Pour plus d'informations sur la configuration des webhooks, consultez Migrer les pipelines de sondage vers les webhooks GitHub (via l'application OAuth) (actions source) (CLI) ou Mettre à jour les pipelines pour les actions source des événements push GitHub (via l'application OAuth)) (CloudFormation modèle).

Important

Si vous avez l'intention de configurer des webhooks, vous devez définir PollForSourceChanges sur false pour éviter les exécutions de pipeline en double.

Valeurs valides pour ce paramètre :

  • True: si cette option est définie, CodePipeline interroge votre référentiel pour détecter les modifications apportées à la source.

    Note

    Si vous l'omettezPollForSourceChanges, la CodePipeline valeur par défaut est interrogée dans votre référentiel pour détecter les modifications apportées à la source. Ce comportement est le même que si PollForSourceChanges est défini sur true.

  • False: Si cette option est définie, CodePipeline n'interroge pas votre référentiel pour détecter les modifications apportées à la source. Utilisez ce paramètre si vous avez l'intention de configurer un webhook pour détecter les modifications de la source.

Artefacts d'entrée

  • Nombre d'objets : 0

  • Description : Les artefacts d'entrée ne s'appliquent pas à ce type d'action.

Artefacts de sortie

  • Nombre d'objets : 1

  • Description : l'artefact de sortie de cette action est un fichier ZIP qui regroupe le contenu du référentiel et de la branche configurés au moment de la validation spécifiée comme révision source pour l'exécution du pipeline. Les artefacts générés à partir du référentiel sont les artefacts de sortie de l' GitHub action. L'ID de validation du code source est affiché en CodePipeline tant que révision source pour l'exécution du pipeline déclenchée.

Variables de sortie

Lorsque cette action est configurée, elle produit des variables qui peuvent être référencées par la configuration d'action d'une action en aval dans le pipeline. Cette action produit des variables qui peuvent être visualisées en tant que variables de sortie, même si l'action n'a pas d'espace de noms. Vous configurez une action avec un espace de noms pour rendre ces variables disponibles pour la configuration des actions en aval.

Pour plus d'informations sur les variables dans CodePipeline, consultezRéférence des variables.

CommitId

L'ID de GitHub validation qui a déclenché l'exécution du pipeline. Les ID de validation sont le SHA complet de la validation.

CommitMessage

Message de description, le cas échéant, associé à la validation ayant déclenché l'exécution du pipeline.

CommitUrl

Adresse URL de la validation ayant déclenché le pipeline.

RepositoryName

Le nom du GitHub référentiel dans lequel le commit qui a déclenché le pipeline a été effectué.

BranchName

Nom de la branche du GitHub référentiel dans lequel la modification de source a été effectuée.

AuthorDate

Date à laquelle la validation a été créée, au format horodatage.

CommitterDate

Date à laquelle la validation a été validée, au format horodatage.

Déclaration d'action (GitHub exemple)

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" } ] },

Connexion à GitHub (OAuth)

La première fois que vous utilisez la console pour ajouter un GitHub référentiel à un pipeline, il vous est demandé d'autoriser CodePipeline l'accès à vos référentiels. Le jeton nécessite les GitHub étendues suivantes :

  • La portée repo, qui est utilisée pour contrôler entièrement la lecture et l'extraction des artefacts dans un pipeline à partir de référentiels publics et privés.

  • La portée admin:repo_hook, qui est utilisée pour contrôler entièrement les hooks de référentiel.

Lorsque vous utilisez l'interface de ligne de commande ou un CloudFormation modèle, vous devez fournir la valeur d'un jeton d'accès personnel que vous avez déjà créé dans GitHub.

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.