이슈
- github과 slack을 slackbot으로 연동하는 경우 PR(Pull Request)에 대한 알림은 구독할 수 있지만 해당 PR에서 리뷰어가 approve한 경우 알림을 받을 수 없었다
해결
- github workflows를 설정해서 approve시 알림을 받을 수 있다
1. Slack Webhook URL 생성
- Slack 앱 설정에서 'Incoming Webhooks'을 검색하여 새로운 Webhook을 생성하고, 해당 채널을 선택하고 Webhook URL을 생성합니다.
- Slack에서 원하는 채널에 대한 Incoming Webhook URL을 생성합니다.
2. GitHub Repository에 Secret 추가
- 위 사진과 같이 해당 github 레포에서 Settings > Secrets and variables - Actions > New repository secret 을 클릭합니다
- 1.에서 생성한 Webhook URL을 등록합니다
3. GitHub Actions 워크플로우 생성
.github/workflows
에서 아래와 같이 워크플로우를 등록합니다
name: Slack Notification
on:
pull_request_review:
types:
- submitted
jobs:
slack_notification:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Notify on PR approval
if: github.event.review.state == 'approved'
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data '{
"text": "Pull Request Approved: <!channel> PR: '${{ github.event.pull_request.title }}' by ${{
github.event.pull_request.user.login }}\n${{ github.event.pull_request.html_url }}",
"username": "GitHub Actions"
}' $SLACK_WEBHOOK
참고
훌륭한 글 감사드립니다.