Script Ruby pour récupérer les décrets de naturalisation publiés au Journal Officiel de la République Française via l'API Légifrance (PISTE).
- Ruby 3.4.8
- Bundler
bundle install- Créer un compte sur PISTE
- S'abonner à l'API Légifrance
- Créer une application pour obtenir ses credentials (client_id et client_secret)
Pour recevoir des notifications Discord lorsque de nouveaux décrets sont trouvés :
- Créer un bot Discord sur le Discord Developer Portal
- Récupérer le token du bot
- Inviter le bot sur votre serveur
- Récupérer l'ID du salon où vous souhaitez recevoir les notifications
export LEGIFRANCE_CLIENT_ID='votre_client_id'
export LEGIFRANCE_CLIENT_SECRET='votre_client_secret'
export DISCORD_TOKEN='votre_token_discord'
export DISCORD_CHANNEL_ID='id_du_salon'Ou créer un fichier .env :
LEGIFRANCE_CLIENT_ID=votre_client_id
LEGIFRANCE_CLIENT_SECRET=votre_client_secret
DISCORD_TOKEN=votre_token_discord
DISCORD_CHANNEL_ID=id_du_salon
ruby fetch_naturalisation_decrees.rbLe script va :
- S'authentifier auprès de l'API Légifrance
- Rechercher les décrets de naturalisation récents
- Récupérer les URLs des PDFs disponibles
- Envoyer une notification Discord avec les URLs trouvées (si configuré)
Le projet inclut un workflow GitHub Actions qui exécute automatiquement le script quotidiennement à 8h UTC (10h en été / 9h en hiver en France métropolitaine).
Pour activer l'automatisation :
- Aller dans les paramètres du repository : Settings → Secrets and variables → Actions
- Ajouter les secrets suivants :
LEGIFRANCE_CLIENT_ID: votre client ID LégifranceLEGIFRANCE_CLIENT_SECRET: votre client secret LégifranceDISCORD_TOKEN: votre token Discord (optionnel)DISCORD_CHANNEL_ID: l'ID du salon Discord (optionnel)
Il est également possible de déclencher le workflow manuellement :
- Aller dans l'onglet Actions du repository
- Sélectionner le workflow "Fetch naturalisation decrees"
- Cliquer sur Run workflow
Les décrets de naturalisation sont protégés par la loi (article L. 221-14). Le contenu détaillé nécessite un accès protégé sur Légifrance et ne peut pas être récupéré directement via l'API standard.
discordrb- Client Discord pour l'envoi de notificationsrest-client- Client HTTP pour les appels API