mirror of
https://github.com/wgtunnel/android.git
synced 2026-07-03 14:07:49 +02:00
74 lines
4.6 KiB
YAML
74 lines
4.6 KiB
YAML
name: notifications
|
|
|
|
on:
|
|
issues:
|
|
types: [opened, closed]
|
|
release:
|
|
types: [published]
|
|
|
|
jobs:
|
|
notify:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Send to Telegram
|
|
run: |
|
|
if [[ "${{ github.event_name }}" == "issues" && "${{ github.event.action }}" == "opened" ]]; then
|
|
TITLE="${{ github.event.issue.title }}"
|
|
NUMBER=${{ github.event.issue.number }}
|
|
USER="${{ github.event.issue.user.login }}"
|
|
BODY="${{ github.event.issue.body || 'No body provided' }}"
|
|
BODY_TRUNC="${BODY:0:200}" # Truncate to avoid spam
|
|
URL="${{ github.event.issue.html_url }}"
|
|
TEXT=$(echo -e "🆕 New Issue #$NUMBER: *$TITLE* by $USER\n\n$BODY_TRUNC\n\n[View Issue]($URL)")
|
|
elif [[ "${{ github.event_name }}" == "issues" && "${{ github.event.action }}" == "closed" ]]; then
|
|
TITLE="${{ github.event.issue.title }}"
|
|
NUMBER=${{ github.event.issue.number }}
|
|
USER="${{ github.event.issue.user.login }}"
|
|
URL="${{ github.event.issue.html_url }}"
|
|
TEXT=$(echo -e "✅ Issue Closed #$NUMBER: *$TITLE* by $USER\n\n[View Issue]($URL)")
|
|
elif [[ "${{ github.event_name }}" == "release" && "${{ github.event.action }}" == "published" ]]; then
|
|
NAME="${{ github.event.release.name }}"
|
|
TAG="${{ github.event.release.tag_name }}"
|
|
BODY="${{ github.event.release.body || 'No notes provided' }}"
|
|
BODY_TRUNC="${BODY:0:200}" # Truncate to avoid spam
|
|
URL="${{ github.event.release.html_url }}"
|
|
TEXT=$(echo -e "🚀 New Release *$NAME* ($TAG)\n\n$BODY_TRUNC\n\n[View Release]($URL)")
|
|
fi
|
|
|
|
curl -s -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_TOKEN }}/sendMessage" \
|
|
-d chat_id="${{ vars.TELEGRAM_CHAT_ID }}" \
|
|
${{ vars.TELEGRAM_THREAD_ID && format('-d message_thread_id="{0}"', vars.TELEGRAM_THREAD_ID) || '' }} \
|
|
-d parse_mode="Markdown" \
|
|
--data-urlencode "text=$TEXT"
|
|
|
|
- name: Send to Matrix
|
|
run: |
|
|
PLAIN_MESSAGE=""
|
|
HTML_MESSAGE=""
|
|
if [[ "${{ github.event_name }}" == "issues" && "${{ github.event.action }}" == "opened" ]]; then
|
|
PLAIN_MESSAGE=$(echo -e "🆕 New Issue #${{ github.event.issue.number }}: ${{ github.event.issue.title }} by ${{ github.event.issue.user.login }}\n\n${{ github.event.issue.body || 'No body provided' }}\n\nView Issue: ${{ github.event.issue.html_url }}")
|
|
HTML_MESSAGE=$(echo -e "<p>🆕 New Issue #${{ github.event.issue.number }}: <strong>${{ github.event.issue.title }}</strong> by ${{ github.event.issue.user.login }}</p><p>${{ github.event.issue.body || 'No body provided' }}</p><p><a href=\"${{ github.event.issue.html_url }}\">View Issue</a></p>")
|
|
elif [[ "${{ github.event_name }}" == "issues" && "${{ github.event.action }}" == "closed" ]]; then
|
|
PLAIN_MESSAGE=$(echo -e "✅ Issue Closed #${{ github.event.issue.number }}: ${{ github.event.issue.title }} by ${{ github.event.issue.user.login }}\n\nView Issue: ${{ github.event.issue.html_url }}")
|
|
HTML_MESSAGE=$(echo -e "<p>✅ Issue Closed #${{ github.event.issue.number }}: <strong>${{ github.event.issue.title }}</strong> by ${{ github.event.issue.user.login }}</p><p><a href=\"${{ github.event.issue.html_url }}\">View Issue</a></p>")
|
|
elif [[ "${{ github.event_name }}" == "release" && "${{ github.event.action }}" == "published" ]]; then
|
|
PLAIN_MESSAGE=$(echo -e "🚀 New Release ${{ github.event.release.name }} (${{ github.event.release.tag_name }})\n\n${{ github.event.release.body || 'No notes provided' }}\n\nView Release: ${{ github.event.release.html_url }}")
|
|
HTML_MESSAGE=$(echo -e "<p>🚀 New Release <strong>${{ github.event.release.name }}</strong> (${{ github.event.release.tag_name }})</p><p>${{ github.event.release.body || 'No notes provided' }}</p><p><a href=\"${{ github.event.release.html_url }}\">View Release</a></p>")
|
|
fi
|
|
|
|
PLAIN_MESSAGE="${PLAIN_MESSAGE:0:220}"
|
|
|
|
PAYLOAD=$(jq -n --arg body "$PLAIN_MESSAGE" --arg formatted "$HTML_MESSAGE" '{
|
|
"msgtype": "m.text",
|
|
"body": $body,
|
|
"format": "org.matrix.custom.html",
|
|
"formatted_body": $formatted
|
|
}')
|
|
|
|
TXN_ID="${{ github.run_id }}-${{ github.run_attempt }}"
|
|
|
|
curl -s -X PUT "https://${{ vars.MATRIX_HOMESERVER }}/_matrix/client/v3/rooms/${{ vars.MATRIX_ROOM_ID }}/send/m.room.message/$TXN_ID" \
|
|
-H "Authorization: Bearer ${{ secrets.MATRIX_ACCESS_TOKEN }}" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$PAYLOAD"
|