Conectar-se a um repositório do Bitbucket Data Center

Nesta página, explicamos como se conectar a um repositório do Bitbucket Data Center no Cloud Build.

Antes de começar

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

    Enable the APIs

Conectar-se a um repositório do Bitbucket Data Center

Console

Para conectar um repositório do Bitbucket Data Center ao Cloud Build usando o console do Google Cloud:

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Na parte de cima da página, selecione a guia 1ª geração.

  3. Clique em Conectar repositório.

  4. Selecione Data center do Bitbucket.

    O painel Conectar repositório vai aparecer. Conclua as etapas a seguir para conectar o repositório do Bitbucket Data Center:

    1. Região: selecione a região em que a conexão está.

    2. Em Selecionar provedor de gerenciamento de código-fonte, selecione Bitbucket Data Center.

    3. Conexão do host: selecione o nome da conexão do host no menu suspenso.

    4. Clique em Continuar.

    5. Em Selecionar repositório, selecione os repositórios do Bitbucket Data Center que você quer conectar ao Cloud Build.

    6. Depois de selecionar sua conta e os repositórios do Bitbucket Data Center, leia a exoneração de responsabilidade de consentimento e marque a caixa de seleção ao lado para indicar que você aceita os termos apresentados.

    7. Clique em Conectar para conectar seus repositórios.

  5. Clique em Concluído. Se preferir, clique em Criar um acionador.

API

Para conectar seu repositório do Bitbucket Data Center ao Cloud Build usando a API, siga estas etapas:

  1. Crie um arquivo JSON com o seguinte conteúdo:

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

    Em que:

    • PROJECT_NUMBER é o número do projeto do Cloud.
    • REGION é a região associada à configuração do Bitbucket Data Center.
    • BITBUCKET_DATA_CENTER_CONFIG_NAME é o nome da configuração do Bitbucket Data Center.
    • PROJECT_KEY é a chave do projeto do Bitbucket Data Center. Se você quiser conectar um repositório pessoal, a chave do projeto precisa conter o símbolo de til (~) antes do nome de usuário.~ Por exemplo, ~${USERNAME}. O URL completo de um repositório de host é semelhante a https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}.
    • REPO_SLUG é o slug do repositório do Bitbucket Data Center.
  2. Execute o comando curl abaixo no terminal no mesmo diretório do arquivo 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

Em que:

  • PROJECT_NUMBER é o número do seu Google Cloud projeto.
  • PROJECT_ID é o Google Cloud ID do projeto.
  • REGION é a região associada à configuração do Bitbucket Data Center.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME é o nome da configuração do Bitbucket Data Center. Se a solicitação for concluída, o corpo da resposta vai conter uma instância recém-criada de Operation.
  1. Execute o comando curl a seguir no 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
    

    Em que:

    • PROJECT_NUMBER é o número do seu Google Cloud projeto.
    • PROJECT_ID é o ID Google Cloud .
    • REGION é a região associada à configuração do Bitbucket Data Center.
    • OPERATION_ID é o ID da operação de criação de configuração do Bitbucket Data Center. Você pode encontrar o ID da operação no campo name da resposta. O formato do campo name na sua resposta é semelhante a este: projects/project-id/locations/region/operations/operation-id.

    Talvez seja necessário continuar executando o comando da API GetOperation até que a resposta contenha done: true, o que indica que a operação foi concluída. Se o repositório do Bitbucket Data Center for conectado com sucesso, ele vai aparecer no campo response.bitbucketServerConnectedRepositories. Caso contrário, consulte o campo error para conferir um relatório de erro detalhado.

Quando um repositório é conectado, o Cloud Build configura um webhook no repositório na sua instância do Bitbucket Data Center. O repositório envia webhooks para invocar os acionadores do Bitbucket Data Center correspondentes quando você faz alterações no repositório. Um repositório também pode ser conectado várias vezes com várias conexões de host. Para saber como gerenciar webhooks, consulte Gerenciar webhooks.

Para localizar o webhook, você precisa do ID dele. O ID do webhook para cada repositório conectado pode ser encontrado no BitbucketServerConfig.

Digite o seguinte comando para extrair o ID do webhook:

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

Em que:

  • CONFIG_NAME é o nome da configuração do Bitbucket Data Center.
  • REGION é a região da conexão do host do Bitbucket Data Center

A seguir