Conectarse a un repositorio de Bitbucket Server

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

Antes de empezar

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

    Enable the APIs

Conectarse a un repositorio de Bitbucket Server

Consola

Para conectar un repositorio de Bitbucket Server a Cloud Build mediante la consola de Google Cloud , sigue estos pasos:

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

    Abre 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 Bitbucket Server.

    Verá el panel Conectar repositorio. Sigue estos pasos para conectar tu repositorio de Bitbucket Server:

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

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

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

    4. Haz clic en Continuar.

    5. En Select Repository (Seleccionar repositorio), elige los repositorios de Bitbucket Server que quieras conectar a Cloud Build.

    6. Una vez que haya seleccionado su cuenta y sus repositorios de Bitbucket Server, lea la renuncia de consentimiento y marque la casilla situada junto a ella para indicar que acepta los términos presentados.

    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 envía webhooks para invocar los activadores de Bitbucket Server correspondientes cuando haces cambios en el repositorio. Un repositorio también se puede conectar varias veces con varias conexiones de host. Para saber cómo gestionar webhooks, consulta Gestionar webhooks.

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

    Introduce el siguiente comando para obtener el ID del webhook:

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

    Donde:

    • 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. También puedes hacer clic en Crear un activador para crear uno.

API

Para conectar tu repositorio de Bitbucket Server a Cloud Build mediante la API, sigue estos 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"
           }
         }
      }
    }
    

    Donde:

    • PROJECT_NUMBER es el número de tu proyecto de Cloud.
    • REGION es la región asociada a tu 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 quieres conectar un repositorio personal, la clave de tu proyecto debe incluir el símbolo de tilde (~) antes de tu nombre de usuario. Por ejemplo, ~${USERNAME}. La URL completa de un repositorio de host puede tener este aspecto: https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}.
    • REPO_SLUG es el slug de tu repositorio de Bitbucket Server.
  2. Introduce 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/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME/connectedRepositories:batchCreate -d @requests.json
    

    Donde:

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

    Si la petición se realiza correctamente, el cuerpo de la respuesta contiene una instancia Operation recién creada.

  3. Introduce 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/REGION/operations/OPERATION_ID
    

    Donde:

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

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

Siguientes pasos