# Consistance des Scopes GitHub ## ⚠️ IMPORTANT: Source de Vérité Unique Pour garantir la cohérence des scopes GitHub demandés, **UNE SEULE source de vérité existe**: ### 📍 Fichier de Référence ``` scripts/gh_auth_setup.sh ``` **Array `REQUIRED_SCOPES`** ligne ~4-10: ```bash REQUIRED_SCOPES=( "repo" # Accès complet aux repos (PRs, commits, etc.) "read:org" # Lecture infos organisation "read:project" # Lecture projets GitHub "project" # Écriture/assignation aux projets "gist" # Gestion des gists ) ``` ## 🔒 Règles Strictes ### DO ✅ 1. **Modifier uniquement `gh_auth_setup.sh`** pour ajouter/retirer des scopes 2. **Utiliser systématiquement** `bash gh_auth_setup.sh` pour renouveler l'auth 3. **Vérifier les scopes** à chaque début de workflow (Étape 1.5 dans SKILL.md) 4. **Documenter** dans ce fichier toute modification de scopes ### DON'T ❌ 1. ❌ **NE JAMAIS** utiliser `gh auth refresh -s ` manuellement sans passer par le script 2. ❌ **NE JAMAIS** hard-coder les scopes dans SKILL.md ou ailleurs 3. ❌ **NE JAMAIS** supposer qu'un scope est présent sans vérification ## 📋 Checklist Modification Scopes Si ajout/retrait de scope nécessaire: - [ ] Modifier `REQUIRED_SCOPES` dans `scripts/gh_auth_setup.sh` - [ ] Mettre à jour section "Scopes Requis" dans `SKILL.md` - [ ] Mettre à jour tableau dans `README.md` - [ ] Documenter dans ce fichier (section Historique) - [ ] Tester avec `bash scripts/gh_auth_setup.sh` - [ ] Vérifier avec `gh auth status` - [ ] Tester le workflow complet ## 📜 Historique des Modifications ### 2025-11-05 - Initialisation **Scopes définis**: `repo`, `read:org`, `read:project`, `project`, `gist` **Contexte**: Création du système de consistance suite à oubli intermittent de scopes lors des renouvellements d'authentification. **Changements**: - Création `scripts/gh_auth_setup.sh` (script centralisant TOUS les scopes) - Ajout Étape 1.5 dans `SKILL.md` (vérification automatique scopes) - Création `README.md` (documentation complète) - Création `.scope-consistency.md` (ce fichier - règles de cohérence) **Impact**: Garantit qu'aucun scope ne sera oublié lors des futurs renouvellements. --- ### Template Modification Future ```markdown ### YYYY-MM-DD - [Titre Modification] **Scopes modifiés**: `scope1`, `scope2` **Contexte**: [Raison de la modification] **Changements**: - [Détail changement 1] - [Détail changement 2] **Impact**: [Impact sur le workflow] ``` ## 🔍 Débogage ### Symptôme: "Scopes manquants" malgré renouvellement récent **Diagnostic**: ```bash # 1. Vérifier scopes actuels gh auth status | grep "Token scopes" # 2. Comparer avec REQUIRED_SCOPES cat scripts/gh_auth_setup.sh | grep -A 10 "REQUIRED_SCOPES" ``` **Solution**: ```bash # Re-run le script de setup bash scripts/gh_auth_setup.sh ``` ### Symptôme: Script fonctionne mais assignation projet échoue **Diagnostic**: ```bash # Vérifier que 'project' ET pas seulement 'read:project' gh auth status | grep -o "project" ``` **Cause Probable**: Token ancien avec seulement `read:project` **Solution**: ```bash # Logout complet puis re-setup gh auth logout bash scripts/gh_auth_setup.sh ``` ## 📚 Références - Script source: `scripts/gh_auth_setup.sh` - Workflow: `SKILL.md` (Étape 1.5) - Documentation: `README.md` - GitHub Scopes Doc: https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps