Para obtener los permisos que necesitas para crear webhooks, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
En la interfaz web de Gestor de fuentes seguras, vaya al repositorio para el que quiera crear un webhook.
Haz clic en Settings (Configuración).
Haz clic en Webhooks y, a continuación, en Add webhook (Añadir webhook).
En el campo ID de gancho, introduce un ID para el webhook.
En el campo URL de destino, introduce la URL del webhook. Por ejemplo, si quieres activar una compilación en Jenkins, puedes configurar un activador de webhook y, a continuación, introducir la URL del activador de Jenkins para activar la compilación en Jenkins.
Si la URL del webhook contiene los valores de clave y secreto que introdujiste al crear el activador del webhook, elimínalos del final de la URL de destino y cópialos en el campo Cadena de consulta sensible.
Para encontrar la clave y el secreto en la URL del webhook, busca el texto que empieza por key=.
Por ejemplo, dada la siguiente URL:
https://cloudbuild.googleapis.com/v1/projects/my-project/triggers/test-trigger:webhook?key=eitIfKhYnv0LrkdsyHqIros8fbsheKRIslfsdngf&secret=Hello%20Secret%20Manager
Copia y elimina la parte que empieza por el signo de interrogación
?key=... del campo URL de destino. A continuación, quite el signo de interrogación inicial y mueva la parte restante key=... al campo Cadena de consulta sensible.
En la sección Activar con, seleccione una de las siguientes opciones:
Push: se activa cuando se inserta contenido en el repositorio.
Estado de solicitud de extracción cambiado: se activa cuando cambia el estado de una solicitud de extracción.
Si ha seleccionado Push, puede introducir una lista de permitidos para los eventos push en el campo Filtro de rama.
El campo Filtro de rama usa el patrón glob y solo las operaciones en las ramas coincidentes activarán una compilación. Si el campo está vacío o es *, se registran los eventos push de todas las ramas. Para obtener información sobre la sintaxis, consulta la documentación de glob.
Haz clic en Añadir webhook.
El webhook se muestra en la página Webhooks (Webhooks).
Probar el webhook
En la página Webhooks (Webhooks) de Secure Source Manager, haga clic en el webhook que quiera probar.
Ve a la parte inferior de la página y haz clic en Probar publicación.
Se añade un evento de marcador de posición a la cola de entrega. Puede tardar unos segundos en aparecer en el historial de envíos.
También puedes usar un comando git para enviar o combinar una solicitud de extracción para probar el webhook.
Comprueba el estado de la compilación o el evento activado en el historial de compilaciones del servicio en el que has configurado el activador de webhook.
También puedes ver la solicitud y la respuesta de la prueba de entrega en la sección Entregas recientes de la página de webhook de Gestor de Fuentes Seguras después de enviar tu primera prueba de entrega.
Sustituir variables YAML de Cloud Build por datos de carga útil
Si usas webhooks para conectarte a Cloud Build, puedes sustituir las variables YAML de Cloud Build por datos de la carga útil del webhook de Secure Source Manager.
En la página Webhooks de Gestor de fuentes seguras, en la sección Entregas recientes, haz clic en la fila superior.
Se muestran el encabezado Request y el contenido enviados por la carga útil del webhook.
Ve al panel de control de Cloud Build y haz clic en Activadores.
Haz clic en el activador que quieras configurar.
En la sección Avanzado, en Variables de sustitución, haga clic en
+ Añadir variable.
Introduce el nombre y el valor de la variable. El prefijo del valor es body.
Por ejemplo, para sustituir _REPO_URL por el campo de datos de la carga útil
repository.clone_url y _COMMIT_SHA por el sha de la confirmación más reciente en
Cloud Build YAML, introduce los siguientes nombres y valores:
Variable 1: _REPO_URL Valor 1: $(body.repository.clone_url)
Variable 2: _COMMIT_SHA Valor 2: $(body.after)
El archivo YAML de Cloud Build es similar al siguiente:
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-11 (UTC)."],[],[],null,["# Set up webhooks\n\nThis page describes how to set up webhooks in Secure Source Manager.\n\nWebhooks are HTTP requests triggered by an event in Secure Source Manager, and\nsent to a user-specified URL.\n\nBefore you begin\n----------------\n\n1. [Create a Secure Source Manager instance](/secure-source-manager/docs/create-instance).\n2. [Create a Secure Source Manager repository](/secure-source-manager/docs/create-repository).\n\n### Required roles\n\n\nTo get the permissions that\nyou need to create webhooks,\n\nask your administrator to grant you the\nfollowing IAM roles:\n\n- [Secure Source Manager Repository Admin](/iam/docs/roles-permissions/securesourcemanager#securesourcemanager.repoAdmin) (`roles/securesourcemanager.repoAdmin`) on the Secure Source Manager repository\n- [Secure Source Manager Instance Accessor](/iam/docs/roles-permissions/securesourcemanager#securesourcemanager.instanceAccessor) (`roles/securesourcemanager.instanceAccessor`) on the Secure Source Manager instance\n\n\nFor more information about granting roles, see [Manage access to projects, folders, and organizations](/iam/docs/granting-changing-revoking-access).\n\n\nYou might also be able to get\nthe required permissions through [custom\nroles](/iam/docs/creating-custom-roles) or other [predefined\nroles](/iam/docs/roles-overview#predefined).\n\nFor information on granting Secure Source Manager roles,\nsee [Access control with IAM](/secure-source-manager/docs/access-control) and\n[Grant users instance access](/secure-source-manager/docs/grant-users-instance-access).\n\nSet up a webhook\n----------------\n\n1. In the Secure Source Manager web interface, navigate to the repository you want to create a webhook for.\n2. Click **Settings**.\n3. Click **Webhooks** , and then click **Add webhook**.\n4. In the **Hook ID** field, enter an ID for the webhook.\n\n | **Note:** Hook IDs must follow the [resource naming convention](https://google.aip.dev/122#resource-id-segments). They must include only lower case letters, numbers, or dashes, must begin with a letter, and cannot be changed after creating the webhook.\n5. In the **Target URL** field, enter the Webhook URL. For example, if you want\n to trigger a build in Jenkins, you could\n [Set up a webhook trigger](/secure-source-manager/docs/connect-jenkins#set_up_a_webhook_trigger), and then enter\n the Jenkins trigger URL here to trigger your build in Jenkins.\n\n6. If the Webhook URL contains your key and secret values entered when you\n created your webhook trigger, remove them from the end of the target URL\n and copy them to the **Sensitive Query String** field.\n\n To locate your key and secret in your webhook URL, look for the text\n starting with `key=`\n\n For example, given the following URL:\n `https://cloudbuild.googleapis.com/v1/projects/my-project/triggers/test-trigger:webhook?key=eitIfKhYnv0LrkdsyHqIros8fbsheKRIslfsdngf&secret=Hello%20Secret%20Manager`\n\n Copy and remove the portion starting with the question mark\n `?key=...` from the **Target URL** field. Then remove the initial question\n mark, move the remaining portion `key=...` to the **Sensitive Query String**\n field.\n7. In the **Trigger on** section, select one of the following:\n\n - **Push**: to trigger on a push to the repository.\n - **Pull request state changed**: to trigger on a change in the pull request state.\n8. If you selected **Push** , then you can enter an allowlist for push events in\n the **Branch filter** field.\n\n The **Branch filter** field uses the glob pattern and only operations on the\n matched branches will cause a build trigger. If the field is empty or `*`,\n then push events for all branches are reported. For information on syntax,\n see the [glob](https://pkg.go.dev/github.com/gobwas/glob) documentation.\n9. Click **Add webhook**.\n\n10. The webhook is displayed in the **Webhooks** page.\n\n | **Note:** When you add or edit a webhook, the length of the `Sensitive Query String` might be inconsistent with the entered one, which is expected as placeholder strings are used to ensure security.\n\nTest your webhook\n-----------------\n\n1. In the Secure Source Manager **Webhooks** page, click the webhook you want to test.\n2. Go to the bottom of the page and click **Test delivery**.\n\n A placeholder event is added to the delivery queue. It might take a few\n seconds before it shows up in the delivery history.\n3. You can also use a `git` command to push or merge a pull request to test the\n webhook.\n\n4. Check the status of the triggered build or event in the build history of the\n service where you configured your webhook trigger.\n\n5. You can also view the **Request** and **Response** to the test delivery\n in the **Recent deliveries** section of the Secure Source Manager\n webhook page after you send your first test delivery.\n\nSubstitute Cloud Build YAML variables with payload data\n-------------------------------------------------------\n\nIf you're using webhooks to connect to Cloud Build, you can substitute\nCloud Build YAML variables with Secure Source Manager webhook payload\ndata.\n\n1. In the Secure Source Manager **Webhooks** page, in the **Recent deliveries**\n section, click the top row.\n\n The **Request** header and content sent by the webhook payload is displayed.\n2. Navigate to the Cloud Build dashboard, and then click **Triggers**.\n\n3. Click the trigger you want to configure.\n\n4. In the **Advanced section** , under **Substitution variables** , click\n **+ Add variable**.\n\n5. Enter the name and value of the variable. The value prefix is `body`.\n\n For example, to substitute `_REPO_URL` with the payload data field\n `repository.clone_url` and `_COMMIT_SHA` with latest commit sha in\n Cloud Build YAML, enter the following names and values:\n - Variable 1: `_REPO_URL` Value 1: `$(body.repository.clone_url)`\n - Variable 2: `_COMMIT_SHA` Value 2: `$(body.after)`\n\n The Cloud Build YAML file resembles the following: \n\n steps:\n - name: gcr.io/cloud-builders/git\n env:\n - '_REPO_URL=$_REPO_URL'\n - '_COMMIT_SHA=$_COMMIT_SHA'\n script: |\n #!/bin/sh\n git clone ${_REPO_URL} /workspace\n cd /workspace\n git reset --hard ${_COMMIT_SHA}\n\nWhat's next\n-----------\n\n- [Connect to Jenkins](/secure-source-manager/docs/connect-jenkins)"]]