Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Doeunnkimm committed Jun 25, 2024
1 parent be9cca3 commit e308ab0
Showing 1 changed file with 94 additions and 0 deletions.
94 changes: 94 additions & 0 deletions .github/workflows/slack-notification.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Slack Notification

on:
pull_request:
types: [opened, ready_for_review]
issue_comment:
types: [created, edited]

jobs:
send_slack_notification:
name: Send Slack Notification
runs-on: ubuntu-latest
steps:
- name: Determine color for PR creation
id: determine_color_pr
if: github.event_name == 'pull_request' && github.event.pull_request.draft == false
run: |
if [ "${{ job.status }}" == "success" ]; then
echo "color=good" >> $GITHUB_ENV
elif [ "${{ job.status }}" == "failure" ]; then
echo "color=danger" >> $GITHUB_ENV
else
echo "color=warning" >> $GITHUB_ENV
fi
- name: Send Slack Notification for PR creation
if: github.event_name == 'pull_request' && github.event.pull_request.draft == false
uses: 8398a7/action-slack@v3
with:
status: custom
fields: author,pullRequest
custom_payload: |
{
"attachments": [{
"color": "${{ env.color }}",
"text": "Actor: ${{ github.actor }}\nPR: ${{ github.event.pull_request.html_url }}"
}]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

- name: Extract mentions from comment body
id: extract_mentions_comment
if: github.event_name == 'issue_comment'
run: |
mentions=$(echo "${{ github.event.comment.body }}" | grep -o '@[[:alnum:]_-]\+' | paste -sd ' ' -)
echo "mentions=$mentions" >> $GITHUB_ENV
- name: Map GitHub mentions to Slack user IDs
id: map_to_slack_ids
if: github.event_name == 'issue_comment'
run: |
declare -A slack_ids
slack_ids=(["@Doeunnkimm"]="U07600UQG3T" ["@semnil5202"]="U075KR29RGR" ["@Andrevile"]="U07545VMS21" ["@LeeJeongHooo"]="U075C1A16LT")
mentions="${{ env.mentions }}"
slack_mentions=""
for mention in $mentions; do
if [[ -n "${slack_ids[$mention]}" ]]; then
slack_mentions="$slack_mentions <@${slack_ids[$mention]}>"
fi
done
echo "slack_mentions=$slack_mentions" >> $GITHUB_ENV
- name: Determine color for comment mention
id: determine_color_comment
if: github.event_name == 'issue_comment' && env.slack_mentions != ''
run: |
if [ "${{ job.status }}" == "success" ]; then
echo "color=good" >> $GITHUB_ENV
elif [ "${{ job.status }}" == "failure" ]; then
echo "color=danger" >> $GITHUB_ENV
else
echo "color=warning" >> $GITHUB_ENV
fi
- name: Send Slack Notification for comment if team members mentioned
if: github.event_name == 'issue_comment' && env.slack_mentions != ''
uses: 8398a7/action-slack@v3
with:
status: custom
fields: pullRequest
custom_payload: |
{
"attachments": [{
"color": "${{ env.color }}",
"text": "${{ github.event.pull_request.html_url }} ์—์„œ ${{ env.slack_mentions }} ๋‹˜์„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.\n๊ผญ ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ€์„œ ํ™•์ธํ•˜๊ธฐ!\n๋ฉ”์‹œ์ง€: ${{ github.event.comment.body }}"
}]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

- name: Debug mentions
if: github.event_name == 'issue_comment' && env.slack_mentions == ''
run: echo "No team members mentioned in the comment."

0 comments on commit e308ab0

Please sign in to comment.