128 lines
3.4 KiB
Markdown
128 lines
3.4 KiB
Markdown
# 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 <scope>` 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
|