Cette page explique comment se connecter à un dépôt Bitbucket Server dans Cloud Build.
Avant de commencer
Activez les API Cloud Build, Secret Manager et Compute Engine, si ce n'est pas déjà fait.
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.
- Suivez les instructions pour connecter un hôte Bitbucket Server avant de connecter des dépôts.
Se connecter à un dépôt Bitbucket Server
Console
Pour connecter un dépôt Bitbucket Server à Cloud Build à l'aide de la console Google Cloud :
Ouvrez la page Dépôts dans la console Google Cloud .
En haut de la page, sélectionnez l'onglet 1re génération.
Cliquez sur Connecter un dépôt.
Sélectionnez Bitbucket Server.
Le panneau Connecter un dépôt s'affiche. Pour connecter votre dépôt Bitbucket Server :
Région : sélectionnez la région dans laquelle se trouve votre connexion.
Sous Sélectionner un fournisseur de gestion de code source, sélectionnez Bitbucket Server.
Connexion à l'hôte : sélectionnez le nom de votre connexion à l'hôte dans le menu déroulant.
Cliquez sur Continuer.
Sous Sélectionner un dépôt, sélectionnez les dépôts Bitbucket Server que vous souhaitez connecter à Cloud Build.
Une fois que vous avez sélectionné votre compte et vos dépôts Bitbucket Server, lisez la clause de non-responsabilité, puis cochez la case à côté pour indiquer que vous acceptez les conditions présentées.
Cliquez sur Connecter pour connecter vos dépôts.
Lorsqu'un dépôt est connecté, Cloud Build configure un webhook sur le dépôt dans votre instance Bitbucket Server. Le dépôt envoie ensuite des webhooks pour appeler les déclencheurs Bitbucket Server correspondants lorsque vous apportez des modifications à votre dépôt. Un dépôt peut également être associé plusieurs fois à plusieurs connexions hôtes. Pour savoir comment gérer les Webhooks, consultez Gérer les Webhooks.
Pour localiser le webhook, vous avez besoin de son ID. L'ID du webhook pour chaque dépôt connecté se trouve dans
BitbucketServerConfig.Saisissez la commande suivante pour récupérer l'ID du webhook :
gcloud alpha builds enterprise-config bitbucketserver describe CONFIG_NAME --region=REGIONOù :
- CONFIG_NAME est le nom de la configuration Bitbucket Server.
- REGION est la région de la connexion hôte Bitbucket Server.
Cliquez sur OK. Vous pouvez également cliquer sur Créer un déclencheur pour créer un déclencheur.
API
Pour connecter votre dépôt Bitbucket Server à Cloud Build à l'aide de l'API, procédez comme suit :
Utilisez le modèle JSON ci-dessous pour connecter votre dépôt :
{ "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "requests": { "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "bitbucketServerConnectedRepository": { "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "repo": { "projectKey": "PROJECT_KEY", "repoSlug": "REPO_SLUG" } } } }Où :
- PROJECT_NUMBER est le numéro de votre projet Cloud.
- REGION correspond à la région associée à votre configuration Bitbucket Server.
- BITBUCKET_SERVER_CONFIG_NAME correspond au nom de votre configuration Bitbucket Server.
- PROJECT_KEY est la clé de votre projet Bitbucket Server.
Si vous souhaitez connecter un dépôt personnel, la clé de votre projet doit contenir le symbole tilde (
~) avant votre nom d'utilisateur. Exemple :~${USERNAME}. L'URL complète d'un dépôt hôte peut se présenter comme suit :https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}. - REPO_SLUG est le slug de votre dépôt Bitbucket Server.
Saisissez la commande
curlsuivante 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/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME/connectedRepositories:batchCreate -d @requests.jsonOù :
- PROJECT_NUMBER est le numéro de votre projet Cloud.
- PROJECT_ID est votre ID de projet cloud.
- REGION correspond à la région associée à votre configuration Bitbucket Server.
- BITBUCKET_SERVER_CONFIG_NAME est le nom de votre configuration Bitbucket Server.
Si la requête aboutit, le corps de la réponse contient une nouvelle instance de Operation.
Saisissez la commande
curlsuivante 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/REGION/operations/OPERATION_IDOù :
- PROJECT_NUMBER est le numéro de votre projet Cloud.
- PROJECT_ID est votre ID de projet cloud.
- REGION correspond à la région associée à votre configuration Bitbucket Server.
- OPERATION_ID est l'ID de l'opération de création de la configuration Bitbucket Server.
Vous trouverez l'ID d'opération dans le champ
namede votre réponse. Le format du champnamedans votre réponse ressemble à ce qui suit :projects/project-id/locations/region/operations/operation-id.
Vous devrez peut-être continuer à exécuter la commande d'API
GetOperationjusqu'à ce que la réponse contiennedone: true, ce qui indique que l'opération est terminée. Si le dépôt Bitbucket Server est correctement connecté, vous pouvez le voir dans le champresponse.bitbucketServerConnectedRepositories. Sinon, consultez le champerrorpour obtenir un rapport d'erreur détaillé.
Étapes suivantes
- Apprenez à créer des dépôts à partir de Bitbucket Server.
- Découvrez comment créer des dépôts à partir de Bitbucket Server dans un réseau privé.
- Découvrez comment effectuer des déploiements bleu-vert sur Compute Engine.