Conéctate a un repositorio de Bitbucket Data Center

En esta página, se explica cómo conectarse a un repositorio del centro de datos de Bitbucket a 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 Data Center

Console

Para conectar un repositorio de Bitbucket Data Center a Cloud Build con la consola de Google Cloud, sigue estos pasos:

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página repositorios

  2. En la parte superior de la página, selecciona la pestaña 1a gen..

  3. Haz clic en Conectar repositorio.

  4. Selecciona Centro de datos de Bitbucket.

    Verás el panel Conectar repositorio. Completa los siguientes pasos para conectar tu repositorio de Bitbucket Data Center:

    1. Región: Selecciona la región en la que se encuentra tu conexión.

    2. En Selecciona el proveedor de administración de código fuente, selecciona Centro de datos de Bitbucket.

    3. Conexión de host: Selecciona el nombre de la conexión de host en el menú desplegable.

    4. Haz clic en Continuar.

    5. En Seleccionar repositorio, selecciona los repositorios del centro de datos de Bitbucket que deseas conectar a Cloud Build.

    6. Una vez que hayas seleccionado tu cuenta y tus repositorios de Bitbucket Data Center, lee la renuncia de responsabilidad de consentimiento y selecciona la casilla de verificación junto a ella para indicar que aceptas las condiciones presentadas.

    7. Haz clic en Conectar para conectar tus repositorios.

  5. Haz clic en Listo. De manera opcional, haz clic en Crear un activador para crear uno.

API

Para conectar tu repositorio de Bitbucket Data Center a Cloud Build mediante la API, completa los siguientes pasos:

  1. Crea un archivo JSON con el siguiente contenido:

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

    Aquí:

    • PROJECT_NUMBER es el número de tu proyecto de Cloud.
    • REGION es la región asociada a la configuración de tu centro de datos de Bitbucket.
    • BITBUCKET_DATA_CENTER_CONFIG_NAME es el nombre de la configuración de tu centro de datos de Bitbucket.
    • PROJECT_KEY es la clave de tu proyecto del centro de datos de Bitbucket. Si deseas conectar un repositorio personal, la clave de tu proyecto debe contener el símbolo de virgulilla (~) antes de tu nombre de usuario. Por ejemplo, ~${USERNAME}. La URL completa de un repositorio de host es similar a https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}.
    • REPO_SLUG es la slug de tu repositorio de Bitbucket Data Center.
  2. Ejecuta el siguiente comando curl en tu terminal desde el mismo directorio que el archivo JSON:

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_DATA_CENTER_CONFIG_NAME/connectedRepositories:batchCreate -d @requests.json

Aquí:

  • PROJECT_NUMBER es el número del proyecto de Google Cloud.
  • PROJECT_ID es tu ID del proyecto de Google Cloud.
  • REGION es la región asociada a la configuración de tu centro de datos de Bitbucket.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME es el nombre de la configuración de tu centro de datos de Bitbucket. Si el proceso es satisfactorio, el cuerpo de la respuesta contiene una instancia nueva de Operation.
  1. Ejecuta el siguiente comando curl en la 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_ID
    

    Aquí:

    • PROJECT_NUMBER es el número del proyecto de Google Cloud.
    • PROJECT_ID es tu ID de Google Cloud.
    • REGION es la región asociada a la configuración de tu centro de datos de Bitbucket.
    • OPERATION_ID es el ID de la operación de creación de la configuración del centro de datos de Bitbucket. Puedes encontrar el ID de operación en el campo name de tu respuesta. El formato del campo name en tu respuesta se ve de la siguiente manera: projects/project-id/locations/region/operations/operation-id.

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

Cuando se conecta un repositorio, Cloud Build configura un webhook en el repositorio de tu instancia de Bitbucket Data Center. Luego, el repositorio envía webhooks para invocar los activadores correspondientes de Bitbucket Data Center cuando realizas cambios en el repositorio. Un repositorio también se puede conectar varias veces con múltiples conexiones de host. Si deseas obtener más información para administrar webhooks, consulta Administra webhooks.

Para ubicar el webhook, necesitas el ID de webhook. El ID de webhook para cada repositorio conectado se puede encontrar en BitbucketServerConfig.

Ingresa el siguiente comando para recuperar el ID de webhook:

gcloud alpha builds enterprise-config bitbucketserver describe CONFIG_NAME  --region=REGION

Aquí:

  • CONFIG_NAME es el nombre de la configuración del centro de datos de Bitbucket.
  • REGION es la región de la conexión del host del centro de datos de Bitbucket.

¿Qué sigue?