Skip to content

Log validator version on startup #57

Log validator version on startup

Log validator version on startup #57

Workflow file for this run

name: Notify Reviewers on Slack
on:
pull_request:
types: [review_requested]
jobs:
notify:
if: github.event.action == 'review_requested'
runs-on: ubuntu-latest
steps:
- name: Format reviewer list
id: reviewers
run: |
echo '${{ toJson(github.event.pull_request.requested_reviewers) }}' > reviewers.json
# Check if the reviewers data exists and extract it
if [ -s reviewers.json ] && [ "$(cat reviewers.json)" != "null" ] && [ "$(cat reviewers.json)" != "[]" ]; then
# Process the individual reviewers - handle both array format and single object format
reviewers=$(cat reviewers.json | jq -r 'if type=="array" then .[].login else .login end' 2>/dev/null | grep -v '^$' | paste -sd ", " -)
if [ -z "$reviewers" ]; then
# Fallback - try to get reviewer login directly if the structure is unexpected
reviewers=$(cat reviewers.json | grep -o '"login":"[^"]*"' | sed 's/"login":"//g' | sed 's/"//g' | paste -sd ", " -)
fi
else
reviewers="No reviewers found"
fi
echo "Extracted reviewers: $reviewers"
echo "reviewers=$reviewers" >> $GITHUB_OUTPUT
- name: Get requested reviewer from event payload
id: single_reviewer
if: github.event.requested_reviewer != null
run: |
echo "reviewer=${{ github.event.requested_reviewer.login }}" >> $GITHUB_OUTPUT
- name: Send Slack Notification
uses: slackapi/[email protected]
with:
payload: |
{
"text": "👀 *${{ github.event.pull_request.user.login }}* has requested reviews from *${{ steps.single_reviewer.outputs.reviewer || steps.reviewers.outputs.reviewers }}* on PR: <${{ github.event.pull_request.html_url }}|${{ github.event.pull_request.title }}>.",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "👀 *${{ github.event.pull_request.user.login }}* has requested reviews from *${{ steps.single_reviewer.outputs.reviewer || steps.reviewers.outputs.reviewers }}* on PR: <${{ github.event.pull_request.html_url }}|${{ github.event.pull_request.title }}>."
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}