mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-03-13 08:31:01 +01:00
57 lines
2.0 KiB
YAML
57 lines
2.0 KiB
YAML
---
|
|
name: Issue add-on submitter ping
|
|
|
|
on:
|
|
issues:
|
|
types: [opened, reopened]
|
|
|
|
permissions:
|
|
issues: write
|
|
contents: read
|
|
|
|
jobs:
|
|
ping_submitter:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Ping mapped submitter when add-on is mentioned
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
ISSUE_TITLE: ${{ github.event.issue.title }}
|
|
ISSUE_BODY: ${{ github.event.issue.body }}
|
|
ISSUE_NUMBER: ${{ github.event.issue.number }}
|
|
REPO: ${{ github.repository }}
|
|
run: |
|
|
set -euo pipefail
|
|
|
|
TEXT="${ISSUE_TITLE} ${ISSUE_BODY}"
|
|
TEXT_LOWER="$(printf '%s' "$TEXT" | tr '[:upper:]' '[:lower:]')"
|
|
|
|
while IFS= read -r addon; do
|
|
[ -z "$addon" ] && continue
|
|
|
|
if [[ "$TEXT_LOWER" == *"$addon"* ]]; then
|
|
user="$(jq -r --arg addon "$addon" '.[$addon]' .github/addon_submitters.json)"
|
|
if [ -z "$user" ] || [ "$user" = "null" ]; then
|
|
continue
|
|
fi
|
|
|
|
marker="<!-- addon-submitter-ping:${addon} -->"
|
|
comments_url="https://api.github.com/repos/${REPO}/issues/${ISSUE_NUMBER}/comments"
|
|
|
|
export GH_TOKEN="${GITHUB_TOKEN}"
|
|
existing="$(gh issue view "$ISSUE_NUMBER" --repo "$REPO" --json comments --jq '[.comments[] | select(.body | contains($marker))] | length')"
|
|
|
|
if [ "$existing" -eq 0 ]; then
|
|
body=$(jq -cn --arg marker "$marker" --arg addon "$addon" --arg user "$user" '{body: ($marker + "\nHeads up @" + $user + ": this issue appears to mention `" + $addon + "`.")}')
|
|
curl -sS -X POST \
|
|
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
|
-H 'Accept: application/vnd.github+json' \
|
|
"$comments_url" \
|
|
-d "$body" > /dev/null
|
|
fi
|
|
fi
|
|
done < <(jq -r 'keys[]' .github/addon_submitters.json)
|