-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ALL] 작업 현황을 디스코드로 알림을 받기 위한 yml 파일 생성, 설정 (#109)
* chore: 작업 현황 디스코드 알림을 위한 yml 파일 생성 * chore: [ALL] issue, pr, review에도 디스코드 알림을 보낼 수 있는 설정 추가
- Loading branch information
Showing
3 changed files
with
264 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
name: 깃허브 이슈 생성 시, 디스코드 알림 | ||
|
||
on: | ||
issues: | ||
types: [opened, reopened] | ||
|
||
env: | ||
hwinkr: "@해리" | ||
Yoonkyoungme: "@빙봉" | ||
hw0603: "@페드로" | ||
ikjo39: "@다온" | ||
ehBeak: "@배키" | ||
seokmyungham: "@재즈" | ||
Largopie: "@낙타" | ||
seunghye218: "@마크" | ||
|
||
jobs: | ||
notify_issue: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: 전체 이슈가 등록되면 FE, BE 두 채널 모두 디스코드 알림을 보낸다. | ||
if: github.event.issue && contains(github.event.issue.title, '[ALL]') | ||
env: | ||
FE_DISCORD_WEBHOOK_URL: ${{ secrets.FE_DISCORD_WEBHOOK_URL }} | ||
BE_DISCORD_WEBHOOK_URL: ${{ secrets.BE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
LABELS=$(jq -r '.issue.labels | map(.name) | join(", ")' < $GITHUB_EVENT_PATH) | ||
ASSIGNEE_LINKS=$(jq -r '.issue.assignees | map("[\(.login)](https://github.com/\(.login))") | join(", ")' < $GITHUB_EVENT_PATH) | ||
ASSIGNEE_MENTIONS=$(jq -r '.issue.assignees | map(env[.login] // .login) | join(", ")' < $GITHUB_EVENT_PATH) | ||
ASSIGNEE_MENTION_LINKS=$(jq -r '.issue.assignees | map("[\((env[.login] // .login))](https://github.com/\(.login))") | join(", ")' < $GITHUB_EVENT_PATH) | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"🍀 **새로운 전체 이슈가 등록되었어요!** 🧚: ${{ github.event.issue.html_url }}\n📂 **제목**: ${{ github.event.issue.title }}\n🕺 **담당 크루**: ${ASSIGNEE_MENTION_LINKS}\n🗝️ **업무 키워드**: ${LABELS}\"}" \ | ||
$FE_DISCORD_WEBHOOK_URL | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"🍀 **새로운 전체 이슈가 등록되었어요!** 🧚: ${{ github.event.issue.html_url }}\n📂 **제목**: ${{ github.event.issue.title }}\n🕺 **담당 크루**: ${ASSIGNEE_MENTION_LINKS}\n🗝️ **업무 키워드**: ${LABELS}\"}" \ | ||
$BE_DISCORD_WEBHOOK_URL | ||
- name: 새로운 프론트엔드 이슈가 등록되면 프론트엔드 채널에 디스코드 알림을 보낸다. | ||
if: github.event.issue && contains(github.event.issue.title, '[FE]') | ||
env: | ||
FE_DISCORD_WEBHOOK_URL: ${{ secrets.FE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
LABELS=$(jq -r '.issue.labels | map(.name) | join(", ")' < $GITHUB_EVENT_PATH) | ||
ASSIGNEE_LINKS=$(jq -r '.issue.assignees | map("[\(.login)](https://github.com/\(.login))") | join(", ")' < $GITHUB_EVENT_PATH) | ||
ASSIGNEE_MENTIONS=$(jq -r '.issue.assignees | map(env[.login] // .login) | join(", ")' < $GITHUB_EVENT_PATH) | ||
ASSIGNEE_MENTION_LINKS=$(jq -r '.issue.assignees | map("[\((env[.login] // .login))](https://github.com/\(.login))") | join(", ")' < $GITHUB_EVENT_PATH) | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"🍀 **새로운 이슈가 등록되었어요!** 🧚: ${{ github.event.issue.html_url }}\n📂 **제목**: ${{ github.event.issue.title }}\n🕺 **담당 크루**: ${ASSIGNEE_MENTION_LINKS}\n🗝️ **업무 키워드**: ${LABELS}\"}" \ | ||
$FE_DISCORD_WEBHOOK_URL | ||
- name: 새로운 백엔드 이슈가 등록되면 백엔드 채널에 디스코드 알림을 보낸다. | ||
if: github.event.issue && contains(github.event.issue.title, '[BE]') | ||
env: | ||
BE_DISCORD_WEBHOOK_URL: ${{ secrets.BE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
LABELS=$(jq -r '.issue.labels | map(.name) | join(", ")' < $GITHUB_EVENT_PATH) | ||
ASSIGNEE_LINKS=$(jq -r '.issue.assignees | map("[\(.login)](https://github.com/\(.login))") | join(", ")' < $GITHUB_EVENT_PATH) | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"🍀 **새로운 이슈가 등록되었어요!** 🧚: ${{ github.event.issue.html_url }}\n📂 **제목**: ${{ github.event.issue.title }}\n🕺 **담당 크루**: ${ASSIGNEE_LINKS}\n🗝️ **업무 키워드**: ${LABELS}\"}" \ | ||
$BE_DISCORD_WEBHOOK_URL |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
name: 깃허브 PR 생성 시, 디스코드 알림 | ||
|
||
on: | ||
pull_request: | ||
types: [opened, reopened, closed] | ||
|
||
env: | ||
hwinkr: "@해리" | ||
Yoonkyoungme: "@빙봉" | ||
hw0603: "@페드로" | ||
ikjo39: "@다온" | ||
ehBeak: "@배키" | ||
seokmyungham: "@재즈" | ||
Largopie: "@낙타" | ||
seunghye218: "@마크" | ||
|
||
jobs: | ||
notify_pr: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: 모든 팀원이 확인해야 하는 PR이 등록되면 FE, BE 두 채널 모두 디스코드 알림을 보낸다. | ||
if: github.event_name == 'pull_request' && github.event.action == 'opened' && contains(github.event.pull_request.title, '[ALL]') | ||
env: | ||
FE_DISCORD_WEBHOOK_URL: ${{ secrets.FE_DISCORD_WEBHOOK_URL }} | ||
BE_DISCORD_WEBHOOK_URL: ${{ secrets.BE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
ASSIGNEES=$(jq -r '.pull_request.assignees | map("[\(.login)](https://github.com/\(.login))") | join(", ")' < $GITHUB_EVENT_PATH) | ||
LABELS=$(jq -r '.pull_request.labels | map(.name) | join(", ")' < $GITHUB_EVENT_PATH) | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"🚀 **새로운 전체 PR이 등록되었어요!** 리뷰하러 가볼까요~?\n\n🔗 [PR 링크](${{ github.event.pull_request.html_url }})\n📄 **제목**: ${{ github.event.pull_request.title }}\n🕺 **담당 크루**: ${ASSIGNEES}\n🔑 **업무 키워드**: ${LABELS}\"}" \ | ||
$FE_DISCORD_WEBHOOK_URL | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"🚀 **새로운 전체 PR이 등록되었어요!** 리뷰하러 가볼까요~?\n\n🔗 [PR 링크](${{ github.event.pull_request.html_url }})\n📄 **제목**: ${{ github.event.pull_request.title }}\n🕺 **담당 크루**: ${ASSIGNEES}\n🔑 **업무 키워드**: ${LABELS}\"}" \ | ||
$BE_DISCORD_WEBHOOK_URL | ||
- name: 새로운 프론트엔드 PR이 등록되면 프론트엔드 채널에 디스코드 알림을 보낸다. | ||
if: github.event_name == 'pull_request' && github.event.action == 'opened' && contains(github.event.pull_request.title, '[FE]') | ||
env: | ||
FE_DISCORD_WEBHOOK_URL: ${{ secrets.FE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
ASSIGNEES=$(jq -r '.pull_request.assignees | map("[\(.login)](https://github.com/\(.login))") | join(", ")' < $GITHUB_EVENT_PATH) | ||
LABELS=$(jq -r '.pull_request.labels | map(.name) | join(", ")' < $GITHUB_EVENT_PATH) | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"🚀 **새로운 프론트엔드 PR이 등록되었어요!** 리뷰하러 가볼까요~?\n\n🔗 [PR 링크](${{ github.event.pull_request.html_url }})\n📄 **제목**: ${{ github.event.pull_request.title }}\n🕺 **담당 크루**: ${ASSIGNEES}\n🔑 **업무 키워드**: ${LABELS}\"}" \ | ||
$FE_DISCORD_WEBHOOK_URL | ||
- name: 새로운 백엔드 PR이 등록되면 프론트엔드 채널에 디스코드 알림을 보낸다. | ||
if: github.event_name == 'pull_request' && github.event.action == 'opened' && contains(github.event.pull_request.title, '[BE]') | ||
env: | ||
BE_DISCORD_WEBHOOK_URL: ${{ secrets.BE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
ASSIGNEES=$(jq -r '.pull_request.assignees | map("[\(.login)](https://github.com/\(.login))") | join(", ")' < $GITHUB_EVENT_PATH) | ||
LABELS=$(jq -r '.pull_request.labels | map(.name) | join(", ")' < $GITHUB_EVENT_PATH) | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"🚀 **새로운 백엔드 PR이 등록되었어요!** 리뷰하러 가볼까요~?\n\n🔗 [PR 링크](${{ github.event.pull_request.html_url }})\n📄 **제목**: ${{ github.event.pull_request.title }}\n🕺 **담당 크루**: ${ASSIGNEES}\n🔑 **업무 키워드**: ${LABELS}\"}" \ | ||
$BE_DISCORD_WEBHOOK_URL | ||
notify_merge: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: PR이 머지되면 FE, BE 두 채널 모두 디스코드 알림을 보낸다. | ||
if: github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == true | ||
env: | ||
FE_DISCORD_WEBHOOK_URL: ${{ secrets.FE_DISCORD_WEBHOOK_URL }} | ||
BE_DISCORD_WEBHOOK_URL: ${{ secrets.BE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
ASSIGNEES=$(jq -r '.pull_request.assignees | map("[\(.login)](https://github.com/\(.login))") | join(", ")' < $GITHUB_EVENT_PATH) | ||
LABELS=$(jq -r '.pull_request.labels | map(.name) | join(", ")' < $GITHUB_EVENT_PATH) | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"✅ **PR이 머지되었어요!** 축하합니다~ 👏\n\n🔗 [PR 링크](${{ github.event.pull_request.html_url }})\n📄 **제목**: ${{ github.event.pull_request.title }}\n📜 🕺 **담당 크루**: ${ASSIGNEES}\n🔑 **업무 키워드**: ${LABELS}\"}" \ | ||
$FE_DISCORD_WEBHOOK_URL | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"✅ **PR이 머지되었어요!** 축하합니다~ 👏\n\n🔗 [PR 링크](${{ github.event.pull_request.html_url }})\n📄 **제목**: ${{ github.event.pull_request.title }}\n📜 🕺 **담당 크루**: ${ASSIGNEES}\n🔑 **업무 키워드**: ${LABELS}\"}" \ | ||
$BE_DISCORD_WEBHOOK_URL |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
name: 리뷰 생성 시, 디스코드 알림 | ||
|
||
on: | ||
pull_request_review: | ||
types: [submitted] | ||
issue_comment: | ||
types: [created] | ||
|
||
env: | ||
hwinkr: "@해리" | ||
Yoonkyoungme: "@빙봉" | ||
hw0603: "@페드로" | ||
ikjo39: "@다온" | ||
ehBeak: "@배키" | ||
seokmyungham: "@재즈" | ||
Largopie: "@낙타" | ||
seunghye218: "@마크" | ||
|
||
jobs: | ||
notify_review: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: 모든 팀원이 확인해야 하는 PR에 리뷰가 등록되면 FE, BE 두 채널 모두 디스코드 알림을 보낸다. | ||
if: github.event_name == 'pull_request_review' && contains(github.event.pull_request.title, '[ALL]') | ||
env: | ||
FE_DISCORD_WEBHOOK_URL: ${{ secrets.FE_DISCORD_WEBHOOK_URL }} | ||
BE_DISCORD_WEBHOOK_URL: ${{ secrets.BE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
REVIEWER=$(jq -r '.review.user.login' < $GITHUB_EVENT_PATH) | ||
REVIEWER_MENTION=$(printenv $REVIEWER) | ||
if [ -z "$REVIEWER_MENTION" ]; then | ||
REVIEWER_MENTION=$REVIEWER | ||
fi | ||
REVIEWER_LINK="[${REVIEWER_MENTION}](https://github.com/${REVIEWER})" | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"💬 ${REVIEWER_LINK}님이 새로운 리뷰를 남겼어요! 리뷰를 반영해 주세요.\n\n🔗 [PR 링크](${{ github.event.pull_request.html_url }})\n📄 **제목**: ${{ github.event.pull_request.title }}\"}" \ | ||
$FE_DISCORD_WEBHOOK_URL | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"💬 ${REVIEWER_LINK}님이 새로운 리뷰를 남겼어요! 리뷰를 반영해 주세요.\n\n🔗 [PR 링크](${{ github.event.pull_request.html_url }})\n📄 **제목**: ${{ github.event.pull_request.title }}\"}" \ | ||
$BE_DISCORD_WEBHOOK_URL | ||
- name: 새로운 프론트엔드 리뷰가 등록되면 프론트엔드 채널에 디스코드 알림을 보낸다. | ||
if: github.event_name == 'pull_request_review' && contains(github.event.pull_request.title, '[FE]') | ||
env: | ||
FE_DISCORD_WEBHOOK_URL: ${{ secrets.FE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
REVIEWER=$(jq -r '.review.user.login' < $GITHUB_EVENT_PATH) | ||
REVIEWER_MENTION=$(printenv $REVIEWER) | ||
if [ -z "$REVIEWER_MENTION" ]; then | ||
REVIEWER_MENTION=$REVIEWER | ||
fi | ||
REVIEWER_LINK="[${REVIEWER_MENTION}](https://github.com/${REVIEWER})" | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"💬 ${REVIEWER_LINK}님이 새로운 리뷰를 남겼어요! 리뷰를 반영해 주세요.\n\n🔗 [PR 링크](${{ github.event.pull_request.html_url }})\n📄 **제목**: ${{ github.event.pull_request.title }}\"}" \ | ||
$FE_DISCORD_WEBHOOK_URL | ||
- name: 새로운 백엔드 리뷰가 등록되면 백엔드 채널에 디스코드 알림을 보낸다. | ||
if: github.event_name == 'pull_request_review' && contains(github.event.pull_request.title, '[BE]') | ||
env: | ||
BE_DISCORD_WEBHOOK_URL: ${{ secrets.BE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
REVIEWER=$(jq -r '.review.user.login' < $GITHUB_EVENT_PATH) | ||
REVIEWER_MENTION=$(printenv $REVIEWER) | ||
if [ -z "$REVIEWER_MENTION" ]; then | ||
REVIEWER_MENTION=$REVIEWER | ||
fi | ||
REVIEWER_LINK="[${REVIEWER_MENTION}](https://github.com/${REVIEWER})" | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"💬 ${REVIEWER_LINK}님이 새로운 리뷰를 남겼어요! 리뷰를 반영해 주세요.\n\n🔗 [PR 링크](${{ github.event.pull_request.html_url }})\n📄 **제목**: ${{ github.event.pull_request.title }}\"}" \ | ||
$BE_DISCORD_WEBHOOK_URL | ||
notify_comment: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: 모든 팀원이 확인해야 하는 PR에 코멘트가 등록되면 FE, BE 두 채널 모두 디스코드 알림을 보낸다. | ||
if: github.event.issue.pull_request && contains(github.event.issue.title, '[ALL]') | ||
env: | ||
FE_DISCORD_WEBHOOK_URL: ${{ secrets.FE_DISCORD_WEBHOOK_URL }} | ||
BE_DISCORD_WEBHOOK_URL: ${{ secrets.BE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
COMMENTER=$(jq -r '.comment.user.login' < $GITHUB_EVENT_PATH) | ||
COMMENTER_MENTION=$(printenv $COMMENTER) | ||
if [ -z "$COMMENTER_MENTION" ]; then | ||
COMMENTER_MENTION=$COMMENTER | ||
fi | ||
COMMENTER_LINK="[${COMMENTER_MENTION}](https://github.com/${COMMENTER})" | ||
COMMENT=$(jq -r '.comment.body' < $GITHUB_EVENT_PATH) | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"💬 ${COMMENTER_LINK}님이 새로운 코멘트를 남겼어요!\n\n🔗 [PR 링크](${{ github.event.issue.pull_request.html_url }})\n📄 **제목**: ${{ github.event.issue.title }}\n🗣️ **코멘트 내용**: ${COMMENT}\"}" \ | ||
$FE_DISCORD_WEBHOOK_URL | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"💬 ${COMMENTER_LINK}님이 새로운 코멘트를 남겼어요!\n\n🔗 [PR 링크](${{ github.event.issue.pull_request.html_url }})\n📄 **제목**: ${{ github.event.issue.title }}\n🗣️ **코멘트 내용**: ${COMMENT}\"}" \ | ||
$BE_DISCORD_WEBHOOK_URL | ||
- name: 프론트엔드 PR에 코멘트가 등록되면 디스코드 프론트엔드 채널에 알림을 보낸다. | ||
if: github.event.issue.pull_request && contains(github.event.issue.title, '[FE]') | ||
env: | ||
FE_DISCORD_WEBHOOK_URL: ${{ secrets.FE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
COMMENTER=$(jq -r '.comment.user.login' < $GITHUB_EVENT_PATH) | ||
COMMENTER_MENTION=$(printenv $COMMENTER) | ||
if [ -z "$COMMENTER_MENTION" ]; then | ||
COMMENTER_MENTION=$COMMENTER | ||
fi | ||
COMMENTER_LINK="[${COMMENTER_MENTION}](https://github.com/${COMMENTER})" | ||
COMMENT=$(jq -r '.comment.body' < $GITHUB_EVENT_PATH) | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"💬 ${COMMENTER_LINK}님이 새로운 코멘트를 남겼어요!\n\n🔗 [PR 링크](${{ github.event.issue.pull_request.html_url }})\n📄 **제목**: ${{ github.event.issue.title }}\n🗣️ **코멘트 내용**: ${COMMENT}\"}" \ | ||
$FE_DISCORD_WEBHOOK_URL | ||
- name: 백엔드 PR에 코멘트가 등록되면 디스코드 백엔드 채널에 알림을 보낸다. | ||
if: github.event.issue.pull_request && contains(github.event.issue.title, '[BE]') | ||
env: | ||
BE_DISCORD_WEBHOOK_URL: ${{ secrets.BE_DISCORD_WEBHOOK_URL }} | ||
run: | | ||
COMMENTER=$(jq -r '.comment.user.login' < $GITHUB_EVENT_PATH) | ||
COMMENTER_MENTION=$(printenv $COMMENTER) | ||
if [ -z "$COMMENTER_MENTION" ]; then | ||
COMMENTER_MENTION=$COMMENTER | ||
fi | ||
COMMENTER_LINK="[${COMMENTER_MENTION}](https://github.com/${COMMENTER})" | ||
COMMENT=$(jq -r '.comment.body' < $GITHUB_EVENT_PATH) | ||
curl -H "Content-Type: application/json" \ | ||
-d "{\"content\": \"💬 ${COMMENTER_LINK}님이 새로운 코멘트를 남겼어요!\n\n🔗 [PR 링크](${{ github.event.issue.pull_request.html_url }})\n📄 **제목**: ${{ github.event.issue.title }}\n🗣️ **코멘트 내용**: ${COMMENT}\"}" \ | ||
$BE_DISCORD_WEBHOOK_URL |