엘리스 AI트랙 4기/프로젝트

Gitlab과 Discord Webhook 연동하기

남쪽마을밤송이 2022. 6. 2. 17:25

 [01 Webhook이란? ] 

  • Webhook은 하나의 앱/웹이 다른 어플리케이션으로 관련 이벤트 정보를 실시간으로 제공하기 위한 방법이라고 할 수 있다. Web Callback 또는 HTTP PUSH API로도 불린다.
  • 원론적으로, Webhook이란 웹페이지 또는 웹앱에서 발생하는 특정 행동(이벤트)들을 커스텀 Callback으로 변환해주는 방법이다.
  • 일반 API 요청으로 특정 앱의 데이터 및 이벤트의 실시간 상태를 알기 위해서는 짧은 주기로 반복해서 조회 API 요청을 보내 Data의 변경이나, 이벤트 발생 여부를 알아야 한다. 그러나 우리가 필요한 데이터를 가지고 있는 앱이 Webhook 서비스를 제공할 경우, Webhook 설정에 우리 서비스의 요청 Url을 등록해 놓은 뒤에, Webhook 서비스로부터 특정이벤트 관련 정보(알림)를 받기까지 기다리고 있으면 된다.
  • 조금 더 풀어서 설명하자면, 일반적인 API(Polling)는 클라이언트가 서버를 호출하는 방식이다. 하지만 웹훅의 경우 서버에서 특정 이벤트가 발생했을 때 클라이언트를 호출하는 방식이며 따라서 "역방향 API(Reverse API)" 라고도 부른다.

출처 : https://sddev.tistory.com/9 | https://leffept.tistory.com/329

 [02 Discord 설정 ] 

  • 사실 Github이랑 Discord를 연결하는 방법을 포스팅 한 블로그는 많았는데, Gitlab과 연결하는 방법에 대한 포스팅은 하나도 찾지 못했다.
  • 그래서 내가 쓰는 포스팅!! Gitlab이 오히려 Github보다 더 쉬운 방법인 것 같다.
  • 방법을 못찾다가 공식문서에서 확인했다. 영어로만 검색하면 맨 위에 뜨는데 한글을 섞어서 한 번에 못 찾았나보다..ㅎㅎ

  • 먼저 Discord로 들어가서 연결하려는 서버의 설정 화면으로 들어간다.
    • 이 때 관리자 권한이 있는 서버여야 한다.
  •  연동  탭으로 들어가면  웹후크 보기 가 있다.

  •  새 웹후크 를 클릭하고 원하는 이름을 작성하고 Gitlab 액션에 대한 알림이 뜨길 바라는 채널을 선택한다.
    • Gitlab 알림만을 위한 채널을 하나 만드는 걸 추천한다.
  • 변경사항을 저장하면 Discord에서 할 일은 끝, 여기서  웹후크 URL 을 복사해둔다.

 [03 Gitlab 설정 ] 

  • 이제 Gitlab에서 생성한 본인의  Repository > Settings > Integrations 로 들어간다.
    • 주의할 점은 밑에 Webhooks이 있어서 헷갈릴 수 있는데 Integrations를 선택해야 한다!

  • 들어가면 종류가 엄청 많은데 그 중  Discord Notifications  를 클릭해준다.

  • 여기서 알림으로 뜨게 하고 싶은 액션들을 Trigger로 설정하고 (디폴트는 모두 체크되어 있다) Webhook 칸에 위에서 복사해뒀던  Discord Webhook URL 을 붙여넣어준다.

  • 여기까지 하면 끝! 아래와 같이 내가 설정한 채널에 알림이 잘 오는 것을 확인할 수 있다😊