Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Servicios de terceros

Servicio de GitHub

Importante

Servicios de terceros y notificaciones push obsoletos

Los servicios de terceros y las notificaciones push en App Services han quedado obsoletos en favor de la creación de puntos finales HTTP que usan dependencias externas en funciones.

Webhooks se han renombrado a HTTPS Endpoints sin cambios en el comportamiento. Debe migrar los Webhooks existentes.

Los servicios existentes continuarán funcionando hasta el de septiembre 30 2025de.

Dado que los servicios de terceros y las notificaciones push ya no se utilizan, se han eliminado de forma predeterminada de la interfaz de usuario de App Services. Si necesita administrar un servicio de terceros o una notificación push existente, puede volver a agregar las configuraciones a la interfaz de usuario siguiendo estos pasos:

  • En la navegación izquierda, debajo del Manage sección, haga clic en App Settings.

  • Habilite el interruptor junto a Temporarily Re-Enable 3rd Party Services y luego guarde los cambios.

GitHub es una plataforma de desarrollo basada en la web para alojar y revisar repositorios Git.

El servicio Atlas App Services de GitHub permite que su aplicación reaccione a eventos en un repositorio de GitHub, como nuevas solicitudes de extracción o problemas.

You will need to provide values for the following parameters when you create a GitHub service interface:

<Service Name>/config.json
{
"name": "<Service Name>",
"type": "github",
"config": {}
}
Parameter
Descripción
Service Name
config.name

El nombre de esta interfaz de servicio de GitHub. Esto debe ser único respecto a todas las demás interfaces de servicio en tu aplicación.

Los servicios de GitHub no proporcionan ninguna acción de servicio. Utilice un webhook entrante para responder a eventos en su repositorio de GitHub.

Nota

Convert GitHub Webhooks to Endpoints

Los webhooks del servicio GitHub están obsoletos y se sustituyen por endpoints HTTPS personalizados. Para saber cómo migrar tus webhooks de GitHub a endpoints, consulta Convertir webhooks a endpoints HTTPS.

GitHub puede invocar uno o más webhooks cuando ocurre un evento específico en un repositorio. Si desea obtener más información sobre la funcionalidad de los webhooks de GitHub, incluyendo información de referencia detallada sobre los tipos de eventos, consulte la sección sobre webhooks de GitHub. documentación.

Tendrá que proporcionar valores para los siguientes parámetros cuando configure un webhook de entrada en GitHub:

Necesitará proporcionar un archivo de configuración con el siguiente formato cuando configure un webhook entrante de GitHub:

{
"name": <string>,
"respond_result": <boolean>,
"run_as_user_id": <string>,
"run_as_user_id_script_source": <string>,
"options": {
"secret": <string>
},
}
Valor de configuración
Descripción
Webhook Name
name

Obligatorio. El nombre del webhook. Cada webhook entrante en una interfaz de servicio de GitHub debe tener un nombre único.

Respond With Result
respond_result

Obligatorio. Si trueApp Services envía el valor de retorno de la función webhook a GitHub en el cuerpo de la respuesta.

Run Webhook As
run_as_user_id
run_as_user_id_script_source

Optional. The id of the App Services user that executes the webhook function when the webhook is called.

Existen tres formas de configurar el usuario de ejecución:

  • System:El usuario de ejecución es el usuario del sistema, que tiene acceso completo a las API de CRUD y agregación de MongoDB y omite todas las reglas y la validación del esquema.

  • User Id:Selecciona un usuario de aplicación específico para ejecutar la función.

  • Script: Se define una función que devuelve el id del usuario de ejecución.

Puede especificar el ID de usuario directamente en run_as_user_id o proporcionar una Función de Atlas en forma de string que acepte la carga útil del webhook y retorne el ID de usuario en run_as_user_id_script_source. Si no especifica un ID de usuario o una función que resuelva un ID de usuario específico, App Services ejecutará la función del webhook como el usuario del sistema que tiene acceso total a las API CRUD y de agregación de MongoDB y omite todas las reglas y validación de esquema.

Request Validation
config.secret

La cadena GitHub Secret que GitHub incluye con las solicitudes entrantes para demostrar que son válidas. Debes especificar este valor en la configuración de tu repositorio de GitHub cuando proporciones una URL de webhook.

Aplicación Services pasa automáticamente un documento payload como primer argumento a las funciones entrantes de webhook. En un webhook entrante de servicio de GitHub, el objeto payload representa el evento de GitHub que hizo que GitHub llamara al webhook.

Nota

El contenido exacto de los documentos de GitHub payload varía según el tipo de evento que representan. Para obtener una descripción detallada del documento de carga útil de un tipo de evento específico, consulta la documentación de Tipos de eventos y cargas útiles de GitHub.

La siguiente función de webhook inserta datos entrantes en una colección MongoDB.

exports = function(payload) {
const mongodb = context.services.get("mongodb-atlas");
const requestlogs = mongodb.database("test").collection("requestlogs");
return requestlogs
.insertOne({
"commits": payload.commits,
"pushed_by": payload.pusher,
"repo": payload.repository.html_url
})
.then(({ insertedId }) => `Inserted document with _id: ${insertedId}`)
}

El documento payload es proporcionado por el servicio de GitHub y contiene información de la solicitud.

  1. Inicie sesión en GitHub.

  2. Navegue hasta el repositorio al que desea suscribirse.

  3. Click the Settings tab of the repository and select Webhooks from the left hand menu.

  4. Haga clic en Add Webhook.

  5. Agregue la URL del webhook al campo Payload URL.

  6. Set the content type to application/json.

  7. Introduce el GitHub Secret. Esto debería coincidir con el valor proporcionado en la configuración webhook.

  8. Elige el tipo de eventos a los que deseas suscribirte.

  9. Haga clic en Add webhook.

Volver

AWS

En esta página