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.

Los webhooks se han renombrado como puntos finales HTTPS sin cambios en su 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 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.

Necesitará proporcionar valores para los siguientes parámetros cuando cree una interfaz de servicio de GitHub:

<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. Debe ser único respecto a las demás interfaces de servicio de la 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

Convertir webhooks de GitHub en puntos finales

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

Opcional. El ID del usuario de App Services que ejecuta la función de webhook cuando se llama a este.

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: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 Atlas convertida en cadena que acepte la carga útil del webhook y devuelva el ID de usuario run_as_user_id_script_source en. Si no especifica un ID de usuario específico ni una función que lo resuelva, App Services ejecuta la función del webhook como el usuario del sistema con acceso completo a las API CRUD y de agregación de MongoDB, y omite todas las reglas y la validación del esquema.

Request Validation
config.secret

La cadena GitHub Secret que GitHub incluye con las solicitudes entrantes para comprobar su validez. Debes especificar este valor en la configuración de tu repositorio de GitHub al proporcionar la URL de un webhook.

App Services pasa automáticamente un documento payload como primer argumento a las funciones de webhook entrantes. En un webhook entrante de GitHub Service, el objeto payload representa el evento de GitHub que provocó 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 servicio GitHub pasa el documento payload y contiene información de la solicitud.

  1. Inicie sesión en GitHub.

  2. Navegue hasta el repositorio al que desea suscribirse.

  3. Haga clic en la pestaña Settings del repositorio y seleccione Webhooks en el menú de la izquierda.

  4. Haga clic en Add Webhook.

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

  6. Establezca el tipo de contenido en application/json.

  7. Ingrese GitHub Secret. Debe coincidir con el valor que proporcionó en la configuración del webhook.

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

  9. Haga clic en Add webhook.

Volver

AWS

En esta página