Les PR Dependabot, sur votre téléphone
Quand Dependabot ouvre une pull request, Zenhook vous envoie son titre, son dépôt et un bouton qui ouvre la PR. Aucune GitHub App et aucun droit d’écriture sur le dépôt.
Déclencheur
Nouvelle PR Dependabot
Destination
Un canal Zenhook
Action
Toucher « Voir la PR »
1. Créez un canal
Créez un canal nommé dependabot, puis copiez son URL webhook complète depuis les paramètres du canal.
2. Testez le canal
Remplacez le placeholder et exécutez cette commande une fois. L’alerte d’exemple doit arriver immédiatement sur votre téléphone.
curl -X POST "VOTRE_URL_WEBHOOK_ZENHOOK" \
-H "Content-Type: application/json" \
-d '{
"title": "Bump lodash from 4.17.20 to 4.17.21",
"level": "info",
"emoji": "package",
"source": "Dependabot",
"message": "Mise à jour proposée dans acme/api",
"linkUrl": "https://github.com/acme/api/pull/42",
"linkText": "Voir la PR"
}'3. Ajoutez un secret Dependabot
Dans GitHub, ouvrez Settings → Secrets and variables → Dependabot. Créez un secret de dépôt nommé ZENHOOK_WEBHOOK_URL et collez l’URL webhook complète du canal.
Utilisez un secret Dependabot, pas un secret Actions ordinaire. GitHub n’expose que les secrets Dependabot aux workflows lancés par Dependabot.
4. Copiez le workflow
Enregistrez ce fichier sous .github/workflows/zenhook-dependabot.yml sur votre branche par défaut.
name: Zenhook - Alertes Dependabot
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: Envoyer la pull request à Zenhook
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: ("Mise à jour proposée dans " + $repository),
fields: [
{ label: "Dépôt", value: $repository },
{ label: "Pull request", value: ("#" + $number) }
],
linkUrl: $url,
linkText: "Voir la PR"
}' | curl --fail-with-body --retry 2 \
-X POST "$ZENHOOK_WEBHOOK_URL" \
-H "Content-Type: application/json" \
--data-binary @-Le workflow ne récupère ni n’exécute le code de la pull request. Son token GitHub est en lecture seule ; il transmet uniquement les métadonnées déjà présentes dans l’événement vers votre URL Zenhook privée.
Un dépôt ou plusieurs ?
- Un : ajoutez le secret et le workflow à ce dépôt.
- Plusieurs : créez un secret Dependabot au niveau de l’organisation, autorisez uniquement les dépôts choisis, puis ajoutez le même workflow à chacun.
Cette recette envoie une alerte et un lien. Elle n’approuve pas et ne fusionne pas la PR. Consultez la documentation GitHub sur les workflows Dependabot et les secrets Dependabot.