Connettersi a un repository Bitbucket Server

Questa pagina spiega come connettersi a un repository Bitbucket Server a Cloud Build.

Prima di iniziare

  • Abilita le API Cloud Build, Secret Manager, and Compute Engine.

    Abilita le API

Connessione a un repository Bitbucket Server

console

Per connettere un repository Bitbucket Server a Cloud Build tramite la console Google Cloud:

  1. Apri la pagina Trigger in Google Cloud Console.

    Apri la pagina Trigger

  2. Fai clic su Connetti repository.

    Verrà visualizzato il riquadro Connetti repository.

  3. In Seleziona origine, seleziona Server Bitbucket.

  4. In Seleziona repository, seleziona i repository di Bitbucket Server che vuoi connettere a Cloud Build.

  5. Fai clic su Connetti per connettere i tuoi repository.

    Quando un repository è connesso, Cloud Build configura un webhook nel repository nell'istanza di Bitbucket Server. Il repository invia quindi webhook per richiamare i trigger di Bitbucket Server corrispondenti quando apporti modifiche al repository. Un repository può anche essere collegato più volte con più connessioni host. Per scoprire come gestire i webhook, vedi Gestire i webhook.

    Per individuare il webhook, devi disporre dell'ID webhook. L'ID webhook per ogni repository connesso è disponibile in BitbucketServerConfig. Inserisci il comando seguente per recuperare l'ID webhook, dove CONFIG_NAME è il nome della configurazione di Bitbucket Server:

    gcloud alpha builds enterprise-config bitbucketserver describe --config=CONFIG_NAME
    
  6. Fai clic su Fine. (Facoltativo) Fai clic su Crea un trigger per creare un trigger.

Server

Per connettere il repository Bitbucket Server a Cloud Build tramite l'API, utilizza il seguente modello 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"
         }
       }
    }
  }

Dove:

  • PROJECT_NUMBER è il numero del tuo progetto Cloud.
  • BITBUCKET_SERVER_CONFIG_NAME è il nome della configurazione del server Bitbucket.
  • PROJECT_KEY è la chiave del tuo progetto Bitbucket Server. Se vuoi connettere un repository personale, la chiave del progetto deve contenere il simbolo tilde (~) prima del nome utente. Ad esempio, ~${USERNAME}. L'URL completo di un repository host potrebbe essere simile a https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}.
  • REPO_SLUG è la slug del tuo repository Bitbucket Server.

Inserisci il seguente comando curl nel tuo terminale:

  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

Dove:

  • PROJECT_NUMBER è il tuo numero di progetto Cloud.
  • PROJECT_ID è l'ID progetto Cloud.
  • BITBUCKET_SERVER_CONFIG_NAME è il nome della configurazione del tuo server Bitbucket.

In caso di esito positivo, il corpo della risposta contiene un'istanza di operazione appena creata.

Inserisci il seguente comando curl nel tuo terminale:

  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

Dove:

  • PROJECT_NUMBER è il tuo numero di progetto Cloud.
  • PROJECT_ID è l'ID progetto Cloud.
  • OPERATION_ID è l'ID dell'operazione di creazione della configurazione del server Bitbucket.

Potrebbe essere necessario continuare a eseguire il comando API GetOperation finché la risposta non contiene done: true, che indica che l'operazione è stata completata. Se il repository Bitbucket Server è connesso correttamente, puoi vedere il repository connesso nel campo response.bitbucketServerConnectedRepositories. In caso contrario, consulta il campo error per un report dettagliato sugli errori.

Passaggi successivi