GitHub
Le connecteur GitHub vous permet d'effectuer des opérations d'insertion, de suppression, de mise à jour et de lecture sur les données GitHub.
Avant de commencer
Avant d'utiliser le connecteur GitHub, effectuez les tâches suivantes :
- Dans votre projet Google Cloud :
- Assurez-vous que la connectivité réseau est configurée. Pour en savoir plus sur les schémas de réseau, consultez Connectivité réseau.
- Attribuez le rôle IAM roles/connectors.admin à l'utilisateur qui configure le connecteur.
- Attribuez les rôles IAM suivants au compte de service que vous souhaitez utiliser pour le connecteur :
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
Un compte de service est un type spécial de compte Google destiné à représenter un utilisateur non humain qui doit s'authentifier et obtenir les autorisations permettant d'accéder aux données des API Google. Si vous ne possédez pas de compte de service, vous devez en créer un. Pour plus d'informations, consultez Créer un compte de service.
- Activez les services suivants :
secretmanager.googleapis.com
(API Secret Manager)connectors.googleapis.com
(API Connectors)
Pour savoir comment activer des services, consultez Activer des services.
Si ces services ou autorisations n'ont pas encore été activés pour votre projet, vous êtes invité à les activer au moment de configurer le connecteur.
- Dans GitHub, en fonction de vos besoins, effectuez les tâches suivantes :
- Créez un compte GitHub.
- Créez des dépôts.
- Créez des organisations.
- Créez des projets.
- Créez une application OAuth.
- Créez une application GitHub.
Configurer le connecteur
Une connexion est propre à une source de données. Cela signifie que si vous disposez de nombreuses sources de données, vous devez créer une connexion distincte pour chacune d'elles. Pour créer une connexion, procédez comme suit :
- Dans la console Cloud, accédez à la page Connecteurs d'intégration > Connexions, puis sélectionnez ou créez un projet Google Cloud.
- Cliquez sur + CRÉER pour ouvrir la page Créer une connexion.
- Dans la section Emplacement, choisissez l'emplacement de la connexion.
- Région : sélectionnez un emplacement dans la liste déroulante.
Pour obtenir la liste de toutes les régions disponibles, consultez Emplacements.
- Cliquez sur SUIVANT.
- Région : sélectionnez un emplacement dans la liste déroulante.
- Dans la section Détails de la connexion, procédez comme suit :
- Connecteur : sélectionnez GitHub dans la liste déroulante des connecteurs disponibles.
- Version du connecteur : sélectionnez la version du connecteur dans la liste déroulante des versions disponibles.
- Dans le champ Nom de connexion, indiquez le nom de l'instance de connexion.
Les noms de connexion doivent répondre aux critères suivants :
- Ils peuvent contenir des lettres, des chiffres ou des traits d'union.
- Les lettres doivent être en minuscules.
- Ils doivent commencer par une lettre et se terminer par une lettre ou un chiffre.
- Ils ne peuvent pas dépasser 49 caractères.
- (Facultatif) Saisissez une description de l'instance de connexion.
- (Facultatif) Activez Cloud Logging, puis sélectionnez un niveau de journalisation. Par défaut, le niveau de journalisation est défini sur
Error
. - Compte de service : sélectionnez un compte de service disposant des rôles requis.
- (Facultatif) Spécifiez l'OwnerLogin, qui est le nom de connexion unique appartenant à un utilisateur ou à une organisation.
- (Facultatif) Spécifiez le schéma. Utilisez le schéma pour limiter les schémas récupérés de manière dynamique à un schéma de dépôt ou de projet spécifique. Pour récupérer tous les schémas, ne spécifiez aucune valeur dans ce champ. Pour en savoir plus sur les schémas compatibles, consultez Schémas et niveaux d'accès.
- (Facultatif) Configurez les paramètres de nœuds de connexion :
- Nombre minimal de nœuds : saisissez le nombre minimal de nœuds de connexion.
- Nombre maximal de nœuds : saisissez le nombre maximal de nœuds de connexion.
Un nœud est une unité (ou instance répliquée) de connexion qui traite des transactions. Pour traiter davantage de transactions pour une connexion, vous devez disposer de plus de nœuds. À l'inverse, moins de nœuds sont nécessaires si une connexion traite moins de transactions. Pour comprendre comment les nœuds affectent la tarification de votre connecteur, consultez Tarifs des nœuds de connexion. Si vous ne saisissez aucune valeur, le nombre minimal de nœuds est défini par défaut sur 2 (pour améliorer la disponibilité) et le nombre maximal de nœuds sur 50.
- (Facultatif) Cliquez sur + AJOUTER UNE ÉTIQUETTE pour ajouter une étiquette à la connexion sous la forme d'une paire clé/valeur.
- Cliquez sur SUIVANT.
- Dans la section Destinations, saisissez des informations sur l'hôte distant (système backend) auquel vous souhaitez vous connecter.
- Type de destination : sélectionnez un type de destination.
- Sélectionnez Adresse de l'hôte dans la liste pour spécifier le nom d'hôte ou l'adresse IP de la destination.
- Si vous souhaitez établir une connexion privée à vos systèmes backend, sélectionnez Rattachement de point de terminaison dans la liste, puis sélectionnez le rattachement de point de terminaison requis dans la liste Rattachement de point de terminaison.
Si vous souhaitez établir une connexion publique à vos systèmes backend avec une sécurité supplémentaire, vous pouvez envisager de configurer des adresses IP sortantes statiques pour vos connexions, puis de configurer vos règles de pare-feu pour ajouter à la liste d'autorisation uniquement les adresses IP statiques spécifiques.
Pour saisir d'autres destinations, cliquez sur + AJOUTER UNE DESTINATION.
- Cliquez sur SUIVANT.
- Type de destination : sélectionnez un type de destination.
-
Dans la section Authentification, saisissez les informations d'authentification.
Pour savoir comment configurer ces types d'authentification, consultez Configurer l'authentification.
- Cliquez sur SUIVANT.
- Vérifier : vérifiez vos informations de connexion et d'authentification.
- Cliquez sur Créer.
Configurer l'authentification
Saisissez les informations en fonction de l'authentification que vous souhaitez utiliser.
- ID client : ID client utilisé pour demander des jetons d'accès
- Niveaux d'accès : liste des niveaux d'accès souhaités, séparés par une virgule
- Code secret du client : secret Secret Manager contenant le code secret du client pour l'application connectée que vous avez créée
Exemples de configuration de connexion
Cette section présente des exemples de valeurs pour les différents champs que vous configurez lorsque vous créez la connexion.
Type de connexion avec un code d'autorisation OAuth 2.0
Nom du champ Détails Emplacement europe-west1 Connecteur GitHub Version du connecteur 1 Nom de connexion GitHub-connector Activer Cloud Logging Non Compte de service Votre_Numéro_De_Projet@compteservice OwnerLogin souvikg-Votre_Identifiant_Propriétaire Schéma Nombre minimal de nœuds 2 Nombre maximal de nœuds 50 ID client IDClient Niveaux d'accès repo repo:status repo_deployment Code secret du client Code secret du client Version du secret 1 Schémas et niveaux d'accès GitHub
Le connecteur GitHub est compatible avec les schémas suivants :- Schéma d'informations : ce schéma contient des tables comportant des informations de licence ainsi qu'une présentation générale des projets et des dépôts associés au compte authentifié. Il existe un seul schéma d'informations. Pour le récupérer, spécifiez la valeur suivante dans le champ de schéma : "Informations".
- Schéma de dépôt : le connecteur est compatible avec le schéma de chaque dépôt dans le compte de l'organisation ou de l'utilisateur authentifié. Utilisez le format suivant pour spécifier un schéma de dépôt : Dépôt_
. - Schéma de projet : le connecteur est compatible avec le schéma de chaque projet dans le compte de l'organisation ou de l'utilisateur authentifié. Utilisez le format suivant pour spécifier un schéma de projet : Projet_
.
Pour en savoir plus sur les niveaux d'accès, consultez GitHub Scopes (Niveaux d'accès GitHub).
Entités, opérations et actions
Tous les connecteurs Integration Connectors fournissent une couche d'abstraction pour les objets de l'application connectée. Vous ne pouvez accéder aux objets d'une application que par le biais de cette abstraction. L'abstraction vous est présentée en tant qu'entités, opérations et actions.
- Entité : une entité peut être considérée comme un objet ou un ensemble de propriétés dans l'application ou le service connectés. La définition d'une entité diffère d'un connecteur à l'autre. Par exemple, dans un connecteur de base de données, les tables sont les entités, alors que dans un connecteur de serveur de fichiers, ce sont les dossiers, et dans un connecteur de système de messagerie, ce sont les files d'attente.
Toutefois, il est possible qu'un connecteur n'accepte ou ne possède aucune entité. Dans ce cas, la liste
Entities
est vide. - Opération : une opération est l'activité que vous pouvez effectuer sur une entité. Voici les opérations possibles :
Lorsque vous sélectionnez une entité dans la liste proposée, cela génère une liste d'opérations disponibles pour l'entité. Pour obtenir une description détaillée des opérations, consultez les opérations d'entité de la tâche "Connecteurs". Cependant, si un connecteur n'accepte pas l'une des opérations d'entité, cette opération non compatible ne figure pas dans la liste
Operations
. - Action : une action est une fonction de première classe mise à la disposition de l'intégration par le biais de l'interface du connecteur. Une action vous permet de modifier une ou plusieurs entités, et varie d'un connecteur à l'autre. Normalement, une action comporte des paramètres d'entrée et un paramètre de sortie. Toutefois, il est possible qu'un connecteur n'accepte aucune action, auquel cas la liste
Actions
est vide.
Limites du système
Le connecteur GitHub peut traiter deux transactions par seconde et par nœud, et limite les transactions au-delà de ce seuil. Par défaut, Integration Connectors alloue deux nœuds (pour améliorer la disponibilité) à une connexion.
Pour en savoir plus sur les limites applicables à Integration Connectors, consultez Limites.
Action
Dans cette section, vous trouverez la liste des actions prises en charge par le connecteur GitHub. Pour savoir comment configurer les actions, consultez Exemples d'actions.
Action UpdatePullRequestBranch
Cette action met à jour la branche de la demande d'extraction.
Paramètres d'entrée de l'action UpdatePullRequestBranch
Nom Type Description PullRequestId STRING ID de nœud de la demande d'extraction. ExpectedHeadOid STRING OID de la référence de tête de la branche en amont. UpdateMethod STRING Méthode à utiliser pour mettre à jour la branche. La valeur par défaut est MERGE. Les valeurs autorisées sont MERGE et REBASE. Paramètres de sortie de l'action AppsDeployStatus
Cette action renvoie l'état 200 (OK) et met à jour la branche de la demande d'extraction.
Pour obtenir des exemples de configuration de l'action
UpdatePullRequestBranch
, consultez Exemples.Action MergePullRequest
Cette action fusionne la demande d'extraction.
Paramètres d'entrée de l'action MergePullRequest
Nom Type Description PullRequestId STRING ID de nœud de la demande d'extraction à fusionner. ExpectedHeadOid STRING OID auquel la référence de tête de la demande d'extraction doit correspondre pour permettre la fusion. En cas d'omission, aucune vérification n'est effectuée. CommitHeadline STRING Titre de commit à utiliser pour le commit de fusion. En cas d'omission, un message par défaut est utilisé. CommitBody STRING Corps de commit à utiliser pour le commit de fusion. En cas d'omission, un message par défaut est utilisé. MergeMethod STRING Méthode de fusion à utiliser. La valeur par défaut est MERGE. Les valeurs autorisées sont MERGE, SQUASH et REBASE. AuthorEmail STRING Adresse e-mail à associer à cette fusion. Paramètres de sortie de l'action MergePullRequest
Cette action renvoie l'état 200 (OK) et fusionne la demande d'extraction.
Pour obtenir des exemples de configuration de l'action
MergePullRequest
, consultez Exemples.Exemples d'actions
Cette section explique comment effectuer certaines actions dans ce connecteur.
Exemple : UpdatePullRequestBranch
Cet exemple récupère les états de déploiement de l'application.
- Dans la boîte de dialogue
Configure connector task
, cliquez surAction
. - Sélectionnez l'action
UpdatePullRequestBranch
, puis cliquez sur OK. - Dans la section Entrée de la tâche de la tâche Connecteurs, cliquez sur
connectorInputPayload
, puis saisissez une valeur semblable à la suivante dans le champDefault Value
:{ "PullRequestId": "PR_kwDOLywhW8537gcA" }
Si l'action aboutit, le paramètre de réponse
connectorOutputPayload
de la tâcheUpdatePullRequestBranch
aura une valeur semblable à la suivante :{ "pullrequestid": "PR_kwDOLywhW8537gcA" }
Exemple : MergePullRequest
Cet exemple fusionne une demande d'extraction.
- Dans la boîte de dialogue
Configure connector task
, cliquez surAction
. - Sélectionnez l'action
MergePullRequest
, puis cliquez sur OK. - Dans la section Entrée de la tâche de la tâche Connecteurs, cliquez sur
connectorInputPayload
, puis saisissez une valeur semblable à la suivante dans le champDefault Value
:{ "PullRequestId": "PR_kwDOLywhW8537gcA", "CommitHeadline": "Google MERGE", "CommitBody": "This is Google Merge" }
Si l'action aboutit, le paramètre de réponse
connectorOutputPayload
de la tâcheMergePullRequest
aura une valeur semblable à la suivante :{ "pullrequestid": "PR_kwDOLywhW8537gcA" }
Exemples d'opérations d'entité
Cette section explique comment effectuer certaines opérations d'entité dans ce connecteur.
Exemple : Lister toutes les branches
- Dans la boîte de dialogue
Configure connector task
, cliquez surEntities
. - Sélectionnez
Branches
dans la listeEntity
. - Sélectionnez l'opération
List
, puis cliquez sur OK. - Dans la section Entrée de la tâche de la tâche Connecteurs, vous pouvez définir la filterClause selon vos besoins.
Exemple : Lister tous les commits
- Dans la boîte de dialogue
Configure connector task
, cliquez surEntities
. - Sélectionnez
Commits
dans la listeEntity
. - Sélectionnez l'opération
List
, puis cliquez sur OK. - Dans la section Entrée de la tâche de la tâche Connecteurs, vous pouvez définir la filterClause selon vos besoins.
Remarques
- "Commits" est le nom de l'entité. Vous devez transmettre la valeur de la clause de filtre à l'aide de guillemets simples ('), par exemple City='Redwood City'. Ici, "City" est le nom de la colonne et "Redwood City" est la valeur.
- Vous pouvez utiliser la clause de filtre pour filtrer les enregistrements en fonction des colonnes. Par exemple, s'il y a 20 enregistrements avec
name = demo16975280986860
, vous pouvez filtrer les enregistrements avec la colonne Address='Redwood City' et region='us-east1'.
Vous pouvez effectuer l'opération List sur les entités suivantes :
CommitComments, Forks, IssueComments, Issue, IssueAssignees, AssignableUser, Labels, Milestones, PullRequestReviews, PullRequests, PullRequestComments, ReleaseAssets, Releases, Watcher, Users, Repositories, Collaborators, OrganizationTeams, OrganizationsMannequins, OrganizationMember, Organization, Licenses, LicensePermission, LicenseLimitation, LicenseConditions, Projects et PullRequestReviewRequests
Exemple : Récupérer un enregistrement Branches
- Dans la boîte de dialogue
Configure connector task
, cliquez surEntities
. - Sélectionnez
Branches
dans la listeEntity
. - Sélectionnez l'opération
Get
, puis cliquez sur OK. - Ici, l'ID de l'entité est défini sur 4. Pour définir l'ID d'entité, dans la section Entrée de la tâche de la tâche Connecteurs, cliquez sur EntityId, puis saisissez
4
dans le champ Valeur par défaut.
Exemple : Récupérer un enregistrement Repositories
- Dans la boîte de dialogue
Configure connector task
, cliquez surEntities
. - Sélectionnez
Repositories
dans la listeEntity
. - Sélectionnez l'opération
Get
, puis cliquez sur OK. - Définissez l'ID d'entité sur 4, qui est la clé à transmettre. Pour définir l'ID d'entité, dans la section Entrée de la tâche de la tâche Connecteurs, cliquez sur EntityId, puis saisissez
4
dans le champ Valeur par défaut.
Dans certains cas, la transmission d'un seul ID d'entité peut entraîner une erreur en raison de la présence de deux clés composites. Dans ce cas, utilisez la clause de filtre avec les colonnes nécessaires.
Pour les vues, l'opération Get ne fonctionne pas, car elles ne disposent pas de clés primaires. Vous pouvez utiliser l'opération List avec des filtres sur les vues. Elle fonctionne de la même manière que l'opération Get.
Vous pouvez effectuer l'opération Get sur les entités suivantes :
CommitComments, Commits, IssueAssignees, Labels, Milestones, PullRequestReviews, PullRequests, PullRequestComments, ReleaseAssets, Release, Topics, Users, Collaborators, Organizations et Licenses
Exemple : Créer un enregistrement Issues
- Dans la boîte de dialogue
Configure connector task
, cliquez surEntities
. - Sélectionnez
Issues
dans la listeEntity
. - Sélectionnez l'opération
Create
, puis cliquez sur OK. - Dans la section Entrée de la tâche de la tâche Connecteurs, cliquez sur
connectorInputPayload
, puis saisissez une valeur semblable à la suivante dans le champDefault Value
:{ "Title": "Google_Cloud_GitHub_Issues_Create", "Body": "Please check hence raising the Feature Request for the same." }
L'exécution de cet exemple renvoie une réponse semblable à la suivante dans la variable de sortie
connectorOutputPayload
de la tâche "Connecteurs" :{ "Id": "I_kwDOLywhW86Sd-xF" }
Exemple : Créer un enregistrement PullRequests
- Dans la boîte de dialogue
Configure connector task
, cliquez surEntities
. - Sélectionnez
PullRequests
dans la listeEntity
. - Sélectionnez l'opération
Create
, puis cliquez sur OK. - Dans la section Entrée de la tâche de la tâche Connecteurs, cliquez sur
connectorInputPayload
, puis saisissez une valeur semblable à la suivante dans le champDefault Value
:{ "BaseRefName": "main", "HeadRefName": "New_Branch", "Title": "DEMO_Google_Cloud_PULLRequest", "Body": "This is demo Google_Cloud pull" }
L'exécution de cet exemple renvoie une réponse semblable à la suivante dans la variable de sortie
connectorOutputPayload
de la tâche "Connecteurs" :{ "Id": "PR_kwDOLywhW8537gcA" }
Exemple : Créer un enregistrement Repositories
- Dans la boîte de dialogue
Configure connector task
, cliquez surEntities
. - Sélectionnez
Repositories
dans la listeEntity
. - Sélectionnez l'opération
Create
, puis cliquez sur OK. - Dans la section Entrée de la tâche de la tâche Connecteurs, cliquez sur
connectorInputPayload
, puis saisissez une valeur semblable à la suivante dans le champDefault Value
:{ "Name": "Google_Cloud_DEMO_REPO", "OwnerId": "O_kgDOCaxLsg", "Visibility": "PUBLIC" }
L'exécution de cet exemple renvoie une réponse semblable à la suivante dans la variable de sortie
connectorOutputPayload
de la tâche "Connecteurs" :{ "Id": "R_kgDOMhWBEQ" }
Exemple : Mettre à jour un enregistrement Issues
- Dans la boîte de dialogue
Configure connector task
, cliquez surEntities
. - Sélectionnez
Issues
dans la listeEntity
. - Sélectionnez l'opération
Update
, puis cliquez sur OK. - Dans la section Entrée de la tâche de la tâche Connecteurs, cliquez sur
connectorInputPayload
, puis saisissez une valeur semblable à la suivante dans le champDefault Value
:{ "Title": "New_Updated_Google_Cloud_Issue", "Body": "Newly Updated from Google_Cloud" }
- Définissez la valeur de l'entityId sur I_kwDOLywhW86Sd-xF. Pour définir la valeur de la filterClause, cliquez sur entityId, puis saisissez
I_kwDOLywhW86Sd-xF
dans le champ Valeur par défaut.L'exécution de cet exemple renvoie une réponse semblable à la suivante dans la variable de sortie
connectorOutputPayload
de la tâche "Connecteurs" :{ "Id": "I_kwDOLywhW86Sd-xF" }
Exemple : Mettre à jour un enregistrement PullRequests
- Dans la boîte de dialogue
Configure connector task
, cliquez surEntities
. - Sélectionnez
PullRequests
dans la listeEntity
. - Sélectionnez l'opération
Update
, puis cliquez sur OK. - Dans la section Entrée de la tâche de la tâche Connecteurs, cliquez sur
connectorInputPayload
, puis saisissez une valeur semblable à la suivante dans le champDefault Value
:{ "Title": "Updated_Google_Cloud_PULL", "Body": "Update New pull Body" }
- Définissez la valeur de l'entityId sur PR_kwDOLywhW8537gcA. Pour définir la valeur de la filterClause, cliquez sur entityId, puis saisissez
PR_kwDOLywhW8537gcA
dans le champ Valeur par défaut.L'exécution de cet exemple renvoie une réponse semblable à la suivante dans la variable de sortie
connectorOutputPayload
de la tâche "Connecteurs" :{ "Id": "PR_kwDOLywhW8537gcA" }
Exemple : Mettre à jour un enregistrement Repositories
- Dans la boîte de dialogue
Configure connector task
, cliquez surEntities
. - Sélectionnez
Repositories
dans la listeEntity
. - Sélectionnez l'opération
Update
, puis cliquez sur OK. - Dans la section Entrée de la tâche de la tâche Connecteurs, cliquez sur
connectorInputPayload
, puis saisissez une valeur semblable à la suivante dans le champDefault Value
:{ "Name": "Updated_New_Google_Cloud_Repo" }
- Définissez la valeur de l'entityId sur R_kgDOMhWBEQ. Pour définir la valeur de la filterClause, cliquez sur entityId, puis saisissez
R_kgDOMhWBEQ
dans le champ Valeur par défaut.L'exécution de cet exemple renvoie une réponse semblable à la suivante dans la variable de sortie
connectorOutputPayload
de la tâche "Connecteurs" :{ "Id": "R_kgDOMhWBEQ" }
Exemple : Supprimer un enregistrement PullRequestReviewRequests
- Dans la boîte de dialogue
Configure connector task
, cliquez surEntities
. - Sélectionnez
PullRequestReviewRequests
dans la listeEntity
. - Sélectionnez l'opération
Delete
, puis cliquez sur OK. - Définissez la valeur de la filterClause, cliquez sur filterClause, puis saisissez
PullRequestId= 'PR_kwDOLywhW85yNWPa' and RequestedReviewerUserId= 'U_kgDOCebPLA'
dans le champ Valeur par défaut.
Dans cet exemple, PullRequestReviewRequests est le nom de la table et la valeur de la filterClause doit être transmise directement.
Par exemple, PullRequestId= 'PR_kwDOLywhW85yNWPa' et RequestedReviewerUserId= 'U_kgDOCebPLA'.
Ici, PullRequestId= 'PR_kwDOLywhW85yNWPa' et RequestedReviewerUserId= 'U_kgDOCebPLA' sont les valeurs de clé primaire uniques qui doivent être transmises.Utiliser la connexion GitHub dans une intégration
Une fois la connexion créée, elle devient disponible dans Apigee Integration et Application Integration. Vous pouvez utiliser la connexion dans une intégration au moyen de la tâche "Connecteurs".
- Pour savoir comment créer et utiliser la tâche "Connecteurs" dans Apigee Integration, consultez Tâche "Connecteurs".
- Pour savoir comment créer et utiliser la tâche "Connecteurs" dans Application Integration, consultez Tâche "Connecteurs".
Demander de l'aide à la communauté Google Cloud
Vous pouvez publier vos questions et discuter de ce connecteur sur les forums Cloud de la communauté Google Cloud.Étapes suivantes
- Découvrez comment suspendre et reprendre une connexion.
- Découvrez comment surveiller l'utilisation des connecteurs.
- Découvrez comment afficher les journaux des connecteurs.