如何使用AJAX在GitHub web API上的存储库上创建webhook?
问题描述:
我正在GitHub API中试用Webhooks。我手动完成了一项工作,就像进入我的存储库并单击设置并启用Web钩子一样。但现在我想在AJAX中做到这一点,我遇到了问题。任何时候我尝试发送一个POST到web api,它会以400(错误请求)失败。我不确定我的代码出错了。如何使用AJAX在GitHub web API上的存储库上创建webhook?
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);
}
});
}
谢谢
答
名字 - 字符串 - 必须。使用“web”作为webhook或使用有效的 服务的名称。 (对于有效服务名称的列表,请参阅/hooks)
所以你的情况,只需重命名Webhook
到web
:发送前
const json = {
"name": "web",
"active": true,
"events": [
"issue_comment",
"issues"
],
"config": {
"url": "http://39a40427.ngrok.io/api/webhooks/incoming/github",
"content_type": "json"
}
};
而且JSON.stringify
数据:
$.ajax({
headers: {
"Authorization": "Token " + token
},
url: webhookURL,
data: JSON.stringify(json),
type: "POST",
dataType: "json",
success: function(data) {
console.log(data);
}
});
仍没有这个运气。仍然收到相同的响应“无法加载资源:服务器响应状态为400(错误请求)”。尽管谢谢你的帮助。 – DanoBuck
您忘记将数据串联起来,我已更新我的信息 –
数据:JSON.stringify(json), - 该行使其完美工作。非常感谢您的帮助。大大欣赏帮助。 – DanoBuck