On my website, I have tried to implement a way to test to see if a users Github webhooks are set up properly. However, when I send the POST request to test the hooks, it returns a 422 error. I'm not sure why that comes up since the POST function I use is just copy pasted from all my other POST/GET functions to Github. Below I have shown the relevant code.
My getHook function does work and returns the list of hooks that user has.
const [ hookIds, setHookIds] = useState([]);
const handleGet = () => {
getHook(token, project[0], project[1]).then((m) => {
console.log(m);
setHookIds(m);
});
}
const handleTest = () => {
for (var i = 0; i < hookIds.length; i ++) {
testHook(token, project[0], project[1], hookIds[i]['id']).then((m) => {
console.log(m);
});
}
}
export var getHook = async (access_token, name, creator) => {
console.log("get hooks for user: " + creator + " and repo: " + name)
return axios.get("https://api.github.com/repos/" + creator + "/" + name + "/hooks",
{
headers: {
'Accept': 'application/vnd.github.v3+json',
'Authorization': 'token ' + access_token
}
})
.then(response => {
console.log("axios gets: " + response.data)
return response.data;
})
}
export var testHook = async (access_token, name, creator, hookid) => {
console.log("test hook for user: " + creator + " and repo: " + name + "and hook id: " + hookid)
return axios.post("https://api.github.com/repos/" + creator + "/" + name + "/hooks/" + hookid + "/tests",
{
headers: {
'Accept': 'application/vnd.github.v3+json',
'Authorization': 'token ' + access_token
}
})
.then(response => {
console.log("axios gets: " + response.data)
return response.data;
})
}