Créer des dépôts depuis GitHub Enterprise

Cloud Build vous permet de créer des déclencheurs sur une instance GitHub Enterprise. Cette page explique comment utiliser les déclencheurs GitHub Enterprise pour appeler des builds en réponse à des commits ou des demandes d'extraction à partir d'une instance GitHub Enterprise.

Avant de commencer

  • Activer les API Cloud Build and Secret Manager.

    Activer les API

  • Vérifiez que vous disposez de la dernière version de GitHub Enterprise.
  • Assurez-vous de disposer d'un accès administrateur aux dépôts pour lesquels vous souhaitez activer les déclencheurs GitHub Enterprise.
  • Veillez à mapper un domaine personnalisé à votre hôte GitHub Enterprise et à disposer d'un certificat SSL valide pour votre hôte.

  • Créez une clé API limitée à l'API Cloud Build.

  • Si votre serveur GitHub Enterprise est hébergé dans un environnement sur site, procédez comme suit:

  1. Activez l'accès privé à Google pour les hôtes sur site pour vous assurer que votre instance GitHub Enterprise peut accéder aux API et services Google Cloud.

  2. Appairez vos réseaux sur site à Google Cloud et configurez un réseau de cloud privé virtuel (VPC, Virtual Private Cloud). Pour en savoir plus, consultez la section Appairage d'un réseau VPC.

  3. Utilisez des pools privés pour exécuter vos compilations. Si ce n'est pas déjà fait, configurez l'environnement de votre projet et créez un pool de nœuds de calcul privés sur votre VPC. Pour savoir comment exécuter des compilations à l'aide d'un pool de nœuds de calcul privés, consultez la page Exécuter des compilations dans un pool privé.

Autorisations IAM requises

Pour connecter votre hôte GitHub Enterprise, vous avez besoin du rôle Éditeur Cloud Build (roles/cloudbuild.builds.editor) et du Propriétaire des intégrations Cloud Build (cloudbuild.integrations.owner). ) ajouté à votre compte utilisateur.

Pour ajouter les rôles requis à votre compte utilisateur, consultez la page Configurer l'accès aux ressources Cloud Build. Pour en savoir plus sur les rôles IAM associés à Cloud Build, consultez la page Rôles et autorisations IAM.

Appairer un réseau VPC

Si votre instance GitHub Enterprise est hébergée dans un environnement sur site et n'est pas accessible via une connexion Internet publique, vous devez appairer votre réseau sur site à Google Cloud et configurer un réseau VPC. (Installation de Python groupée).

  1. Activez l'API Service Networking.
  2. Créez un réseau VPC ou sélectionnez un réseau VPC existant. Remarque: Vous devez configurer votre réseau VPC pour accéder à votre instance GitHub Enterprise sur site.
  3. Allouez une plage d'adresses IP nommée dans le réseau VPC. Pour utiliser le réseau VPC avec des pools privés Cloud Build, la longueur de votre préfixe doit être inférieure ou égale à /23, par exemple /22, /21, etc.
  4. Établir une connexion d'appairage de réseaux VPC entre votre réseau VPC et Google Cloud. Pour en savoir plus, consultez la section Créer une connexion privée.
  5. Si vous avez configuré le DNS pour votre instance GitHub Enterprise, vous devez appairer manuellement votre zone DNS à notre fournisseur de services. Pour en savoir plus, consultez la section Partager des zones DNS privées avec des producteurs de services.
  6. [FACULTATIF] Si vous ne souhaitez pas appairer le réseau à partir de votre projet Cloud, vous pouvez configurer un VPC partagé et faire en sorte que votre projet Cloud utilise ce réseau si votre projet est au sein d'une organisation. Vous aurez toujours besoin du VPC partagé pour être appairé à l'API Service Networking.

Créer une application GitHub Cloud Build

Vous devez créer une application GitHub sur votre instance GitHub Enterprise. L'application enverra des événements de webhook à un point de terminaison Cloud Build. Une fois ces événements reçus, Cloud Build valide la charge utile et exécute un build si l'événement correspond à un déclencheur GitHub de Cloud Build. Vous devez installer l'application sur les dépôts pour lesquels vous souhaitez configurer des déclencheurs GitHub Enterprise.

Cette section explique comment créer une application GitHub:

  1. Connectez-vous à votre instance GitHub Enterprise.
  2. Vérifiez que la dernière version de GitHub Enterprise est installée.

    Certaines versions de GitHub Enterprise peuvent nécessiter la désactivation des cookies SameSite afin d'effectuer les étapes suivantes dans le navigateur Chrome. Si vous disposez d'une version de GitHub Enterprise antérieure à la version 2.21.3, vous devez désactiver les cookies SameSite:

    1. Accédez à chrome://flags/.
    2. Saisissez samesite dans la barre de filtre.
    3. Assurez-vous que les cookies SameSite par défaut sont DÉSACTIVÉS.

      Capture d'écran de SameSite désactivée

    4. Redémarrez votre navigateur.

  3. Ouvrez la page Cloud Build Gérer les dépôts:

    Ouvrir la page "Gérer les dépôts"

  4. Cliquez sur Connecter un hôte.

    Le panneau Connect host (Connecter l'hôte) s'affiche. Il vous invite à créer une connexion hôte pour connecter vos dépôts GitHub Enterprise à Cloud Build.

  5. Dans la section URL de l'hôte, saisissez l'URL de votre instance GitHub Enterprise. Exemple :ghe.example.com

  6. Dans la section Clé API, cliquez sur Générer pour générer une clé API ou saisissez une clé API si vous en possédez déjà une.

    Si vous souhaitez créer une clé API manuellement, procédez comme suit:

    Pour obtenir une clé API:

    1. Ouvrez la page Identifiants dans Cloud Console:

      Ouvrir la page "Identifiants"

    2. Cliquez sur Créer des identifiants.

    3. Cliquez sur API Key (Clé API).

      Une fenêtre pop-up s'affiche avec votre clé API créée.

    4. Cliquez sur Restreindre la clé.

    5. Sous Restrictions relatives aux API, sélectionnez API Cloud Build dans le menu déroulant.

    6. Cliquez sur Enregistrer.

  7. [FACULTATIF] Dans la section Organisation, saisissez l'organisation pour laquelle l'application GitHub sera créée. Si cette section est laissée vide, l'application est créée avec le compte utilisateur actuel.

  8. [FACULTATIF] Dans la section 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 n'est pas renseignée, un ensemble de certificats par défaut est utilisé.

  9. [FACULTATIF] Dans la section Réseau, saisissez le nom de votre projet réseau et le nom du réseau correspondant à votre réseau si vous utilisez GitHub Enterprise. est hébergée sur site et que vous avez appairé votre réseau à Google Cloud.

  10. Cliquez sur Connecter un hôte.

    Si votre instance GitHub Enterprise se trouve sur un réseau appairé, le processus de connexion hôte peut prendre plusieurs minutes.

  11. Si vous souhaitez connecter vos dépôts à Cloud Build, cliquez sur Connect Repositories. Sinon, cliquez sur Done (OK).

  12. Une fois votre hôte connecté, une fenêtre pop-up s'affiche pour vous inviter à saisir le nom de votre application GitHub Enterprise. Avant de saisir le nom de votre application, vous serez peut-être invité à vous connecter. Si vous utilisez Google Chrome en tant que navigateur, la page pop-up peut vous demander de saisir manuellement les informations sur votre application GitHub Enterprise.

  13. Une fois connecté, saisissez un nom pour votre application GitHub.

  14. Cliquez sur Create GitHub App (Créer une application GitHub).

    Vous venez de créer une application GitHub sur votre instance GitHub Enterprise. Cloud Build stockera automatiquement vos identifiants dans Secret Manager, puis connectera l'hôte à votre projet Cloud. Dans l'API, cette connexion est représentée sous la forme d'une ressource GitHub EnterpriseConfig ou d'une association entre Cloud Build et votre serveur GitHub Enterprise.

    Votre hôte est maintenant connecté. Vous pouvez cliquer sur Connecter des dépôts si vous souhaitez connecter des dépôts à Cloud Build.

Connecter vos dépôts GitHub Enterprise

Cette section explique comment mapper votre projet Cloud avec l'application GitHub que vous avez créée dans la section précédente.

Console

  1. Ouvrez la page Déclencheurs dans Google Cloud Console.

    Ouvrir la page Déclencheurs

  2. Cliquez sur Connecter un dépôt.

  3. Sous Sélectionner une source, cliquez sur GitHub Enterprise.

  4. Sélectionnez votre connexion à l'hôte (GitHub Enterprise Config) dans le menu déroulant.

  5. Cliquez sur Continuer.

  6. Autorisez votre application.

  7. Sous Sélectionner un dépôt, sélectionnez votre compte GitHub et votre dépôt dans le menu déroulant.

API

Pour installer l'application GitHub sur le compte utilisateur ou l'organisation GitHub approprié et l'associer à un projet Cloud Build:

  1. Accédez à l'URL associée à l'application GitHub que vous avez créée dans la section précédente:

       https://host-url/organizations/org-name/settings/apps/app-name/
    

    Où :

    • host-url est l'URL de l'hôte de votre instance GitHub Enterprise.
    • org-name est le nom de l'organisation dans laquelle vous avez créé votre projet.
    • app-name est le nom de votre application GitHub.
  2. Installez l'application sur votre compte utilisateur ou votre organisation via l'URL.

    Une fois l'application installée, notez l'ID d'installation associé. L'ID d'installation est indiqué dans l'URL une fois l'application installée.

  3. Créez un fichier JSON avec le contenu suivant:

    {
     "Id": installation-id,
     "project_id": "project-id",
     "repository_setting_list": {
            "repository_settings": {
            "owner": "owner",
            "name": "repo-name",
          },
          "repository_settings": {
            "owner": "owner",
            "name": "repo-name-additional"
          },
         …
     },
        "enterprise_config_resource_name": "projects/project-number/githubEnterpriseConfigs/id"
    }
    

    Où :

    • installation-id est l'ID d'installation de l'application GitHub. Remarque: cette valeur est un entier et ne nécessite pas de guillemets.
    • project-id correspond au projet Cloud associé à l'installation.
    • owner est le propriétaire du dépôt GitHub.
    • repo-name est le nom du dépôt GitHub.
    • [FACULTATIF] repo-name-additional correspond au nom d'un dépôt GitHub supplémentaire.
    • project-number correspond au numéro du projet Cloud.
    • id est l'ID de GitHubEnterpriseConfig.
  4. Saisissez la commande curl suivante dans votre terminal, où project-id est l'ID du projet Cloud:

     curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" https://cloudbuild.googleapis.com/v1/projects/${PROJECT_ID}/installations -d @installation.json
    

Les dépôts associés à votre installation sont désormais visibles sur la page Déclencheurs dans l'onglet Inactif.

Créer un déclencheur GitHub pour votre installation GitHub Enterprise

Cette section explique comment créer un déclencheur et l'associer à votre installation GitHub Enterprise. Si vous souhaitez utiliser des déclencheurs GitHub Enterprise dans un environnement sur site, consultez la section Créer des dépôts dans un environnement sur site à partir de GitHub Enterprise pour obtenir des instructions supplémentaires.

Console

Pour en savoir plus sur la création de déclencheurs à l'aide des déclencheurs GitHub, consultez la page Créer des déclencheurs GitHub.

API

Le modèle JSON suivant vous montre comment créer des déclencheurs via la ligne de commande:

  {
      "filename": "cloudbuild.yaml",
      "name": "curl-trigger",
      "description": "curl trigger",
      "github": {
          "push": {
              "branch": ".*",
          },
          "owner": "owner",
          "name": "repo-name",
      "enterprise_config_resource_name": "projects/project-number/githubEnterpriseConfigs/id"
      }
  }

Où :

  • owner est le propriétaire du dépôt GitHub.
  • repo-name est le nom du dépôt GitHub.
  • project-number correspond au numéro du projet Cloud.
  • id est l'ID de votre configuration GitHubEnterprise.

Saisissez la commande curl suivante dans votre terminal, où project-id est l'ID du projet Cloud:

  curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" https://cloudbuild.googleapis.com/v1/projects/project-id/triggers -d @trigger.json

Le déclencheur a bien été créé.

Créer des dépôts dans un environnement sur site à partir de GitHub Enterprise

Cette section explique comment créer un pool privé sur une instance GitHub Enterprise à l'aide de déclencheurs GitHub Enterprise.

Pour créer un déclencheur GitHub Enterprise à compiler dans votre environnement sur site, procédez comme suit:

  1. Activez l'accès privé à Google pour les hôtes sur site pour vous assurer que votre instance GitHub Enterprise peut accéder aux API et services Google Cloud.

  2. Appairez votre réseau sur site à Google Cloud et configurez un réseau de cloud privé virtuel (VPC, Virtual Private Cloud). Pour en savoir plus, consultez la section Appairage d'un réseau VPC.

  3. Créez un déclencheur GitHub Enterprise pour créer des dépôts hébergés sur une instance GitHub Enterprise.

Votre déclencheur GitHub Enterprise appelle désormais automatiquement des compilations sur votre instance GitHub Enterprise en fonction de votre configuration.

Étapes suivantes