Dependabot-PRs, auf deinem Handy
Wenn Dependabot einen Pull Request öffnet, sendet dir Zenhook den Titel, das Repository und einen Button, der den PR öffnet. Keine GitHub App und kein Schreibzugriff auf das Repository.
Auslöser
Neuer Dependabot-PR
Ziel
Ein Zenhook-Channel
Aktion
Tippe auf „PR ansehen“
1. Channel erstellen
Erstelle einen Channel namens dependabot und kopiere dann seine vollständige Webhook-URL aus den Channel-Einstellungen.
2. Channel testen
Ersetze den Platzhalter und führe das einmal aus. Der Beispiel-Alert sollte sofort auf deinem Handy ankommen.
curl -X POST "YOUR_ZENHOOK_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"title": "Bump lodash from 4.17.20 to 4.17.21",
"level": "info",
"emoji": "package",
"source": "Dependabot",
"message": "Abhängigkeits-Update vorgeschlagen in acme/api",
"linkUrl": "https://github.com/acme/api/pull/42",
"linkText": "PR ansehen"
}'3. Ein Dependabot-Secret hinzufügen
Öffne in GitHub Settings → Secrets and variables → Dependabot. Erstelle ein Repository-Secret namens ZENHOOK_WEBHOOK_URL und füge die vollständige Webhook-URL des Channels ein.
Nutze ein Dependabot-Secret, kein normales Actions-Secret. GitHub gibt Dependabot-Secrets nur an Workflows weiter, die Dependabot gestartet hat.
4. Workflow kopieren
Speichere das als .github/workflows/zenhook-dependabot.yml auf deinem Standard-Branch.
name: Zenhook - Dependabot-Alerts
on:
pull_request:
types: [opened, reopened]
permissions:
contents: read
jobs:
notify:
if: github.event.pull_request.user.login == 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
- name: Pull Request an Zenhook senden
env:
ZENHOOK_WEBHOOK_URL: ${{ secrets.ZENHOOK_WEBHOOK_URL }}
PR_TITLE: ${{ github.event.pull_request.title }}
PR_URL: ${{ github.event.pull_request.html_url }}
PR_NUMBER: ${{ github.event.pull_request.number }}
REPOSITORY: ${{ github.repository }}
run: |
jq -n \
--arg title "$PR_TITLE" \
--arg url "$PR_URL" \
--arg number "$PR_NUMBER" \
--arg repository "$REPOSITORY" \
'{
title: $title,
level: "info",
emoji: "package",
source: "Dependabot",
message: ("Abhängigkeits-Update vorgeschlagen in " + $repository),
fields: [
{ label: "Repository", value: $repository },
{ label: "Pull request", value: ("#" + $number) }
],
linkUrl: $url,
linkText: "PR ansehen"
}' | curl --fail-with-body --retry 2 \
-X POST "$ZENHOOK_WEBHOOK_URL" \
-H "Content-Type: application/json" \
--data-binary @-Der Workflow checkt keinen Code aus dem Pull Request aus und führt ihn nicht aus. Sein GitHub-Token darf nur lesen; er sendet nur die PR-Metadaten, die schon im Ereignis stehen, an deine private Zenhook-URL.
Ein Repository oder mehrere?
- Eines: Füge das Secret und den Workflow zu diesem Repository hinzu.
- Mehrere: Erstelle ein Dependabot-Secret auf Organisationsebene, gib es nur für die ausgewählten Repositories frei und füge jedem dieselbe Workflow-Datei hinzu.
Dieses Rezept sendet einen Alert und einen Link. Es genehmigt und merged den PR nicht. Siehe die GitHub-Dokumentation zuDependabot-Workflows undDependabot-Secrets.