Puoi ricevere notifiche delle modifiche ai tuoi Google Cloud repository utilizzando Pub/Sub. Queste notifiche ti informano quando un utente crea un nuovo repository, elimina un repository o esegue il push di una modifica a un repository esistente. Puoi scegliere di configurare le notifiche per repository specifici o per un intero Google Cloud progetto.
Per saperne di più su Pub/Sub, consulta Che cos'è Pub/Sub?
Prima di iniziare
- Se non l'hai ancora fatto, crea un repository.
- Verifica di disporre delle autorizzazioni appropriate per creare argomenti e sottoscrizioni. Per saperne di più, consulta Controllo dell'accesso.
- Assicurati di avere un account di servizio in grado di pubblicare nell'argomento. Per impostazione predefinita, Cloud Source Repositories utilizza il service account predefinito di Compute Engine per pubblicare i messaggi. Per saperne di più, consulta Notifiche Pub/Sub per Cloud Source Repositories.
Crea un argomento Pub/Sub
Per ogni progetto o repository Cloud Source Repositories per il quale vuoi ricevere notifiche, devi creare un argomento Pub/Sub. Puoi creare
un argomento utilizzando la Google Cloud console o lo strumento a riga di comando
.gcloud
Quando crei un argomento, devi utilizzare un URI qualificato per il repository. L'URI qualificato è:
projects/[PROJECT_ID]/topics/[TOPIC_NAME]
Dove:
[PROJECT_ID]è l' Google Cloud ID progetto.[TOPIC_NAME]è il nome dell'argomento.
Per creare un argomento, segui questi passaggi.
Console
Nella Google Cloud console, vai alla pagina Argomenti di Pub/Sub.
Fai clic su Crea argomento.
Inserisci un nome per l'argomento con il seguente URI:
projects/[PROJECT_ID]/topics/[TOPIC_NAME]Dove:
[PROJECT_ID]è l' Google Cloud ID progetto.[TOPIC_NAME]è il nome dell'argomento.
Fai clic su Crea.
Viene visualizzata la pagina Dettagli argomento.
gcloud
In una finestra del terminale, esegui il seguente comando:
gcloud pubsub topics create projects/[PROJECT_ID]/topics/[TOPIC_NAME]
Dove:
[PROJECT_ID]è l' Google Cloud ID progetto.[TOPIC_NAME]è il nome dell'argomento.
Per saperne di più sul comando gcloud pubsub topics, consulta la
topics documentazione.
Crea una sottoscrizione Pub/Sub
Per ricevere gli eventi pubblicati in un argomento, devi creare una sottoscrizione Pub/Sub.
Un'app sottoscrittore riceve i messaggi dall'argomento del repository. I sottoscrittori possono rispondere agli eventi del repository inviando notifiche o attivando una build.
Per creare una sottoscrizione, segui questi passaggi.
Console
Nella Google Cloud console, vai alla pagina Argomenti di Pub/Sub.
Fai clic sul nome dell'argomento del progetto.
Fai clic su Crea sottoscrizione.
Viene visualizzata la pagina Aggiungi sottoscrizione all'argomento.
Inserisci un nome per la sottoscrizione:
projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]Dove:
[PROJECT_ID]è l' Google Cloud ID progetto.[SUBSCRIPTION_NAME]è il nome della sottoscrizione Pub/Sub.
Lascia Tipo di consegna impostato su Pull.
Fai clic su Crea.
gcloud
In una finestra del terminale, esegui il seguente comando:
gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME]
Dove:
[SUBSCRIPTION_NAME]è il nome della sottoscrizione Pub/Sub.[TOPIC_NAME]è il nome dell'argomento.
Per saperne di più sul comando gcloud pubsub subscriptions, consulta la
subscriptions documentazione.
Aggiungi un argomento
Puoi associare un argomento Pub/Sub a un Google Cloud progetto o a un repository utilizzando Google Cloud CLI.
Per associare un argomento a un intero progetto, inserisci il seguente comando:
gcloud source project-configs update --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]
Dove:
[TOPIC_NAME]è il nome dell'argomento Pub/Sub.[SERVICE_ACCOUNT_NAME]è il nome del tuo account di servizio Cloud Build.
Per associare un argomento a un repository specifico, inserisci il seguente comando:
gcloud source repos update [REPOSITORY_NAME] --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]
Dove:
[REPOSITORY_NAME]è il nome del Google Cloud repository.[TOPIC_NAME]è il nome dell'argomento Pub/Sub.[SERVICE_ACCOUNT_NAME]è il nome del tuo account di servizio Cloud Build.
Il account di servizio deve trovarsi nello stesso progetto del repository e deve disporre dell'autorizzazione pubsub.topics.publish per pubblicare un messaggio nell'argomento specificato. Devi disporre dell'autorizzazione iam.serviceAccounts.actAs per il account di servizio. Se il account di servizio non viene specificato, viene utilizzato il account di servizio predefinito di Compute Engine.
Rimuovi un argomento
Puoi rimuovere un'associazione tra un progetto o un repository e un argomento Pub/Sub utilizzando Google Cloud CLI.
Per rimuovere un argomento da un intero progetto, inserisci il seguente comando:
gcloud source project-configs update --remove-topic=[TOPIC_NAME]
Per rimuovere un argomento da un repository specifico, inserisci il seguente comando:
gcloud source repos update [REPOSITORY_NAME] --remove-topic=[TOPIC_NAME]
Imposta il formato dell'argomento
Le notifiche per Cloud Source Repositories possono utilizzare il formato JSON o Protocol Buffer. Per impostare il formato di un argomento, puoi utilizzare il parametro --message-format quando aggiungi l'argomento:
gcloud source project-configs update --add-topic=[TOPIC_NAME] --message-format=[json|protobuf]
Puoi anche utilizzare il comando set-format:
gcloud source project-configs update --update-topic=[TOPIC_NAME] --message-format=[json|protobuf]
Passaggi successivi
- Scopri di più sulle notifiche Pub/Sub per Cloud Source Repositories.
- Leggi la documentazione di Pub/Sub.
- Per una spiegazione approfondita di Pub/Sub, consulta Che cos'è Pub/Sub?.
- Scopri di più su ruoli di controllo dell'accesso di Pub/Sub.