Se connecter à un hôte Bitbucket Server

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Cette page explique comment se connecter à un hôte Bitbucket Server à Cloud Build.

Avant de commencer

  • Activer les API Cloud Build, Secret Manager, and Compute Engine.

    Activer les API

Configuration

Avant de connecter votre hôte Bitbucket Server, vous devez obtenir une clé API pour authentifier et accepter les événements entrants provenant de Bitbucket Server. De plus, vous devez accorder des autorisations IAM dans votre projet Google Cloud pour créer des jetons d'accès personnels dans Bitbucket Server, afin de créer des webhooks et récupérer les données du dépôt.

Obtenir une clé API

Pour connecter votre hôte et authentifier les événements de webhook entrants, vous avez besoin d'une clé API.

Pour obtenir une clé API:

  1. Ouvrez la page Identifiants dans Google Cloud Console:

    Ouvrez la page Identifiants.

  2. Cliquez sur Créer des identifiants.

  3. Cliquez sur Clé API.

    Une boîte de dialogue contenant la clé API s'affiche. Prenez note de votre clé API.

  4. Si vous souhaitez limiter votre clé pour les applications de produits, cliquez sur Restreindre la clé pour effectuer les étapes supplémentaires permettant de sécuriser votre clé. Sinon, cliquez sur Fermer.

    Pour savoir comment restreindre votre clé, consultez la section Appliquer des restrictions de clé API.

Autorisations IAM requises

Pour connecter votre hôte Bitbucket Server, accordez le rôle Éditeur Cloud Build (roles/cloudbuild.builds.editor) et Propriétaire des intégrations Cloud Build (cloudbuild.integrations.owner) à 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.

Créer des jetons d'accès personnel

Vous devez créer deux jetons d'accès personnel dans Bitbucket Server pour effectuer les tâches suivantes:

Ces jetons d'accès personnel sont les autorisations minimales requises. Vous devrez peut-être configurer des autorisations supplémentaires sur le serveur Bitbucket. Par exemple, vous pouvez sélectionner Bitbucket Server pour accéder uniquement à un sous-ensemble des dépôts de votre instance Bitbucket Server afin de bénéficier d'un contrôle plus précis sur les ressources disponibles dans Cloud Build.

Une fois vos jetons d'accès personnels créés, enregistrez-les en toute sécurité pour vous connecter à votre dépôt Bitbucket Server.

Se connecter à un hôte Bitbucket Server

Console

Pour connecter votre hôte Bitbucket Server à Cloud Build à l'aide de Google Cloud Console, procédez comme suit:

  1. Ouvrez la page Gérer les dépôts dans Google Cloud Console:

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

  2. Cliquez sur Connecter un hôte.

    Le panneau Connecter l'hôte s'affiche.

    Saisissez les informations suivantes pour connecter votre instance Bitbucket Server à Cloud Build:

    • Host url (URL de l'hôte) : l'URL de l'instance de votre serveur Bitbucket. Par exemple, https://bbs.example-test.com:7990.
    • Clé API Google Cloud: clé API utilisée pour authentifier vos identifiants.
    • [FACULTATIF] Certificat CA : votre certificat autosigné La taille de votre certificat ne doit pas dépasser 10 Ko et doit être au format PEM (.pem, .cer ou .crt). Si cette section est vide, un ensemble de certificats par défaut est utilisé.

    • Nom d'utilisateur: nom d'utilisateur de votre compte Bitbucket Server. Ce compte doit disposer d'un accès administrateur aux dépôts que vous souhaitez associer à Cloud Build.

    • Jeton d'accès en lecture : jeton d'accès personnel de votre compte Bitbucket avec autorisations de lecture.

    • Jeton d'accès administrateur : jeton d'accès personnel de votre compte Bitbucket avec des autorisations d'administrateur sur les projets et les dépôts.

    • [FACULTATIF] : Projet de réseau : ID de votre projet de réseau sur site.

    • [FACULTATIF] Nom du réseau: nom de votre réseau sur site.

  3. Cliquez sur Connecter un hôte.

    Si votre instance Bitbucket Server se trouve sur un réseau appairé, la connexion de votre hôte peut prendre plusieurs minutes.

    Vous serez redirigé vers le panneau Connect Repository (Connecter un dépôt).

    Une fois la connexion hôte créée, vos jetons d'accès personnels et votre secret de webhook seront stockés de manière sécurisée dans Secret Manager. Vous pouvez afficher et gérer vos secrets sur la page Secret Manager.

gcloud

Pour connecter votre hôte Bitbucket Server à Cloud Build à l'aide de commandes gcloud, vous devez exécuter la commande gcloud alpha builds enterprise-config bitbucketserver create dans votre terminal. Contrairement à la méthode permettant de connecter votre hôte à l'aide de Google Cloud Console, vous devrez stocker manuellement vos jetons d'accès personnels et votre secret de webhook dans Secret Manager avant d'exécuter la commande suivante:

gcloud alpha builds enterprise-config bitbucketserver create
    --name=BITBUCKET_SERVER_CONFIG_NAME \
    --user-name=USERNAME \
    --host-uri=HOST_URI \
    --admin-access-token-secret-version=ADMIN_ACCESS_TOKEN_SECRET_VERSION \
    --read-access-token-secret-version=READ_ACCESS_TOKEN_SECRET_VERSION \
    --webhook-secret-secret-version=WEBHOOK_SECRET_SECRET_VERSION \
    --api-key=API_KEY \
    --peered-network=PEERED_NETWORK \
    --ssl-ca-file=SSL_CA_FILE

Où :

  • BITBUCKET_SERVER_CONFIG_NAME est le nom de votre configuration de serveur Bitbucket.
  • USERNAME est votre nom d'utilisateur Bitbucket Server.
  • HOST_URI est l'URI de l'instance de votre instance Bitbucket Server.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION est le nom de ressource de votre jeton d'accès administrateur stocké dans Secret Manager. Le format attendu pour les secrets stockés dans Secret Manager est projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}. Vous pouvez spécifier latest comme version afin d'utiliser la dernière version de votre secret. Cette modification s'applique à chaque ressource stockée dans Secret Manager.
  • READ_ACCESS_TOKEN_SECRET_VERSION correspond au nom de ressource de votre jeton d'accès en lecture stocké dans Secret Manager.
  • WEBHOOK_SECRET_SECRET_VERSION est le nom de ressource de votre secret de webhook stocké dans Secret Manager.
  • API_KEY est la clé API Google Cloud.
  • [Facultatif] PEERED_NETWORK est le réseau VPC auquel se connecter sur site pour vos instances Bitbucket Server.
  • SSL_CA_FILE est le chemin d'accès à un fichier local contenant votre certificat SSL à utiliser pour les requêtes envoyées à Bitbucket Server. Le certificat doit être au format PEM.

API

Pour connecter votre hôte Bitbucket Server à Cloud Build à l'aide de l'API, utilisez le modèle JSON suivant. Contrairement à la méthode permettant de connecter votre hôte à l'aide de Google Cloud Console, vous devez stocker manuellement vos jetons d'accès personnels et votre secret de webhook dans Secret Manager avant d'appeler l'API:

  {
      "hostUri": HOST_URI,
      "username": USERNAME,
      "apiKey": API_KEY,
      "secrets": {
        "adminAccessTokenVersionName": ADMIN_ACCESS_TOKEN_SECRET_VERSION,
        "readAccessTokenVersionName": READ_ACCESS_TOKEN_SECRET_VERSION,
        "webhookSecretVersionName": WEBHOOK_SECRET_SECRET_VERSION,
      },
      "peeredNetwork": PEERED_NETWORK,
      "sslCa": SSL_CERTIFICATE
  }

Où :

  • HOST_URI est l'URI de l'instance de votre instance Bitbucket Server.
  • USERNAME est votre nom d'utilisateur Bitbucket Server.
  • API_KEY est la clé API Google Cloud.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION est le nom de ressource de votre jeton d'accès administrateur stocké dans Secret Manager. Vous devrez peut-être accorder le rôle Secret Manager à votre compte de service Cloud Build, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Pour en savoir plus, consultez la section Attribuer le rôle Secret Manager à votre compte de service.

  • READ_ACCESS_TOKEN_SECRET_VERSION correspond au nom de ressource de votre jeton d'accès en lecture stocké dans Secret Manager.

  • WEBHOOK_SECRET_SECRET_VERSION est le nom de ressource de votre secret de webhook stocké dans Secret Manager.

  • [Facultatif] PEERED_NETWORK est le réseau VPC à appairer aux instances de votre serveur Bitbucket sur site.

  • [Facultatif] SSL_CERTIFICATE est le certificat SSL utilisé pour vos instances Bitbucket Server sur site.

Saisissez la commande curl suivante dans votre terminal:

  curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8"  -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/global/bitbucketServerConfigs/?bitbucketServerConfigId=BITBUCKET_SERVER_CONFIG_NAME -d @config.json

Où :

  • PROJECT_NUMBER est le numéro de votre projet Cloud.
  • PROJECT_ID est votre ID de projet cloud.
  • BITBUCKET_SERVER_CONFIG_NAME est le nom de votre configuration de serveur Bitbucket.

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de Operation.

Saisissez la commande curl suivante dans votre terminal:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8"  -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID

Où :

  • PROJECT_NUMBER est le numéro de votre projet Cloud.
  • PROJECT_ID est votre ID de projet cloud.
  • OPERATION_ID est l'ID de votre opération de création de configuration Bitbucket Server.

Vous devrez peut-être continuer à exécuter la commande d'API GetOperation jusqu'à ce que la réponse contienne done: true, ce qui indique que l'opération est terminée. Si la configuration Bitbucket Server a bien été créée, vous pouvez la voir dans le champ response.value. Sinon, consultez le champ error pour obtenir un rapport d'erreur détaillé.

Étapes suivantes