100%를 한번에 바꾸는건 어려워도 1%를 100번 바꾸는건 쉽다.

생각정리 자세히보기

개발/기타

[기타] Jira와 Discord 연동

dc-choi 2024. 1. 5. 16:03
반응형

최근 팀원들을 모아 사이드 프로젝트를 시작하게 되었습니다. 전에는 Jira와 Slack을 사용하여 팀원들과 소통을 했었습니다. Slack과 Jira는 서로 연동이 잘되어 편리하였습니다. 하지만 현재 팀원들은 Discord를 사용하는 것이 더 친숙하기에 Discord를 선택하게 되었습니다.

 

서로 연동하기 위한 방법은 크게 두가지 방법이 있었습니다.

1. Discord에 WebHook을 설정한 다음 Jira에서 WebHook을 보내는 것.

2. Discord에 WebHook을 설정한 다음 Jira의 자동화를 사용하여 Discord의 WebHook에 요청을 보내는 것

 

첫번째 방법의 경우 다음과 같이 설정하였습니다.

 

위 사진처럼 설정하였으나, 실제 시스템에서 동작하지 않는 오류가 있었습니다. 그래서 이 방법은 자세히 서술하지 않겠습니다. 저는 두 번째 방법에 대해서 자세히 서술하도록 하겠습니다.

1. Discord의 WebHook을 설정한다.

먼저 Discord의 WebHook을 설정합니다. WebHook을 설정하기 위해서는 Discord 채널의 권한이 필요합니다.

 

WebHook이 뭔지 모른다면 아래 URL을 참고해주시면 감사하겠습니다.

https://docs.tosspayments.com/resources/glossary/webhook

 

웹훅(Webhook) | 토스페이먼츠 개발자센터

웹훅이란 데이터가 변경되었을 때 실시간으로 알림을 받을 수 있는 기능입니다. 웹 서비스의 이벤트 데이터를 전달하는 HTTP 기반 콜백 함수입니다. 특정 이벤트가 발생하면 웹훅이 클라이언트

docs.tosspayments.com

 

채널 편집의 연동 메뉴를 들어가서 WebHook을 설정합니다.

 

다음과 같이 웹훅을 설정합니다.

 

2. Jira의 자동화 기능 설정

Jira는 일정 행동을 하면 다른 행동을 자동적으로 할 수 있도록 트리거를 지정할 수 있습니다. 그 트리거가 되는 것이 바로 자동화라는 것입니다. 자동화를 통해서 일정 행동을 했을 때 다른 행동도 추가적으로 할 수 있도록 설정했습니다.

 

저는 이슈의 생성, 수정, 삭제, 댓글의 생성, 수정, 삭제에 대해서 알림을 받도록 설정하였습니다.

 

위 예시를 보면 When과 Then으로 나누어져 있는 것을 알 수 있습니다.

이슈가 만들어졌을 경우를 When으로 설정하고 Then에 웹 요청을 전송하도록 하였습니다.

웹 요청을 보낼 때 Discord WebHook URL을 입력하고 해당 행동에 대해서 입력하도록 합니다.

 

이슈에 관련된 메시지를 정리한 JSON은 다음과 같았습니다.

{
    "content": "이슈가 생성되었습니다.\n이슈명: [{{issue.key}} {{issue.summary}}]({{baseUrl}}/jira/software/projects/AF/boards/1?selectedIssue={{issue.key}})\n이슈상태: {{issue.status.name}}\n담당자: {{issue.assignee.displayName}}\n보고자: {{issue.reporter.displayName}}\n이슈 설명: {{issue.description}}\nㅤ"
}

 

댓글에 관련된 메시지를 정리한 JSON은 다음과 같았습니다.

{
    "content": "이슈명: [{{issue.key}} {{issue.summary}}]({{baseUrl}}/jira/software/projects/AF/boards/1?selectedIssue={{issue.key}})\n작성자: {{issue.comments.author.displayName}}\n댓글: {{issue.comments.last.body}}\n"
}

 

Discord의 메시지는 MarkDown 문법을 따릅니다. 그래서 MarkDown 문법을 참고하여 메시지를 작성하였습니다.

http://taewan.kim/post/markdown/

 

마크다운 사용법 - Quick Start

Markdown 테그 사용법을 정리합니다.

taewan.kim

 

그리고 Jira에서 사용되는 특정 변수들이 있었습니다. 이를 Jira smart values라고 정의하였습니다. 해당 내용에 대한 부분은 다음 문서를 참고하였습니다.

https://support.atlassian.com/cloud-automation/docs/jira-smart-values-issues/

 

Jira smart values - issues | Cloud automation Cloud | Atlassian Support

Use smart values in automation rules to access and manipulate issue data in Jira Work Management Cloud. View the smart values in Jira Work Management Cloud.

support.atlassian.com

 

3. 메시지 확인

메시지가 정상적으로 동작하는 것을 확인하였습니다.

 

느낀점

평소에는 Slack을 많이 사용하지만 이번 기회에 커뮤니케이션툴로 Discord를 사용할 수 있었습니다. Discord의 WebHook은 매우 유용하게 사용할 수 있었던 것 같습니다. 단순히 게임용 메신저가 아니라 업무용 메신저로도 충분히 메리트가 있었던거 같습니다.

반응형