Conectar a um repositório do Bitbucket Server

Nesta página, explicamos como conectar um repositório do Bitbucket Server ao Cloud Build.

Antes de começar

  • Ative as APIs Cloud Build, Secret Manager e Compute Engine, se alguma delas ainda não estiver ativada.

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    Ativar as APIs

Como se conectar a um repositório do Bitbucket Server

Console

Para conectar um repositório do Bitbucket Server ao Cloud Build usando o console 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 Bitbucket Server.

    O painel Conectar repositório vai aparecer. Siga estas etapas para conectar seu repositório do Bitbucket Server:

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

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

    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, escolha os repositórios do Bitbucket Server que você quer conectar ao Cloud Build.

    6. Depois de selecionar sua conta e seus repositórios do Bitbucket Server, 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.

    Quando um repositório é conectado, o Cloud Build configura um webhook no repositório na sua instância do Bitbucket Server. O repositório envia webhooks para invocar os gatilhos correspondentes do Bitbucket Server quando você faz mudanças 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 de cada repositório conectado pode ser encontrado no BitbucketServerConfig.

    Insira o comando a seguir 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 Bitbucket Server.
    • REGION é a região da conexão do host do Bitbucket Server.
  5. Clique em Concluído. Se quiser, clique em Criar um gatilho.

API

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

  1. Use o modelo JSON abaixo para conectar seu repositório:

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

    Em que:

    • PROJECT_NUMBER é o número do projeto na nuvem.
    • REGION é a região associada à sua configuração do Bitbucket Server.
    • BITBUCKET_SERVER_CONFIG_NAME é o nome da sua configuração do Bitbucket Server.
    • PROJECT_KEY é a chave do seu projeto do Bitbucket Server. Se você quiser conectar um repositório pessoal, a chave do projeto precisará conter o símbolo de til (~) antes do seu nome de usuário. Por exemplo, ~${USERNAME}. O URL completo de um repositório de host pode ter esta aparência: https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}.
    • REPO_SLUG é o slug do seu repositório do Bitbucket Server.
  2. Insira o seguinte comando curl no 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
    

    Em que:

    • PROJECT_NUMBER é o número do projeto do Cloud.
    • PROJECT_ID é seu ID do projeto do Cloud.
    • REGION é a região associada à sua configuração do Bitbucket Server.
    • BITBUCKET_SERVER_CONFIG_NAME é o nome da sua configuração do Bitbucket Server.

    Se a solicitação for bem-sucedida, o corpo da resposta incluirá uma instância de Operation.

  3. Insira o seguinte comando curl 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 projeto do Cloud.
    • PROJECT_ID é seu ID do projeto do Cloud.
    • REGION é a região associada à sua configuração do Bitbucket Server.
    • OPERATION_ID é o ID da operação de criação da configuração do Bitbucket Server. Você encontra 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 Server estiver conectado, ele vai aparecer no campo response.bitbucketServerConnectedRepositories. Caso contrário, consulte o campo error para um relatório de erros detalhado.

A seguir