brunch

You can make anything
by writing

C.S.Lewis

by 번개거북 Aug 13. 2021

Jira 코멘트 @멘션 잔디 알림 #2

JIRA, 잔디, Zapier 콤비네이션 이야기


이 글은 이전에 작성했던 내용을 보완하기 위해 쓰여졌습니다. 기존 글의 내용중에 여전히 유효한 내용은 다시 언급하지 않고 주요 변경 사항 위주로 정리를 해봤습니다. (아마도 저만을 위한 기록이 될 가능성이...)


기존 글 링크 : Jira 코멘트 @멘션 잔디 알림


참고로 아래 설명되는 내용 중 zapier의 일부 확장 기능은 Professional(현시점 월 $49) 이상을 사용하고 있어야 합니다.




현재 회사로 이직한 이후 여러가지 환경이 정비가 되었는데요, 여러 SaaS를 쓸 수 있는 환경도 마련되면서 이곳에서도 동일하게 Jira 코멘트에 달린 멘션을 잘 전달하면 좋겠다고 생각했습니다.


특히 이번에는 Cloud 버전의 Jira를 쓰면서 기존에 쓰던 Server 버전에서는 없었던 멘션 알림까지 보게 되었는데, 이를 활용할 수 있는 더 좋은 방법이 있지 않을까 찾아봤습니다. 하지만 현재까지는 관련 내용을 외부 액션으로 연결하는 방법을 찾지 못했습니다.

혹시 방법을 아시는 분은 제보 부탁드립니다 !!
Jira 안에서 멘션 내용에 대해 알림을 준다! 하지만 여기까지 ㅜㅜ


그래서 일단은 기존과 같은 방법으로 잔디로 알림을 주는 것을 적용하려고 시도를 했습니다. 이미 브런치에 잘 정리를 해뒀으니 금방 처리를 할 수 있을 것이라는 기대는 잠시후에 실패 메시지를 만나면서 바로 좌절을... 그리고 아래와 같이 기존과는 다른 현상 때문에 동작하지 않는 것을 발견했습니다.



예전에는 comment 안의 멘션 정보가 이메일 계정을 포함한 형태였는데, 위의 내용처럼 Jira 안에서의 키값으로 보이는 정보만 들어가 있는것을 확인했습니다.


결국 문제를 해결하기 위해서는 추가적인 방법이 필요했는데요, 구조화를 하는 것이 좋을 것 같아 크게 두가지 내용으로 구성을 했습니다.


1. 키값들을 잘 가져오기 & 해당 키값으로 Jira 계정의 이메일 정보 가져오기
2. 구성된 값들을 잔디 팀메시지로 보내기


그 결과로 두개의 Zap을 만들었습니다.


Jira comment 를 웹훅으로 받는 구조는 기존과 동일


첫본째 구성의 5번째에 있는 POST 액션을 웹훅으로 받아서 잔디로 발송


첫번째 Zap 구성


첫번째 키값들을 잘 가져오는 것은 크게 어렵지 않은데요, 기존 자바스크립트로 되어 있던 내용을 약간 수정했습니다. 기존 글의 내용과 약간 달라진 점은 하나의 코멘트에 어려명이 멘션이 된 경우도 처리될 수 있도록 전체 키값을 콤마(,)로 묶어서 구성을 하였다는 것입니다. 이렇게 하면 zapier의 Loop를 활용할 수 있게 됩니다.


accountId의 값들을 콤마로 붙이기


그리고 3단계의 Only continue if 가 있는 것은, 코멘트에 멘션이 없는 경우는 그 상태로 멈추고 더 이상 진행을 하지 않게 하기 위해 추가를 했습니다. 따로 작업을 하지 않으면 이후 단계에서 오류가 나면서 메시지가 발송이 안되게 되는데, 사용상에 불편은 없지만 zapier 관리 계정으로 경고 메일이 계속 오기 때문에 추가를 하는 것이 정신 건강에 좋습니다^^


이렇게 구성한 result 값을 4단계의 Loop안에서 콤마(,)로 구분해서 사용하는 방법은 아래와 같습니다.



이후 5번째에 있는 POST는 메시지 발송에 필요한 값들을 웹훅으로 전송하도록 만든 형태인데, 어떻게 보면 효율적이지 못할 수도 있지만 생각의 흐름대로 정리를 하다보니 이렇게 되었네요.



(참고1)

zapier에 Sub zap을 call 하는 기능이 생겼는데, 아마도 해당 내용으로 구성하는 것도 가능할 것 같지만 이미 이번 작업은 모두 구성을 끝낸 상태에서 다음 기회를 기약하기로...


(참고2)

Javascript나 Python을 실행하는 action의 이름은 "Code by zapier"입니다. 열심히 다른 키워드로 찾는 분이 혹시 계실까봐 남겨둡니다.



두번째 Zap 구성


Catch Hook부분은 추가만 하면 등록되는 부분이어서 패스.


이제 이 글이 시작된 원흉(?)을 해결해야 할텐데요, Jira API는 꽤나 잘 되어 있어서 아래 화면만 잘 보시면 쉽게 해결이 될 것입니다. 다만 API 버전에 따른 URL이 변경될 수 있으니 혹시 동작을 하지 않는다면 공식 문서를 찾아보시길 추천드립니다.


흔히 볼 수 있는 샘플 코드를 짜집기...


팀 메시지 부분은 기존 글에도 있지만 조금 변한 것이 있어서 다시 화면을 추가해봅니다.



위와 같이 구성하려면 Webhook 액션에서 종류를 "Custom Request"로 하고, 설정 화면에서 Method를 "Post"로 하면 됩니다. 그리고 하단에 Header를 설정하는 것은 잔디의 웹훅 설정방법에 있는 "Accept"와 "Content-Type" 내용을 참고하셔서 설정하면 됩니다.

 

잔디 내부 안내
Zap에서 Headers 설정. 잔디 설정방법 안내에 'header'라는 말이 없는 것은 살짝 아쉬움. #토스랩


(참고3)

잔디에서 멤버들에게 메시지 보내는 방법 : https://support.jandi.com/hc/ko/articles/360023801531


(참고4)

Jira API 토큰 발급 주소 : https://id.atlassian.com/manage-profile/security/api-tokens



여기까지가 잘 준비가 되었다면 원하는 결과를 볼 수 있겠죠?


테스트를 하면서 의견을 준 Ryan에게 멘션을 포함한 코멘트 작성


Ryan에게 도착한 잔디 개인 알림


잔디 멘션 결과를 얻은 방법. 캡처해서 주세요~ 라고 말하기.


(혼잣말)

이만하면 나중에 기억할 수 있겠지... 끝


(feat. 테스트는 항상 중요하다)


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari