Files
gh-atournayre-claude-market…/skills/git-pr/README.md
2025-11-29 17:58:54 +08:00

212 lines
4.7 KiB
Markdown

# Git PR Skill - Documentation
## Configuration Initiale
### Authentification GitHub
Ce skill nécessite une authentification GitHub avec des scopes spécifiques.
#### Scopes Requis
| Scope | Description | Usage |
|-------|-------------|-------|
| `repo` | Accès complet aux repos | Création PR, lecture commits, gestion branches |
| `read:org` | Lecture infos organisation | Récupération infos repository organisation |
| `read:project` | Lecture projets GitHub | Liste et lecture des projets |
| `project` | Écriture aux projets | Assignation PR aux projets |
| `gist` | Gestion gists | Partage extraits de code si nécessaire |
#### Configuration Automatique (Recommandé)
```bash
bash scripts/gh_auth_setup.sh
```
Ce script configure automatiquement TOUS les scopes requis.
#### Configuration Manuelle
```bash
gh auth refresh --hostname github.com \
-s repo \
-s read:org \
-s read:project \
-s project \
-s gist
```
#### Vérification
```bash
gh auth status
```
Sortie attendue:
```
Token scopes: 'gist', 'project', 'read:org', 'repo'
```
⚠️ **Note**: `read:project` n'apparaît pas toujours explicitement mais est inclus avec `project`.
## Protection Contre les Oublis
Le skill vérifie automatiquement les scopes au démarrage (Étape 1.5).
Si un scope manque :
- ❌ Arrêt immédiat avec message d'erreur
- 📋 Liste des scopes manquants affichée
- 🔄 Commande de renouvellement suggérée
## Utilisation
### Via Slash Command
```bash
/git:pr <branche-base> [milestone] [projet] [--delete] [--no-review]
```
### Via Skill Direct
```bash
ARGUMENTS="develop 1.0.0 TMA --delete" skill dev:git-pr
```
## Dépannage
### Erreur: "Scopes manquants"
```bash
❌ Scopes GitHub manquants: read:project project
```
**Solution**: Relancer `gh_auth_setup.sh`
### Erreur: "Impossible de récupérer les projets"
Vérifier authentification:
```bash
gh auth status
```
Si scopes corrects mais erreur persiste:
```bash
# Forcer renouvellement
gh auth logout
bash scripts/gh_auth_setup.sh
```
### Erreur: "your authentication token is missing required scopes"
**Cause**: Token obsolète ou scopes révoqués
**Solution**:
```bash
bash scripts/gh_auth_setup.sh
```
## Cache Persistant
Le skill utilise un système de cache pour optimiser les performances.
### Cache Milestones
**Fichier**: `.claude/cache/git-milestones.json`
**Fonctionnalités**:
- Stockage des milestones GitHub
- Recherche par titre exact ou alias
- Normalisation semver automatique (`26``26.0.0`)
- Génération d'aliases depuis titres (`26.0.0 (Hotfix)` → alias `26.0.0`)
**Refresh**: Automatique si milestone introuvable
### Cache Projets
**Fichier**: `.claude/cache/git-projects.json`
**Fonctionnalités**:
- Stockage des projets GitHub
- Recherche case-insensitive par titre ou alias
- Génération d'aliases depuis mots-clés (`Bug Tracking``["bug", "tracking"]`)
**Refresh**: Automatique si projet introuvable
### Commandes Utiles
```bash
# Vider cache milestones
rm .claude/cache/git-milestones.json
# Vider cache projets
rm .claude/cache/git-projects.json
# Vider tout le cache
rm -rf .claude/cache/
```
## Architecture
```
git-pr/
├── SKILL.md # Définition du skill et workflow
├── README.md # Cette documentation
├── scripts/
│ ├── gh_auth_setup.sh # Configuration automatique auth
│ ├── verify_pr_template.sh
│ ├── smart_qa.sh
│ ├── analyze_changes.sh
│ ├── confirm_base_branch.py
│ ├── safe_push_pr.sh
│ ├── assign_milestone.py # Assignation milestone avec cache
│ ├── milestone_cache.py # Module cache milestones
│ ├── assign_project.py # Assignation projet avec cache
│ ├── project_cache.py # Module cache projets
│ └── cleanup_branch.sh
└── tests/
├── run_tests.sh # Lance tous les tests
├── test_milestone_cache.py # Tests unitaires milestones
└── test_project_cache.py # Tests unitaires projets
```
## Maintenance
### Ajout d'un Nouveau Scope
1. Modifier `gh_auth_setup.sh`:
```bash
REQUIRED_SCOPES=(
# ... scopes existants
"nouveau_scope" # Description
)
```
2. Modifier `SKILL.md` section "Scopes Requis"
3. Mettre à jour ce README
### Tests Unitaires
```bash
# Lancer tous les tests
bash tests/run_tests.sh
# Lancer un test spécifique
cd tests
python3 test_milestone_cache.py -v
python3 test_project_cache.py -v
```
### Test de Consistance
Après modification:
```bash
# Tester le script
bash scripts/gh_auth_setup.sh
# Vérifier
gh auth status
# Tester assignation projet
python3 scripts/assign_project.py <pr-number> --project <nom>
```