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 des déclencheurs GitHub Enterprise pour appeler des compilations 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

  • Assurez-vous de disposer 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.
  • Assurez-vous de mapper un domaine personnalisé à votre hôte GitHub Enterprise et de 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 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. Associez 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é sur votre VPC. Pour savoir comment exécuter des compilations à l'aide d'un pool de nœuds de calcul privé, consultez la section 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.

Appairage d'un réseau VPC

Si votre instance GitHub Enterprise est hébergée dans un environnement sur site et non accessible via une connexion Internet publique, vous devez appairer votre réseau sur site à Google Cloud et configurer un réseau VPC.

  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 avoir accès à 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 de /23 ou moins, telle que /22, /21, etc.
  4. Établissez 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 DNS est configuré 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 les producteurs de services.
  6. [FACULTATIF] Si vous ne souhaitez pas appairer le réseau depuis votre projet Cloud, vous pouvez configurer un VPC partagé et faire en sorte que votre projet Cloud utilise ce réseau si votre projet fait partie d'une organisation. Vous aurez tout de même besoin que le VPC partagé soit appairé à l'API Service Networking.

Créer une application GitHub Cloud Build

Vous devrez créer une application GitHub sur votre instance GitHub Enterprise. L'application enverra des événements de webhooks à un point de terminaison Cloud Build. Lors de la réception de ces événements, Cloud Build validera la charge utile et exécutera une compilation si l'événement correspond à un déclencheur GitHub 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. Assurez-vous de disposer de la dernière version de GitHub Enterprise.

    Certaines versions de GitHub Enterprise peuvent nécessiter la désactivation des cookies SameSite pour effectuer les étapes suivantes dans un navigateur Chrome. Si vous utilisez 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é

    4. Redémarrez votre navigateur.

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

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

  4. Cliquez sur Connecter un hôte.

    Le panneau Connecter un 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 avez 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 de Cloud Console.

      Ouvrez la page Identifiants.

    2. Cliquez sur Créer des identifiants.

    3. Cliquez sur Clé API.

      Une fenêtre pop-up contenant la clé API s'affiche.

    4. Cliquez sur Restreindre la clé.

    5. Sous Restrictions des API, sélectionnez l'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 sera créée sous 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 est laissée vide, un ensemble de certificats par défaut sera utilisé.

  9. [FACULTATIF] Dans la section Réseau, saisissez le nom de votre projet réseau et un nom de réseau pour votre réseau si votre instance GitHub Enterprise est hébergée sur site, et vous avez appairer 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 de l'hôte peut prendre plusieurs minutes.

  11. Si vous souhaitez connecter vos dépôts à Cloud Build, cliquez sur Connecter des dépôts. Sinon, cliquez sur OK.

  12. Une fois votre hôte connecté, une fenêtre pop-up vous invite à 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 de votre application GitHub Enterprise.

  13. Après vous être connecté, saisissez le nom de votre application GitHub.

  14. Cliquez sur Créer une application GitHub.

    Vous venez de créer une application GitHub sur votre instance GitHub Enterprise. Cloud Build stocke automatiquement vos identifiants dans Secret Manager et connecte l'hôte à votre projet Cloud. Dans l'API, cette connexion est représentée par une ressource GitHubEnterpriseConfig ou 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 à 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 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 Dépôt dans le menu déroulant.

API

Pour installer l'application GitHub sur le compte utilisateur ou l'organisation GitHub approprié, et la connecter à un projet Cloud Build, procédez comme suit:

  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 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 qui lui est associé. L'ID d'installation se trouve dans l'URL après l'installation de l'application.

  3. Créez un fichier json contenant les éléments suivants :

    {
     "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 est le 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 de 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 page 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 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 est le numéro du projet Cloud.
  • id est l'ID de votre GitHubEnterpriseConfig.

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

Votre déclencheur est maintenant créé.

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

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

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

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

  2. Appairez votre réseau sur site avec Google Cloud et configurez un réseau cloud privé virtuel (VPC). 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 les compilations sur votre instance GitHub Enterprise en fonction de votre configuration.

Étapes suivantes