[Slack] GitHub PR 자동 커스텀 알림 보내기

standardChan·2025년 12월 6일

자동화

목록 보기
1/1
post-thumbnail

Slack에서 GitHub PR에 대한 알림을 팀원에게 자동으로 공유하기 위한 설정 방법

문제 상황

문제 상황

협업하는 과정 중에 PR을 올리면, 코드리뷰와 승인 요청을 위해 slack에서 해당 PR을 공유하고 있습니다. 하지만 PR이 생길때마다 매번 이를 직접 공유하려고 하니, 번거로운 문제가 아닐 수 없었습니다. 저는 이를 자동화해서 귀찮음을 줄이고 싶었습니다.

자동화 목표

PR을 올릴 때마다, Slack에 PR 메시지 자동 전송시키기!

1. Slack Github bot으로 진행하기

Slack에서 제공하는 Github bot 이라는게 있습니다. 기본적으로 제공하는 기능은 간단하게 사용할 수 있을 것 같아서 이걸을 사용해보기로 하였어요.

1. slakc에 Github 설치하기

순서1

좌측에 더보기 > 도구 에 들어갑니다.

순서2

좌측 도구>앱 에서 GitHub App을 클릭하여 설치를 진행합니다.

2. 인증

현재 Slack과 자신의 GitHub 연동을 위해 인증 절차를 거쳐야해요.

인증1

Connect GitHub account를 진행하게 되면, 인증코드를 받을 수 있어요. 이후 Enter verification code 를 눌러 해당 인증코드로 인증을 진행해요

인증2

그러면 Slack에 해당 github 계정 등록이 완료돼요.

/github help 를 사용하면 사용 가능한 명령어를 볼 수 있어요.

3. github Repo 구독

다음 명령어를 사용하면 github의 해당 repo를 구독할 수 있어요. 구독을 하면 issue, PR 등의 알림이 자동으로 slack에 전송돼요.

/github subscribe [repo주소]

구독1

하지만 기본적으로 제공하는 Slack 봇을 사용하려면, 해당 Repo owner의 승인이 필요하더군요...

제가 해당 권한을 가지고 있지 않고, 승인을 받기 어려울 것 같아서 다른 방법을 모색해보았습니다.


2. GitHub Action & Slack Bot 으로 자동화하기

구글에 검색을 해보니, Github action을 이용해서 Slack bot과 연동시킨 후 자동화할 수 있는 것 같더군요. 그래서 GitHub bot을 사용하는게 아닌 새로운 Slack bot을 만들어서 진행할 생각입니다.

3.1 Bot 만들기

https://api.slack.com/apps 링크에 들어갑니다

bot생성1

우측에 있는 Create New App을 클릭합니다.

bot생성2

From Scratch를 선택합니다.

이후 App 이름과 사용할 Slack 채널을 선택해서 Bot을 생성합니다.

잘 생성되면 아래 페이지로 redirect 됩니다.

bot생성3

3.2 Webhook 등록하기

webHook이란, 특정 이벤트가 발생했을 때, 서버가 다른 서버나 서비스로 데이터를 실시간으로 자동 전송하는 방식을 의미합니다.

다시말해서, 데이터가 변경되었을 때 실시간으로 알림을 전송하는 것이라고 생각하면 됩니다!

위 페이지에서 좌측에 있는 Incoming Webooks로 들어갑니다.

webhook등록1

기본값으로 OFF 로 지정 되어있는데, 이를 ON 으로 변경합니다.

그러면 아래에 페이지가 추가로 생성됩니다.

webhook등록2

저희는 Webhook을 등록해야하니까, Add New Webhook을 클릭합니다.

webhook등록3

여기에서 사용할 workspce와 채널을 지정해주고, 허용을 눌러줍니다.

등록 완료

webhook등록4

위와 같은 메시지가 뜨면서 등록이 완료됩니다!

등록 확인하기

curl 을 터미널이나 bash로 보내봅니다

curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/주소

슬랙에 아래와 같이 입력이 된다면 등록이 성공한 것입니다!

webhook등록5

PR 메시지 자동화 하기

webhooks을 등록하였으니, Github Action으로 PR이 올라오는 순간을 감지해서 Slack에 메시지를 보내주면 됩니다!

Github Action에 등록하기

PR이 등록되면 Slack에 메시지를 보내야해요. 따라서 PR 등록 시점을 인지할 수 있는 Github Action을 사용해요.

아래는 yml 파일이에요.

# PR 등록시, slack에 자동 알림
name: Notify PR to Slack

on:
  pull_request:
    types: [opened]   # PR 생성될 때만 실행

jobs:
  notify:
    runs-on: ubuntu-latest

    steps:
      - name: Send PR info to Slack
        run: |
          PR_TITLE="${{ github.event.pull_request.title }}"
          PR_URL="${{ github.event.pull_request.html_url }}"
          PR_CREATOR="${{ github.event.pull_request.user.login }}"
          
          curl -X POST \
            -H 'Content-type: application/json' \
            --data "{\"text\":\"${PR_CREATOR}님의 PR이 생성되었습니다.\n제목: ${PR_TITLE}\n링크: ${PR_URL}\"}" \
            https://hooks.slack.com/services/주소

yml 작성시에 사용되는 pull_request 변수들은 다음 문서를 참고하면 쉽게 커스텀 할 수 있어요.

https://docs.github.com/en/webhooks/webhook-events-and-payloads#pull_request

이제 위의 yml을 main branch에 등록시키면, 앞으로 생성되는 모든 PR에 대해서 Slack에 알림이 오게 돼요.

결과 확인


느낀점

최근 협업을 진행하면서 자동화에 많은 관심이 생겼습니다.

회의하랴, 코드 구현하랴… 안그래도 시간이 부족한데 이런 번거로운 일들까지 하려고 하니 잡다한 시간들이 낭비되는 것 같더라구요. 많이 귀찮기도 하고…

사실 전까지는 그냥 불편함을 감수하고 사용하면서 살았는데, 최근에 자동화에 꽂히게 되어서 일상이나 협업에서 불편했던 부분들을 하나씩 자동화 시켜나가려고 해요.

또 최근에 크게 불편함을 느꼈던 부분이 문서화 작업이에요. (귀찮음의 끝판왕이라고 생각합니다ㅎㅎ) 문서화 작업은 AI를 사용해서 자동화를 하여 시간을 많이 단축시키고 싶다는 생각을 전부터 했었는데, 다음번에는 문서화 작업을 AI를 활용하여 자동화를 해보아야겠습니다

profile
호기심 많은 개발자

0개의 댓글