Cómo conectarse a un repositorio de Bitbucket Server

En esta página, se explica cómo conectar un repositorio de Bitbucket Server a Cloud Build.

Antes de comenzar

  • Enable the Cloud Build, Secret Manager, and Compute Engine APIs.

    Enable the APIs

Conéctate a un repositorio de Bitbucket Server

Console

Para conectar un repositorio de Bitbucket Server a Cloud Build con la consola de Google Cloud, haz lo siguiente:

  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 1ª gen.

  3. Haz clic en Conectar repositorio.

  4. Selecciona Servidor de Bitbucket.

    Verás el panel Conectar repositorio. Completa lo siguiente pasos para conectar tu repositorio de Bitbucket Server:

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

    2. En Seleccionar el proveedor de administración de código fuente, selecciona Bitbucket Server.

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

    4. Haga clic en Continuar.

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

    6. Una vez que selecciones la cuenta y los repositorios de Bitbucket Server, 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.

    Cuando se conecta un repositorio, Cloud Build configura un webhook en el repositorio de tu instancia de Bitbucket Server. El repositorio y, luego, envía webhooks para invocar el Bitbucket Server correspondiente se activa cuando cuando realices cambios en tu repositorio. R repositorio también se puede conectar varias veces con varias conexiones de host. Si deseas obtener más información para administrar webhooks, consulta Cómo administrar webhooks.

    Para ubicar el webhook, necesitas el ID del webhook. El ID de webhook de cada repositorio conectado en BitbucketServerConfig.

    Ingresa el siguiente comando para recuperar el ID del webhook:

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

    Aquí:

    • CONFIG_NAME es el nombre de la configuración de Bitbucket Server.
    • REGION es la región de la conexión del host de Bitbucket Server.
  5. Haz 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 mediante la API, completa los siguientes pasos:

  1. Usa la siguiente plantilla JSON para conectar tu repositorio:

    {
      "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"
           }
         }
      }
    }
    

    Aquí:

    • PROJECT_NUMBER es el número del proyecto de tu Cloud.
    • REGION es la región asociada con la configuración de Bitbucket Server.
    • BITBUCKET_SERVER_CONFIG_NAME es el nombre de tu configuración de Bitbucket Server.
    • PROJECT_KEY es la clave de tu proyecto de Bitbucket Server. Si deseas conectar un repositorio personal, la clave de tu proyecto debe contiene el símbolo de virgulilla (~) antes de tu nombre de usuario. Por ejemplo, ~${USERNAME}. La URL completa para un repositorio de host podría verse así https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}
    • REPO_SLUG es la slug de tu Repositorio de Bitbucket Server.
  2. Ingresa el siguiente comando curl en la 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.json
    

    Aquí:

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

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

  3. Ingresa 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 de proyecto de Cloud.
    • PROJECT_ID es el ID del proyecto de Cloud.
    • REGION es la región asociada con la configuración de Bitbucket Server.
    • OPERATION_ID es el ID de tu operación de creación de configuración de Bitbucket Server. Puedes encontrar el ID de operación en el campo name de tu respuesta. El formato del campo name en tu respuesta es el siguiente: 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 se completó la operación. Si el repositorio de Bitbucket Server está conectado correctamente, podrás 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?