지라(JIRA)의 자동화 기능을 이용해서 새로 달린 댓글의 멘션을 디스코드로 보내기

  • 저희팀은 이슈트래커는 지라를, 메신저는 디스코드를 사용하고 있습니다.
  • 누군가를 언급하는 댓글, 즉 멘션이 발생했을 때 디스코드의 특정 채널에 전달되면 바로 확인할 수 있어서 좋겠죠.
  • 지라의 자동화 기능은 템플릿을 제공하는데요, 안타깝게도 멘션에 관한 것은 없습니다. 당연히 디스코드에 대응되는 것도 없구요.
  • 그래서 지라의 Smart Value를 이용해서 직접 만들어 보기로 했습니다.
  • 이때 두 가지 개념에 대한 이해가 필요한데요.
    • 첫째 지라에서 사용하는 accountId
    • 둘째 디스코드의 webhook
  • 아래에서 차근 차근 설명해 보겠습니다.

지라의 accountId

  • 지라에서 특정 이슈에 멘션이 @ㅁㅁㅁㅁ 빨리 처리해주세요 달린 댓글을 작성하면, 아래와 같은 형식으로 저장이 됩니다.
    [~accountId:XXXXXXXXXXXXXXXXXXXXXXXXXX] 빨리 처리해주세요
    
  • 그러니까 ㅁㅁㅁㅁ 의 사용자ID인 accountId로 저장이 된다는 거에요.
  • 그런데 이걸 자동화 기능에서 comment.bodyissues.comments.last.body 로 가져오려고하면 저장된 형태 그대로 가져오게 됩니다.
  • 디스코드에는 ㅁㅁㅁㅁ 로 표기되어야 하지만 그렇게 안된다는 거죠. 아래처럼 갑니다.
    • Alt text
  • 이걸 사용자 이름으로 바꾸려고 온갖 방법을 찾아봤지만 결국 실패했어요. ㅠㅠ
  • 그래서 if 노가다로 처리했습니다. 예제 코드는 아래와 같습니다.
  • Alt text
  • 주의 하실 점은 중간에 공백문자 들어가면 오류날 수 있다는 점이에요. 아무튼 잘 도착하면 아래처럼 메시지가 전달됩니다. Alt text

디스코드의 webhook

  • 물론 이 모든것은 디스코드 상에서 webhook url을 만든 다음에 수행할 수 있다는 점 잊지마세요.
  • 디스코드 채널 편집 메뉴에서 연동을 선택하면, 웹후크를 만들고 수정할 수 있는 화면이 나옵니다. Alt text
  • 웹후크 URL 복사를 통해서 확보한 URL을 지라의 자동화 메뉴에서 웹 요청전송 부분에 입력하면 됩니다. Alt text
Share: Twitter Facebook
김민석's Picture

About 김민석

항상 공부가 부족한 개발자, 항상 시간이 부족한 딸바보, 항상 체력이 부족한 부족한남편, 그리고 고양이 집사

JungNangGu, Seoul, Korea Rep https://reddol18.pe.kr

Comments