Áú»¢¶Ä²©

1. §±§â§Ú§Þ§Ö§â§í §ã§Ü§â§Ú§á§ä§à§Ó §Ó§Ö§Ò§ç§å§Ü§à§Ó

§°§Ò§Ù§à§â

§·§à§ä§î Áú»¢¶Ä²© §Ú §á§â§Ö§Õ§Ý§Ñ§Ô§Ñ§Ö§ä §Ò§à§Ý§î§ê§à§Ö §Ü§à§Ý§Ú§é§Ö§ã§ä§Ó§à §Ú§ß§ä§Ö§Ô§â§Ñ§è§Ú§Û §Ó§Ö§Ò§ç§å§Ü§à§Ó ?§Ú§Ù §Ü§à§â§à§Ò§Ü§Ú?, §Ó§í §Þ§à§Ø§Ö§ä§Ö §Ù§Ñ§ç§à§ä§Ö§ä§î §Ó§Þ§Ö§ã§ä§à §ß§Ú§ç §ã§à§Ù§Õ§Ñ§ä§î §ã§Ó§à§Ú §Ó§Ö§Ò§ç§å§Ü§Ú. §£ §ï§ä§à§Þ §â§Ñ§Ù§Õ§Ö§Ý§Ö §á§â§Ú§Ó§Ö§Õ§Ö§ß§í §á§â§Ú§Þ§Ö§â§í §á§à§Ý§î§Ù§à§Ó§Ñ§ä§Ö§Ý§î§ã§Ü§Ú§ç §ã§Ü§â§Ú§á§ä§à§Ó §Ó§Ö§Ò§ç§å§Ü§à§Ó (§Ú§ã§á§à§Ý§î§Ù§å§ð§ä§ã§ñ §Ó §á§Ñ§â§Ñ§Þ§Ö§ä§â§Ö §³§Ü§â§Ú§á§ä). §³§Þ§à§ä§â§Ú§ä§Ö §â§Ñ§Ù§Õ§Ö§Ý §Ó§Ö§Ò§ç§å§Ü§à§Ó §Õ§Ý§ñ §á§à§Ý§å§é§Ö§ß§Ú§ñ §Ò§à§Ý§Ö§Ö §á§à§Õ§â§à§Ò§ß§à§Û §Ú§ß§æ§à§â§Þ§Ñ§è§Ú§Ú §á§à §à§ã§ä§Ñ§Ý§î§ß§í§Þ §á§Ñ§â§Ñ§Þ§Ö§ä§â§Ñ§Þ §Ó§Ö§Ò§ç§å§Ü§à§Ó.

Jira §Ó§Ö§Ò§ç§å§Ü (§á§à§Ý§î§Ù§à§Ó§Ñ§ä§Ö§Ý§î§ã§Ü§Ú§Û)

§¿§ä§à§ä §ã§Ü§â§Ú§á§ä §ã§à§Ù§Õ§Ñ§ã§ä §á§â§à§Ò§Ý§Ö§Þ§å (issue) §Ó JIRA §Ú §Ó§Ö§â§ß§×§ä §ß§Ö§Ü§à§ä§à§â§å§ð §Ú§ß§æ§à§â§Þ§Ñ§è§Ú§ð §à §ã§à§Ù§Õ§Ñ§ß§ß§à§Û §á§â§à§Ò§Ý§Ö§Þ§Ö.

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

Slack §Ó§Ö§Ò§ç§å§Ü (§á§à§Ý§î§Ù§à§Ó§Ñ§ä§Ö§Ý§î§ã§Ü§Ú§Û)

§¿§ä§à§ä §Ó§Ö§Ò§ç§å§Ü §Ò§å§Õ§Ö§ä §á§Ö§â§Ö§ã§í§Ý§Ñ§ä§î §à§á§à§Ó§Ö§ë§Ö§ß§Ú§ñ §Ú§Ù Áú»¢¶Ä²© §Ó §Ü§Ñ§ß§Ñ§Ý Slack.

try {
           var params = JSON.parse(value),
               req = new HttpRequest(),
               response;
       
           if (params.HTTPProxy) {
               req.setProxy(params.HTTPProxy);
           }
       
           req.addHeader('Content-Type: application/x-www-form-urlencoded');
       
           Áú»¢¶Ä²©.log(4, '[ Slack webhook ] Webhook request with value=' + value);
       
           response = req.post(params.hook_url, 'payload=' + encodeURIComponent(value));
           Áú»¢¶Ä²©.log(4, '[ Slack webhook ] Responded with code: ' + req.getStatus() + '. Response: ' + response);
       
           try {
               response = JSON.parse(response);
           }
           catch (error) {
               if (req.getStatus() < 200 || req.getStatus() >= 300) {
                   throw 'Request failed with status code ' + req.getStatus();
               }
               else {
                   throw 'Request success, but response parsing failed.';
               }
           }
       
           if (req.getStatus() !== 200 || !response.ok || response.ok === 'false') {
               throw response.error;
           }
       
           return 'OK';
       }
       catch (error) {
           Áú»¢¶Ä²©.log(3, '[ Slack webhook ] Sending failed. Error: ' + error);
       
           throw 'Failed with error: ' + error;
       }