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.
- Siga as instruções para conectar um host de data center do Bitbucket antes de conectar um repositório.
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:
Abra a página Repositórios no console do Google Cloud.
Na parte de cima da página, selecione a guia 1a geração.
Clique em Conectar repositório.
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:
Região: selecione a região em que a conexão está.
Em Selecionar provedor de gerenciamento de código-fonte, escolha Data center do Bitbucket.
Conexão de host: selecione o nome da conexão de host no menu suspenso.
Clique em Continuar.
Em Selecionar repositório, selecione os repositórios do data center do Bitbucket que você quer conectar ao Cloud Build.
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.
Clique em Conectar para conectar seus repositórios.
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:
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 ahttps://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}
. - REPO_SLUG é o slug do repositório do data center do Bitbucket.
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.
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 camponame
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 contenhadone: 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 camporesponse.bitbucketServerConnectedRepositories
. Caso contrário, consulte o campoerror
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
- Saiba como criar repositórios do data center do Bitbucket.
- Saiba como criar repositórios do data center do Bitbucket em uma rede privada.
- Saiba como executar implantações azul-verde no Compute Engine.