Áú»¢¶Ä²©

1 Ejemplos de script de webhook

Visi¨®n general

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.

Webhook de Jira (personalizado)

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;
       }

Webhook de Slack (personalizado)

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;
       }