Aunque Áú»¢¶Ä²© ofrece una gran cantidad de integraciones de webhook disponibles listo para usar, es posible que desee crear sus propios webhooks en su lugar. Este La secci¨®n proporciona ejemplos de scripts de webhook personalizados (utilizados en el par¨¢metro Script). Ver webhook para descripci¨®n de otros par¨¢metros de webhook.
Este script crear¨¢ un problema de JIRA y devolver¨¢ informaci¨®n sobre el problema creado.
try {
Áú»¢¶Ä²©.log(4, '[ Jira webhook ] Started with params: ' + value);
var result = {
'tags': {
'endpoint': 'jira'
}
},
params = JSON.parse(value),
req = new HttpRequest(),
fields = {},
resp;
if (params.HTTPProxy) {
req.setProxy(params.HTTPProxy);
}
req.addHeader('Content-Type: application/json');
req.addHeader('Authorization: Basic ' + params.authentication);
fields.summary = params.summary;
fields.description = params.description;
fields.project = {key: params.project_key};
fields.issuetype = {id: params.issue_id};
resp = req.post('https://jira.example.com/rest/api/2/issue/',
JSON.stringify({"fields": fields})
);
if (req.getStatus() != 201) {
throw 'Response code: ' + req.getStatus();
}
resp = JSON.parse(resp);
result.tags.issue_id = resp.id;
result.tags.issue_key = resp.key;
return JSON.stringify(result);
}
catch (error) {
Áú»¢¶Ä²©.log(4, '[ Jira webhook ] Issue creation failed json : ' + JSON.stringify({"fields": fields}));
Áú»¢¶Ä²©.log(3, '[ Jira webhook ] issue creation failed : ' + error);
throw 'Failed with error: ' + error;
}
Este webhook reenviar¨¢ notificaciones de Áú»¢¶Ä²© a un canal de Slack.
intentar {
var par¨¢metros = JSON.parse(valor),
solicitud = nueva HttpRequest(),
respuesta;
si (params.HTTPProxy) {
req.setProxy(params.HTTPProxy);
}
req.addHeader('Tipo de contenido: aplicaci¨®n/x-www-form-urlencoded');
Áú»¢¶Ä²©.log(4, '[Slack webhook] Solicitud de webhook con valor=' + valor);
respuesta = req.post(params.hook_url, 'payload=' + encodeURIComponent(valor));
Áú»¢¶Ä²©.log(4, '[ Webhook de Slack ] Respondi¨® con el c¨®digo: ' + req.getStatus() + '. Respuesta: ' + respuesta);
intentar {
respuesta = JSON.parse(respuesta);
}
atrapar (error) {
si (req.getStatus() < 200 || req.getStatus() >= 300) {
throw 'La solicitud fall¨® con el c¨®digo de estado' + req.getStatus();
}
dem¨¢s {
throw 'La solicitud se realiz¨® correctamente, pero el an¨¢lisis de la respuesta fall¨®.';
}
}
if (req.getStatus() !== 200 || !response.ok || respuesta.ok === 'falso') {
lanzar respuesta.error;
}
devolver 'OK';
}
atrapar (error) {
Áú»¢¶Ä²©.log(3, '[ Webhook de Slack ] Error al enviar. Error: ' + error);
throw 'Error con error: ' + error;
}