Notificaciones de Cloud Pub/Sub para repositorios de Google Cloud Source Repositories

En esta página, se proporciona una descripción general de las notificaciones de Cloud Pub/Sub para Cloud Source Repositories de Google. Para obtener más información sobre cómo configurar y usar las notificaciones de Cloud Pub/Sub, consulta Configura las notificaciones de Cloud Pub/Sub.

Cloud Source Repositories publica mensajes sobre tu repositorio a recursos con nombre llamados temas. Las aplicaciones suscritas a temas de Cloud Pub/Sub reciben estos mensajes. Las aplicaciones de suscriptor reciben notificaciones cuando cambias el estado de tu repositorio. Además, puedes configurar funciones y permisos para tus temas de Cloud Pub/Sub a fin de controlar la interacción de los usuarios con los eventos de Cloud Pub/Sub que genera tu repositorio.

Alcance

Puedes configurar Cloud Source Repositories para publicar eventos en un tema de Cloud Pub/Sub. Esto se puede configurar para un proyecto de GCP completo o un repositorio individual.

Permisos

Puedes usar el control de acceso de Cloud Pub/Sub a fin de configurar permisos para tu proyecto y tus recursos. Puedes usar los controles de acceso para ayudar a proteger los datos de los eventos que genera tu repositorio.

Puedes configurar los controles de acceso de Cloud Pub/Sub en la página de IAM de GCP Console o a través de la API de IAM.

Cloud Source Repositories usa la cuenta de servicio predeterminada de Compute Engine para publicar una notificación en tu tema de Cloud Pub/Sub. Esta cuenta de servicio tiene los permisos necesarios para publicar mensajes en temas de Cloud Pub/Sub. Puedes seleccionar una cuenta de servicio diferente con las herramientas de línea de comandos de gcloud.

Para configurar permisos a fin de suscribirse, usa cualquiera de las siguientes funciones:

  • Propietario
  • Editor
  • Administrador de Pub/Sub
  • Editor de Pub/Sub
  • Suscriptor de Pub/Sub

Tipos de eventos

Puedes usar las notificaciones de Cloud Pub/Sub para realizar un seguimiento cuando un usuario crea un repositorio, borra un repositorio y envía una confirmación en un repositorio. Cada evento tiene un tipo de evento específico. La siguiente tabla enumera los tipos de actualización y sus definiciones correspondientes.

Tipo de evento Descripción
CreateRepo Ocurre cuando un usuario crea un repositorio.
RefUpdate Ocurre cuando un usuario ejecuta un comando de Git push.
DeleteRepo Ocurre cuando un usuario borra un repositorio.

Formato de notificación

Puedes configurar una notificación de Cloud Pub/Sub para que Cloud Source Repositories use uno de los dos siguientes formatos:

  • JSON
  • Búfer de protocolo

Datos de notificación

Cada notificación de Cloud Pub/Sub contiene la siguiente información sobre un evento:

Nombre del campo Descripción
name Nombre del repositorio
url La URL del repositorio
eventTime La hora en que se produjo el cambio
refUpdateEvent Información sobre el cambio específico
createRepoEvent Indica si un usuario creó un repositorio
deleteRepoEvent Indica si un usuario borró un repositorio

Si la notificación es para un comando de git push, la notificación contiene el campo refUpdateEvent con la siguiente información:

Nombre del campo Descripción
email La dirección de correo electrónico del usuario que realizó el cambio
refUpdates Información sobre la confirmación

El campo refUpdate contiene los siguientes detalles sobre el comando git push:

Nombre del campo Descripción
refName El nombre de la rama
updateType El tipo de actualización. Consulta Tipos de actualización para obtener más información
oldId El ID de confirmación anterior para el repositorio
newId El ID nuevo para el repositorio

Tipos de actualización

Un evento git push puede tener uno de los cuatro tipos de actualización. Puedes encontrar el tipo en el campo updateType de la notificación.

Tipo de actualización Descripción
CREATE Ocurre cuando el comando crea una nueva referencia.
UPDATE_FAST_FORWARD Ocurre cuando el comando actualiza un objeto.
UPDATE_NON_FAST_FORWARD Ocurre cuando el comando usa la marca -f como git push -f.
DELETE Ocurre cuando el comando borra una referencia.

Ejemplo de notificación

El siguiente es un ejemplo de los datos contenidos en una notificación de Cloud Pub/Sub. Esta notificación usa el formato JSON.

"name": "projects/test-project/repos/pubsub-test",
"url": "[URL_PATH]",
"eventTime": "2018-02-21T21:23:25.566175Z",
"refUpdateEvent": {
  "email": "someone@somecompany.com",
  "refUpdates": {
    "refs/heads/master": {
    "refName": "refs/heads/master",
    "updateType": "UPDATE_FAST_FORWARD",
    "oldId": "c7a28dd5de3403cc384a025834c9fce2886fe763",
    "newId": "f00768887da8de62061210295914a0a8a2a38226"
    }
  }
}
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Cloud Source Repositories