Ces instructions s'adressent aux développeurs d'applications, aux administrateurs de plate-forme et aux responsables de la sécurité qui souhaitent utiliser des dépôts de code source GitHub Enterprise avec Google. Plus précisément, vous pouvez utiliser des dépôts GitHub Enterprise avec Gemini Code Assist.
Pour en savoir plus sur Developer Connect, consultez la présentation de Developer Connect.
Avant de commencer
-
Connectez-vous à votre compte Google.
Si vous n'en possédez pas déjà un, vous devez en créer un.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Developer Connect and Service Directory APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Developer Connect and Service Directory APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Assurez-vous d'avoir accès à un compte sur GitHub Enterprise.
Pour protéger le travail de votre équipe, nous vous recommandons d'effectuer les tâches de ce guide à l'aide d'un compte de robot ou d'un compte partagé par votre équipe, et non d'un compte personnel.
- Assurez-vous de posséder un dépôt GitHub Enterprise ou de disposer d'autorisations d'administrateur sur un dépôt partagé.
Lorsque vous utilisez un dépôt dans une organisation GitHub Enterprise, assurez-vous de disposer des autorisations GitHub App Manager.
- Assurez-vous de disposer d'une ressource Annuaire des services pour vous connecter à des réseaux privés ou créez-en une. Vous pouvez créer la ressource Annuaire des services dans le même projet que celui que vous utilisez avec Developer Connect, ou vous pouvez utiliser un autre projet.
Pour les connexions à des réseaux en dehors de Google Cloud, vous devrez peut-être configurer l'Annuaire des services différemment. Consultez Utiliser l'annuaire des services pour accéder aux hôtes en dehors de Google Cloud.
- Facultatif : Créez une clé de chiffrement gérée par le client (CMEK) pour chiffrer les secrets d'authentification créés par Developer Connect.
- Facultatif : Pour utiliser les instructions de ligne de commande de ce guide, procédez comme suit :
- Installez la Google Cloud CLI. Si vous avez déjà installé la gcloud CLI, assurez-vous de disposer de la dernière version disponible en exécutant
gcloud components update. - Créez un compte de service Developer Connect en exécutant la commande suivante, où PROJECT_ID correspond à l'ID de votre projet :Google Cloud
gcloud beta services identity create \ --service=developerconnect.googleapis.com \ --project=PROJECT_ID
- Installez la Google Cloud CLI. Si vous avez déjà installé la gcloud CLI, assurez-vous de disposer de la dernière version disponible en exécutant
L'activation de Developer Connect active également l'API Secret Manager.
Accorder les autorisations Cloud IAM requises
Pour obtenir les autorisations nécessaires à la création de connexions et de liens, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Si vous n'êtes pas le propriétaire du projet :
Administrateur Developer Connect (
roles/developerconnect.admin) sur votre compte utilisateur. -
Si vous prévoyez d'utiliser une clé CMEK pour chiffrer les secrets créés par Developer Connect :
Chiffreur/Déchiffreur de CryptoKeys Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter) sur le compte de service Secret Manager. -
Si vous prévoyez d'utiliser la gcloud CLI pour effectuer les étapes de ce guide :
Rôle Administrateur Secret Manager (
roles/secretmanager.admin) sur le compte de service Developer Connect. -
Si vous prévoyez d'utiliser la console Google Cloud pour effectuer les étapes de ce guide :
Administrateur IAM de projet (
roles/resourcemanager.projectIamAdmin) sur votre compte utilisateur.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Accorder des autorisations pour utiliser l'annuaire des services
Procédez comme suit pour permettre à Developer Connect d'utiliser l'Annuaire des services et à l'Annuaire des services d'accéder à la ressource de votre réseau VPC.
Accordez au compte de service Developer Connect l'autorisation d'utiliser l'Annuaire des services en exécutant les commandes suivantes :
PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-devconnect.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding SERVICE_DIRECTORY_RESOURCE_PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/servicedirectory.viewer"Remplacez les éléments suivants :
- PROJECT_ID : ID de votre projet Google Cloud .
- SERVICE_DIRECTORY_RESOURCE_PROJECT_ID : ID du projet pour le projet Google Cloud qui contient votre ressource de service Annuaire des services.
Accordez à l'Annuaire des services l'autorisation d'accéder à la ressource de votre réseau VPC. La ressource réseau peut se trouver dans un autre projet.
gcloud projects add-iam-policy-binding NETWORK_RESOURCE_PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/servicedirectory.pscAuthorizedService"Remplacez NETWORK_RESOURCE_PROJECT_ID par l'ID du projet qui contient votre ressource de réseau VPC.
Utiliser l'Annuaire des services pour accéder aux hôtes en dehors de Google Cloud
Annuaire des services utilise la plage d'adresses IP 35.199.192.0/19 pour connecter votre hôte en dehors de Google Cloud. Vous devez ajouter cette plage à une liste d'autorisation dans votre pare-feu. De plus, votre réseau privé doit être configuré pour acheminer cette plage via la connexion Cloud VPN ou Cloud Interconnect.
Si votre connexion utilise Cloud Router, vous pouvez la configurer pour communiquer la plage à votre réseau privé.
Pour en savoir plus, consultez Configurer l'accès à un réseau privé.
Utiliser Cloud Load Balancing pour accéder à des hôtes en dehors de Google Cloud
Si la configuration de votre réseau ne vous permet pas de router la plage d'adresses IP Annuaire des services 35.199.192.0/19 vers Cloud VPN ou Cloud Interconnect, vous pouvez créer un équilibreur de charge à l'aide de Cloud Load Balancing, qui redirige le trafic vers votre hôte.
Lorsque vous créez le point de terminaison Annuaire des services, veillez à utiliser l'adresse IP de la règle de transfert de l'équilibreur de charge au lieu de l'adresse IP de votre hôte. Vous pouvez utiliser un équilibreur de charge HTTPS interne ou un équilibreur de charge TCP (Transmission Control Protocol) interne lorsque vous créez votre point de terminaison.
Lorsque vous créez votre équilibreur de charge TCP, tenez compte des points suivants :
- Seul un groupe de points de terminaison du réseau (NEG) de connectivité hybride est nécessaire pour accéder à votre hôte.
- L'équilibreur de charge TCP ne nécessite pas la clé privée non chiffrée de votre certificat SSL.
- Votre configuration Cloud VPN doit utiliser Cloud Router avec le routage dynamique mondial. Si votre Cloud VPN utilise le routage statique, vous pouvez utiliser un proxy qui utilise Cloud Service Mesh à la place. Pour en savoir plus, consultez Configurer des services de périphérie réseau pour les déploiements hybrides.
Pour savoir comment créer un équilibreur de charge HTTPS, consultez Configurer un équilibreur de charge d'application interne avec une connectivité hybride. Pour en savoir plus sur la création d'un équilibreur de charge TCP, consultez Configurer un équilibreur de charge réseau proxy interne régional avec une connectivité hybride.
Créer une connexion
Cette section explique comment créer une connexion entre Developer Connect et GitHub Enterprise. Si vous utilisez la console Google Cloud , vous pouvez également commencer à ajouter des liens vers des dépôts une fois que vous avez terminé de configurer votre connexion.
Pour créer une connexion GitHub Enterprise, sélectionnez l'une des options suivantes :
Console
Pour lancer une connexion, procédez comme suit :
Dans la console Google Cloud , ouvrez Developer Connect.
Developer Connect affiche la page Dépôts Git.
- Si une liste de fournisseurs de gestion de code source s'affiche : commencez à configurer votre première connexion en sélectionnant un fournisseur de gestion de code source. Cliquez sur Connecter sur la fiche GitHub Enterprise.
Si un tableau listant les connexions existantes s'affiche : définissez le fournisseur de gestion du code source en cliquant sur Créer une connexion > GitHub Enterprise.
La page Créer une connexion s'ouvre.
Dans le champ Région, sélectionnez une région pour vos ressources de connexion.
- Dans le champ Nom, saisissez un nom pour votre nouvelle connexion.
Cochez la case Activer une connexion conforme à la résidence des données pour que cette connexion respecte les exigences de résidence des données.
Les connexions GitHub créées à l'aide de la console Google Cloud sont conformes à la résidence des données si vous cochez cette case lorsque vous créez la connexion. Lorsque vous effectuez cette opération, Developer Connect crée une application GitHub.
Lorsque vous créez des connexions GitHub à l'aide de Google Cloud CLI, ces connexions ne sont pas conformes à la résidence des données. Tous les autres types de connexion sont conformes à la résidence des données.
Pour URL de l'hôte, saisissez l'URL de l'hôte auquel vous souhaitez vous connecter.
Cliquez sur Afficher plus pour afficher les paramètres de configuration facultatifs.
La case Activer le proxy Developer Connect est cochée par défaut afin que Developer Connect puisse agir en tant que proxy pour les appels Git vers GitHub Enterprise.
Dans la section Mise en réseau, pour Type de réseau, sélectionnez Réseau privé.
Pour Certificat CA, cliquez sur Parcourir pour importer votre certificat autosigné.
Votre certificat ne doit pas dépasser 10 Ko et doit être au format PEM (.pem, .cer ou .crt). Si cette section est laissée vide, un ensemble de certificats par défaut sera utilisé à la place.
Dans la section Service Directory, sélectionnez l'emplacement de votre service :
- Dans le projet
your-project - Dans un autre projet
- Saisie manuelle
Si vous sélectionnez Dans un autre projet ou Saisir manuellement, spécifiez l'ID de votre projet Google Cloud . Sélectionnez le projet dans le menu déroulant ou saisissez manuellement l'ID du projet.
- Dans le projet
Région : sélectionnez la région de votre service Annuaire des services. La région spécifiée pour votre service doit correspondre à celle associée à votre connexion.
Espace de noms : sélectionnez l'espace de noms de votre service Annuaire des services.
Service : sélectionnez le nom du service Annuaire des services dans votre espace de noms.
Facultatif : Dans la section Chiffrement, sélectionnez une clé CMEK pour chiffrer les secrets Secret Manager créés par Developer Connect.
Cliquez sur Continuer.
Une boîte de dialogue GitHub s'affiche et vous invite à créer une application GitHub.
Suivez les instructions de GitHub pour effectuer les tâches suivantes :
Saisissez un nom pour votre application.
Choisissez l'organisation dans laquelle vous souhaitez installer l'application.
Sélectionnez les dépôts auxquels vous souhaitez accorder l'accès.
La boîte de dialogue se ferme.
Developer Connect récupère votre clé privée depuis GitHub et la stocke dans votre projet Google Cloud en tant que secret Secret Manager. Pour afficher vos secrets, listez-les dans Secret Manager.
Une fois la connexion créée, la page Associer des dépôts s'affiche.
Pour associer des dépôts à votre connexion, procédez comme suit :
Dans la liste des dépôts disponibles, sélectionnez ceux que vous souhaitez utiliser.
Cliquez sur OK.
Cliquez sur Associer.
Votre connexion est ajoutée à la page Connexions et les liens vers vos dépôts sont ajoutés à la page Dépôts de la console Google Cloud . Vous pouvez ajouter des liens à des connexions existantes à tout moment.
Si vous configurez Gemini Code Assist, poursuivez le processus en suivant les étapes décrites dans Configurer et utiliser la personnalisation du code Gemini Code Assist.
gcloud
Les tâches suivantes nécessitent des actions dans votre navigateur Web.
Exécutez la commande
gcloud developer-connect connections createpour créer une connexion à GitHub Enterprise :gcloud developer-connect connections create CONNECTION_NAME \ --location=REGION \ --project=PROJECT_ID \ --github-enterprise-config-host-uri=HOST_URI --github-enterprise-config-service-directory=SERVICE_DIRECTORY_RESOURCE --git-proxy-config-enabledRemplacez les éléments suivants :
- CONNECTION_NAME : nom de votre connexion.
- REGION : région de votre connexion.
- HOST_URI : URI de l'hôte auquel vous souhaitez vous connecter.
- SERVICE_DIRECTORY_RESOURCE : chemin d'accès à votre ressource Annuaire des services, au format
projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE. --git-proxy-config-enabledest un indicateur facultatif qui permet à Developer Connect d'agir en tant que proxy pour les appels Git vers GitHub Enterprise. Vous devez activer cette fonctionnalité lorsque vous exécutez la personnalisation du code Gemini Code Assist sur des dépôts de code source GitHub Enterprise hébergés dans des réseaux privés.--github-enterprise-config-ssl-ca-certificateest un indicateur facultatif permettant d'ajouter un certificat SSL au format$HOME/my-ssl-ca.txt.
Vous devez créer une application GitHub pour gérer les connexions avec GitHub. Exécutez la commande suivante pour obtenir l'URI de configuration de l'application :
gcloud developer-connect connections describe CONNECTION_NAME \ --location=REGIONRemplacez les éléments suivants :
- CONNECTION_NAME : nom de votre connexion.
- REGION : région de votre connexion.
Developer Connect renvoie un lien pour effectuer les étapes suivantes dans une fenêtre de navigateur. Copiez ce lien.
Ouvrez le lien dans un navigateur Web.
Connectez-vous à votre compte GitHub si vous y êtes invité.
Suivez les instructions de GitHub pour effectuer les tâches suivantes :
Saisissez un nom pour votre application.
Choisissez l'organisation dans laquelle vous souhaitez installer l'application.
Sélectionnez les dépôts auxquels vous souhaitez accorder l'accès.
La boîte de dialogue se ferme.
Developer Connect récupère votre clé privée depuis GitHub et la stocke dans votre projet Google Cloud en tant que secret Secret Manager. Pour afficher vos secrets, listez-les dans Secret Manager.
Vérifier la connexion
Vérifiez que votre connexion GitHub a bien été créée en exécutant la commande suivante :
gcloud developer-connect connections describe CONNECTION_NAME \
--location=REGION
Où :
- CONNECTION_NAME : nom de votre connexion.
- REGION : région de votre connexion.
Developer Connect renvoie un état dans le champ installationState. Si la valeur de ce champ est COMPLETE, l'installation de votre application est terminée.
Sinon, Developer Connect renvoie un URI pour vous rediriger vers la configuration dans le navigateur.
Une fois la connexion établie, choisissez les dépôts à associer en suivant les instructions de Associer des dépôts.
Ajouter des liens de dépôt à des connexions existantes
Une fois que vous avez établi une connexion à GitHub Enterprise, vous pouvez créer des liens vers des dépôts. Vous pourrez répéter ces étapes ultérieurement pour associer d'autres dépôts si nécessaire.
Pour créer des liens vers des dépôts sur une connexion GitHub Enterprise existante, sélectionnez l'une des options suivantes :
Console
Ouvrez la page Dépôts dans la console Google Cloud .
Cliquez sur Associer un dépôt.
Le volet Associer des dépôts Git s'ouvre.
Dans la liste des connexions, sélectionnez-en une.
Cliquez sur Continuer.
Dans la liste des dépôts, sélectionnez ceux que vous souhaitez associer.
Cliquez sur Créer.
Developer Connect crée les liens vers le dépôt et les affiche dans la console Google Cloud .
gcloud
Exécutez la commande ci-dessous.
gcloud developer-connect connections git-repository-links create REPO_NAME \
--clone-uri=REPO_URI \
--connection=CONNECTION_NAME \
--location=REGION
Remplacez les éléments suivants :
- REPO_NAME : nom du lien vers votre dépôt.
- REPO_URI : lien vers votre dépôt.
Exemple :
https://github.com/cloud-build/test-repo.git - CONNECTION_NAME : nom de votre connexion.
- REGION : région de votre connexion.
Developer Connect crée les liens vers les dépôts.
Pour lister les dépôts associés, exécutez la commande developer-connect connections git-repository-links list.
Si vous configurez Gemini Code Assist, poursuivez le processus en suivant les étapes décrites dans Configurer et utiliser la personnalisation du code Gemini Code Assist.
Partage des données
Le contenu des ressources Google Cloud associées à cette connexion peut être transféré vers GitHub. Cette déclaration s'applique à toutes les ressources existantes et futures qui utilisent cette connexion. Pour arrêter de partager des informations avec GitHub, supprimez les connexions Developer Connect dans la console Google Cloud ou la gcloud CLI, puis révoquez l'accès dans GitHub.
Étapes suivantes
- Terminez la configuration de la personnalisation du code Gemini Code Assist.
- Découvrez comment Gemini Code Assist vous aide à accélérer le développement de logiciels.
- Découvrez d'autres intégrations disponibles via Developer Connect.