Pode receber notificações de alterações aos seus Google Cloud repositórios através do Pub/Sub. Estas notificações informam quando um utilizador cria um novo repositório, elimina um repositório ou envia uma alteração para um repositório existente. Pode optar por configurar notificações para repositórios específicos ou em todo o Google Cloud projeto.
Para saber mais acerca do Pub/Sub, consulte o artigo O que é o Pub/Sub?
Antes de começar
- Se ainda não o fez, crie um repositório.
- Verifique se tem as autorizações adequadas para criar tópicos e subscrições. Para mais informações, consulte o artigo Controlo de acesso.
- Certifique-se de que tem uma conta de serviço que pode publicar no seu tópico. Por predefinição, os Cloud Source Repositories usam a conta de serviço predefinida do Compute Engine para publicar mensagens. Para mais informações, consulte o artigo Notificações do Pub/Sub para Cloud Source Repositories.
Crie um tópico do Pub/Sub
Para cada projeto ou repositório do Cloud Source Repositories para o qual quer receber
notificações, tem de criar um tópico do Pub/Sub. Pode criar um tópico através da Google Cloud consola ou da ferramenta de linha de comandosgcloud.
Quando cria um tópico, tem de usar um URI qualificado para o seu repositório. O URI qualificado é:
projects/[PROJECT_ID]/topics/[TOPIC_NAME]
Onde:
[PROJECT_ID]é o ID do seu Google Cloud projeto.[TOPIC_NAME]é o nome do tópico.
Para criar um tópico, siga estes passos.
Consola
Na Google Cloud consola, aceda à página Tópicos do Pub/Sub.
Clique em Criar tópico.
Introduza um nome do tópico com o URI:
projects/[PROJECT_ID]/topics/[TOPIC_NAME]Onde:
[PROJECT_ID]é o ID do seu Google Cloud projeto.[TOPIC_NAME]é o nome do tópico.
Clique em Criar.
É apresentada a página Detalhes do tópico.
gcloud
Numa janela do terminal, execute o seguinte comando:
gcloud pubsub topics create projects/[PROJECT_ID]/topics/[TOPIC_NAME]
Onde:
[PROJECT_ID]é o ID do seu Google Cloud projeto.[TOPIC_NAME]é o nome do tópico.
Resource already exists in the project
Para saber mais sobre o comando gcloud pubsub topics, consulte a
topics documentação.
Crie uma subscrição do Pub/Sub
Para receber eventos publicados num tópico, tem de criar uma subscrição do Pub/Sub.
Uma app de subscrição recebe mensagens do tópico do seu repositório. Os subscritores podem responder aos seus eventos de repositório enviando notificações ou acionando uma compilação.
Para criar uma subscrição, siga estes passos.
Consola
Na Google Cloud consola, aceda à página Tópicos do Pub/Sub.
Clique no nome do tópico do seu projeto.
Clique em Criar subscrição.
É apresentada a página Adicionar subscrição ao tópico.
Introduza um nome da subscrição:
projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]Onde:
[PROJECT_ID]é o ID do seu Google Cloud projeto.[SUBSCRIPTION_NAME]é o nome da subscrição do Pub/Sub.
Deixe o Tipo de fornecimento definido como Extrair.
Clique em Criar.
gcloud
Numa janela do terminal, execute o seguinte comando:
gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME]
Onde:
[SUBSCRIPTION_NAME]é o nome da subscrição do Pub/Sub.[TOPIC_NAME]é o nome do tópico.
Para saber mais sobre o comando gcloud pubsub subscriptions, consulte a
subscriptions documentação.
Adicione um tópico
Pode associar um tópico do Pub/Sub a um projeto Google Cloud ou a um repositório através da CLI do Google Cloud.
Para associar um tópico a um projeto inteiro, introduza o seguinte comando:
gcloud source project-configs update --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]
Onde:
[TOPIC_NAME]é o nome do tópico Pub/Sub.[SERVICE_ACCOUNT_NAME]é o nome da sua conta de serviço do Cloud Build.
Para associar um tópico a um repositório específico, introduza o seguinte comando:
gcloud source repos update [REPOSITORY_NAME] --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]
Onde:
[REPOSITORY_NAME]é o nome do seu Google Cloud repositório.[TOPIC_NAME]é o nome do tópico Pub/Sub.[SERVICE_ACCOUNT_NAME]é o nome da sua conta de serviço do Cloud Build.
A conta de serviço tem de estar no mesmo projeto que o repositório e tem de ter autorização pubsub.topics.publish para publicar uma mensagem no tópico especificado. Tem de ter autorização iam.serviceAccounts.actAs na conta de serviço. Se a conta de serviço não for especificada, a predefinição é a conta de serviço predefinida do Compute Engine.
Remova um tópico
Pode remover uma associação entre um projeto ou um repositório e um tópico do Pub/Sub através da Google Cloud CLI.
Para remover um tópico de um projeto inteiro, introduza o seguinte comando:
gcloud source project-configs update --remove-topic=[TOPIC_NAME]
Para remover um tópico de um repositório específico, introduza o seguinte comando:
gcloud source repos update [REPOSITORY_NAME] --remove-topic=[TOPIC_NAME]
Defina o formato do tópico
As notificações para os Cloud Source Repositories podem usar o formato JSON ou Protocol Buffers. Para definir o formato de um tópico, pode usar o parâmetro --message-format quando adiciona o tópico:
gcloud source project-configs update --add-topic=[TOPIC_NAME] --message-format=[json|protobuf]
Também pode usar o comando set-format:
gcloud source project-configs update --update-topic=[TOPIC_NAME] --message-format=[json|protobuf]
O que se segue?
- Saiba mais sobre as notificações do Pub/Sub para os Cloud Source Repositories.
- Leia a documentação do Pub/Sub.
- Para uma explicação detalhada do Pub/Sub, consulte o artigo O que é o Pub/Sub?.
- Saiba mais sobre as funções de controlo de acesso do Pub/Sub.