Neste tópico, descrevemos como configurar as notificações do Pub/Sub para o Cloud Source Repositories.
Antes de começar
Conclua as etapas do Guia de início rápido: criar um repositório.
Depois de concluir esse guia, você terá um aplicativo que pode ser implantado no App Engine.
Ative a API Compute Engine.
Neste guia de início rápido, a conta de serviço padrão do Compute Engine é usada para publicar mensagens no Pub/Sub.
Criar um tópico do Pub/Sub
Para receber notificações sobre um projeto ou repositório do Cloud Source Repositories, crie um tópico do Pub/Sub. Para isso, use o Console do Google Cloud ou a ferramenta de linha de comando gcloud
.
Console
No Console do GCP, acesse a página Tópicos do Pub/Sub.
Clique em Criar tópico add_box.
No campo Nome, digite
csr-test
.Clique em Criar tópico.
A página Detalhes do tópico é aberta.
gcloud
Em uma janela de terminal, defina uma variável que contenha seu ID de projeto do Google Cloud. Verifique se esse é o mesmo projeto do Google Cloud que contém seu repositório.
export PROJECT_ID=$(gcloud config list --format 'value(core.project)')
Execute o seguinte comando:
gcloud pubsub topics create projects/$PROJECT_ID/topics/csr-test
Criar uma assinatura no Pub/Sub
As assinaturas do Pub/Sub permitem que assinantes recebam mensagens do tópico de um repositório.
Console
No Console do GCP, acesse a página Tópicos do Pub/Sub.
Clique no nome do tópico do projeto do Google Cloud que você acabou de criar.
Na guia Assinaturas, clique em Criar assinatura.
A página Adicionar assinatura ao tópico é aberta.
Para o nome da assinatura, digite
csr-subscription-test
.Certifique-se de que Tipo de entrega esteja definido como Pull.
Clique em Criar.
A página Detalhes do tópico é aberta. Sua assinatura está listada na guia Assinaturas.
gcloud
Em uma janela de terminal, execute o comando a seguir:
gcloud pubsub subscriptions create csr-subscription-test --topic=csr-test
Associar um tópico a um repositório
Usando a ferramenta de linha de comando gcloud
, associe um tópico do Pub/Sub a um repositório específico:
gcloud source repos update hello-world --add-topic=csr-test
Uma saída semelhante à seguinte é exibida:
name: projects/csr-quickstart-test/repos/hello-world
pubsubConfigs:
projects/csr-quickstart-test/topics/csr-test:
messageFormat: JSON
serviceAccountEmail: 604898361241-compute@developer.gserviceaccount.com
topic: projects/csr-quickstart-test/topics/csr-test
url: https://source.developers.google.com/p/csr-quickstart-test/r/hello-world
Enviar uma alteração para o repositório hello-world
Com a configuração de tópicos e assinaturas do Pub/Sub, envie uma alteração para o repositório hello-world
. Essa alteração permite que você veja a notificação no trabalho.
Em uma janela de terminal, acesse o repositório
hello-world
:cd hello-world
Edite o arquivo
main.py
para ler da seguinte forma:#!/usr/bin/env python import webapp2 class MainHandler(webapp2.RequestHandler): def get(self): self.response.write('Hello, Cloud Pub/Sub!') app = webapp2.WSGIApplication([ ('/', MainHandler) ], debug=True)
Adicione o arquivo para que o Git possa confirmá-lo:
git add main.py
Faça a confirmação do arquivo:
git commit -m "Update main.py to test Cloud Pub/Sub notifications"
Envie o arquivo para o Cloud Source Repositories:
git push origin master
Visualizar a notificação
Quando você envia uma alteração ao seu repositório, o Pub/Sub envia uma notificação. Para visualizar essa notificação, digite o seguinte comando:
gcloud pubsub subscriptions pull csr-subscription-test
Limpar
Para excluir seus recursos do Pub/Sub, siga estas etapas.
No Console do GCP, acesse a página Tópicos do Pub/Sub.
Marque a caixa de seleção de qualquer tópico que você queira excluir permanentemente.
Clique em Excluir delete.
Para excluir todas as assinaturas restantes, selecione cada uma delas e clique em Excluir delete.
Para excluir o repositório que você criou, siga estas etapas.
No Console do GCP, abra a página Todos os repositórios do Cloud Source Repositories.
Mantenha o ponteiro do mouse sobre o repositório que você quer excluir e clique em Configurações settings.
A página Configurações gerais é aberta.
Clique em Excluir este repositório delete.
A caixa de diálogo Remover repositório é aberta.
Digite o nome do repositório que você quer excluir.
Clique em Excluir.
A seguir
- Saiba mais sobre como configurar notificações para o Cloud Source Repositories.
- Saiba mais sobre notificações do Pub/Sub para o Cloud Source Repositories.
- Leia a documentação do Pub/Sub.
- Para ver uma explicação detalhada do Pub/Sub, consulte O que é o Pub/Sub?
- Saiba mais sobre os papéis de controle de acesso do Pub/Sub.