Conectar-se a um repositório de data center do Bitbucket

Nesta página, explicamos como se conectar a um repositório de data center do Bitbucket com o Cloud Build.

Antes de começar

  • Ative as APIs Cloud Build, Secret Manager, and Compute Engine.

    Ative as APIs

Conectar-se a um repositório de data center do Bitbucket

Console

Para conectar um repositório de data center do Bitbucket 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 1a geração.

  3. Clique em Conectar repositório.

  4. Selecione Data center do Bitbucket.

    O painel Conectar repositório será exibido. Siga estas etapas para conectar seu repositório de data center do Bitbucket:

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

    2. Em Selecionar provedor de gerenciamento de código-fonte, escolha Data center do Bitbucket.

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

    4. Clique em Continuar.

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

    6. Depois de selecionar a conta e os repositórios do data center do Bitbucket, 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 quiser, clique em Criar um gatilho.

API

Para conectar seu repositório de data center do Bitbucket 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 data center do Bitbucket.
    • BITBUCKET_DATA_CENTER_CONFIG_NAME é o nome da configuração do data center do Bitbucket.
    • PROJECT_KEY é a chave do seu projeto do Data Center do Bitbucket. Se você quiser conectar um repositório pessoal, a chave de projeto precisará 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 data center do Bitbucket.
  2. Execute o seguinte comando curl no seu terminal no mesmo diretório que o 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 projeto do Google Cloud.
  • PROJECT_ID é o ID do projeto no Google Cloud.
  • REGION é a região associada à configuração do data center do Bitbucket.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME é o nome da configuração do data center do Bitbucket. Se bem-sucedido, o corpo da resposta incluirá uma instância recém-criada de Operation.
  1. Execute o seguinte comando curl no seu 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 projeto do Google Cloud.
    • PROJECT_ID é seu ID do Google Cloud.
    • REGION é a região associada à configuração do data center do Bitbucket.
    • OPERATION_ID é o ID da operação de criação de configuração do Data Center do Bitbucket. Encontre o ID da operação no campo name da sua 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 data center do Bitbucket estiver conectado, você verá o repositório conectado no campo response.bitbucketServerConnectedRepositories. Caso contrário, consulte o campo error para ver um relatório de erros detalhado.

Quando um repositório está conectado, o Cloud Build configura um webhook no repositório na sua instância do data center do Bitbucket. Em seguida, o repositório envia webhooks para invocar os gatilhos correspondentes do data center do Bitbucket quando você faz alterações nele. Um repositório também pode ser conectado várias vezes com diversas 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 arquivo BitbucketServerConfig.

Digite o seguinte comando para recuperar 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 data center do Bitbucket.
  • REGION é a região da conexão do host do Data Center do Bitbucket

A seguir