¿Cómo crear un webhook en un repository en la aplicación web de GitHub usando AJAX?

Estoy experimentando con Webhooks en la API de GitHub. Obtuve uno trabajando al hacerlo manualmente como al ir a mi repository y hacer clic en la configuration y habilitar un enlace web. Pero ahora quiero hacer esto en AJAX y estoy teniendo problemas. Cada vez que trato de enviar una POST a la API web falla con un 400 (Solicitud incorrecta). No estoy seguro de dónde me estoy equivocando con mi código.

function createWebHooksOnRepos(token){ const webhookURL = "https://api.github.com/repos/DanoBuck/AlgorithmsAndDataStructures/hooks"; const json = { "name": "WebHook", "active": true, "events": [ "issue_comment", "issues" ], "config": { "url": "http://39a40427.ngrok.io/api/webhooks/incoming/github", "content_type": "json" } }; $.ajax({ headers: { "Authorization": "Token " + token }, url: webhookURL, data: json, type: "POST", dataType: "json", success: function(data){ console.log(data); } }); 

}

Gracias

Desde github Webhook API doc :

nombre – cadena – Obligatorio. Use "web" para un webhook o use el nombre de un service válido. (Consulte / hooks para la list de nombres de service válidos).

Entonces, en tu caso, simplemente cambia el nombre de Webhook a web :

 const json = { "name": "web", "active": true, "events": [ "issue_comment", "issues" ], "config": { "url": "http://39a40427.ngrok.io/api/webhooks/incoming/github", "content_type": "json" } }; 

También JSON.stringify tus datos antes de enviar:

 $.ajax({ headers: { "Authorization": "Token " + token }, url: webhookURL, data: JSON.stringify(json), type: "POST", dataType: "json", success: function(data) { console.log(data); } });