개요
지난 깃허브 커밋 시 구글챗에 알림 전송하는 기능을 포스팅했는데
[Github Actions] 깃허브 커밋 시 구글챗에 알림 전송하기
개요 회사에서 Git 을 쓰고있는데 다른 팀원이 특정 브런치에 푸시하거나 PR 생성될 경우 메일이 오기는 하는데 메일은 확인을 잘 안 하기도 하고, 보기가 불편해서 회사에서 메신저로 사용중인 "
lisc.tistory.com
이번에는 Pull Request 생성 시 알림 전송하는 방법에 대해서 얘기하겠다.
구글챗 채팅방에 웹훅 추가, 깃허브 리포지토리에 웹훅 URL 시크릿 키 설정
이 두가지는 위 포스팅에서 이미 진행했고, 되어있는 걸로 가정하고 설명하겠다.
Actions 탭 선택을 하면 다양한 템플릿이 나오는데 [set up a workflow yourself] 를 선택한다.

yml 파일명을 설정하고, 코드 부분에는 아래 코드를 복사 붙여넣기 한 후 [Commit changes] 버튼을 클릭한다.
해당 브랜치에 Pull Request 가 [생성, 재생성, 동기화, 리뷰준비완료] 의 상태가 되면 구글챗 채팅방에 알림이 전송되는 형식이다.
알림 메시지 형식은 다양하게 정할 수 있겠으나, 나는 작성자와 PR 제목, PR 내용, 발생 시각을 전송하도록 했다.
pr-google-chat-alert.yml
name: Deploy ## 21
# 명시된 브랜치 목록들을 base branch로 하는 PR이 [생성, 재생성, head 브랜치 동기화, PR 리뷰 준비 완료] 이벤트 발생 시 워크플로우 동작
on:
pull_request:
branches:
- main
- develop
- feature/*
- release/*
- hotfix/*
types: [opened, reopened, synchronize, ready_for_review] # 해당 타입들은 github webhook payload 타입 목록을 따릅니다
jobs:
deploy:
runs-on: ubuntu-latest # 워크플로우가 실행될 GitHub Actions 러너의 OS를 지정합니다.
steps:
- name: Notify Google Chat on Pull Request
run: |
PR_TITLE="${{ github.event.pull_request.title }}"
PR_BODY="${{ github.event.pull_request.body }}"
PR_USER_ID="${{ github.event.pull_request.user.id }}"
PR_USER_LOGIN="${{ github.event.pull_request.user.login }}"
# GitHub Actions의 시간은 UTC로 제공되므로, Asia/Seoul로 변환
CURRENT_TIME_KST=$(TZ="Asia/Seoul" date '+%Y-%m-%d %H:%M:%S')
curl -X POST \
-H 'Content-Type: application/json' \
-d "{\"text\": \"🐬 [Platform-Monitoring]\n\n${PR_USER_LOGIN} 님이 Pull Request 를 생성하였습니다.\n\n- PR 제목: ${PR_TITLE}\n- PR 내용: ${PR_BODY}\n- 시각: ${CURRENT_TIME_KST}\"}" \
"${{ secrets.GOOGLE_CHAT_WEBHOOK_URL }}"
이제 실제로 테스트를 해보자.
develop 브랜치를 하나 생성 후, 간단하게 README.md 파일을 수정 후 커밋을 했다.
알림이 잘 오는 것을 확인할 수 있다.
'Infra > CI & CD' 카테고리의 다른 글
[Github Actions] 깃허브 커밋 시 구글챗에 알림 전송하기 (1) | 2024.01.17 |
---|