Conéctate a un repositorio de Bitbucket Server

En esta página, se explica cómo conectarse a un repositorio de servidor de Bitbucket en Cloud Build.

Antes de comenzar

  • Habilita las API de Cloud Build, Secret Manager, and Compute Engine.

    Habilita las API

Conéctate a un repositorio de Bitbucket Server

Console

Para conectar un repositorio de Bitbucket Server a Cloud Build con Google Cloud Console, sigue estos pasos:

  1. Abre la página Activadores en Google Cloud Console.

    Abrir la página Activadores

  2. Haz clic en Conectar repositorio.

    Verá el panel Conectar repositorio.

  3. En Seleccionar fuente, selecciona Servidor de bucket .

  4. En Seleccionar repositorio, selecciona los repositorios de Bitbucket Server que deseas conectar a Cloud Build.

  5. Haz clic en Conectar para conectar tus repositorios.

    Cuando se conecta un repositorio, Cloud Build configura un webhook en el repositorio de tu instancia de Bitbucket Server. Luego, el repositorio envía webhooks para invocar los activadores de Bitbucket Server correspondientes cuando realizas cambios en tu repositorio. Un repositorio también se puede conectar varias veces con varias conexiones de host. Para obtener información sobre cómo administrar webhooks, consulta Administra webhooks.

    Para ubicar el webhook, necesitas su ID. El ID de webhook para cada repositorio conectado se puede encontrar en BitbucketServerConfig. Ingresa el siguiente comando para recuperar el ID de webhook, en el que CONFIG_NAME es el nombre de la configuración de Bitbucket Server:

    gcloud alpha builds enterprise-config bitbucketserver describe --config=CONFIG_NAME
    
  6. Haga clic en Listo. De manera opcional, haz clic en Crear un activador para crear uno.

API

Para conectar tu repositorio de Bitbucket Server a Cloud Build con la API, usa la siguiente plantilla de JSON:

  {
    "parent": "projects/PROJECT_NUMBER/locations/global/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME",
    "requests": {
      "parent": "projects/PROJECT_NUMBER/locations/global/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME",
      "bitbucketServerConnectedRepository": {
        "parent": "projects/PROJECT_NUMBER/locations/global/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME",
        "repo": {
           "projectKey": "PROJECT_KEY",
           "repoSlug": "REPO_SLUG"
         }
       }
    }
  }

Donde:

  • PROJECT_NUMBER es el número de tu proyecto de Cloud.
  • BITBUCKET_SERVER_CONFIG_NAME es el nombre de la configuración del servidor de Bitbucket.
  • PROJECT_KEY es la clave de tu proyecto de Bitbucket Server. Si deseas conectar un repositorio personal, la clave de proyecto debe contener el símbolo (~) antes de tu nombre de usuario. Por ejemplo, ~${USERNAME}. La URL completa de un repositorio de host puede verse como https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}.
  • REPO_SLUG es la babosa del repositorio de Bitbucket Server.

Ingresa el siguiente comando curl en tu 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/BITBUCKET_SERVER_CONFIG_NAME/connectedRepositories:batchCreate -d @requests.json

Donde:

  • PROJECT_NUMBER es el número de proyecto de Cloud.
  • PROJECT_ID es el ID del proyecto de Cloud.
  • BITBUCKET_SERVER_CONFIG_NAME es el nombre de la configuración de Bitbucket Server.

Si el proceso es satisfactorio, el cuerpo de la respuesta contiene una instancia nueva de Operation.

Ingresa el siguiente comando curl en tu 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

Donde:

  • PROJECT_NUMBER es el número de proyecto de Cloud.
  • PROJECT_ID es el ID del proyecto de Cloud.
  • OPERATION_ID es el ID de la operación de creación de la configuración de Bitbucket Server.

Es posible que debas seguir ejecutando el comando GetOperation de la API hasta que la respuesta contenga done: true, lo que indica que la operación se completó. Si el repositorio de Bitbucket Server se conectó correctamente, puedes ver el repositorio conectado en el campo response.bitbucketServerConnectedRepositories. De lo contrario, consulta el campo error para obtener un informe de errores detallado.

¿Qué sigue?