114 lines
4.2 KiB
Markdown
114 lines
4.2 KiB
Markdown
# Gabarits Universels de Pull Request & Merge Request
|
|
|
|
Ce document fournit des modèles structurés pour rédiger des Pull Requests (GitHub, Gitea) et Merge Requests (GitLab) professionnelles, complètes et conformes aux standards de l'art.
|
|
|
|
---
|
|
|
|
## 1. Modèle Standard Universel (Markdown)
|
|
|
|
Ce gabarit doit être utilisé dans le corps de description de la PR/MR, quel que soit l'outil ou la forge utilisée.
|
|
|
|
```markdown
|
|
## 🎯 Contexte & Objectif
|
|
<!-- Expliquez brièvement le problème résolu ou le besoin fonctionnel/technique auquel répond cette branche. -->
|
|
<!-- Ex: Résout l'anomalie #42 liée à l'expiration prématurée des sessions d'authentification. -->
|
|
|
|
Refs / Closes #<NUMERO_ISSUE>
|
|
|
|
---
|
|
|
|
## 🛠️ Modifications apportées
|
|
<!-- Liste à puces synthétique des changements clés introduits dans cette PR. -->
|
|
- Ajout du middleware de validation des tokens avec délai de grâce de 30 secondes.
|
|
- Mise à jour du schéma de base de données pour inclure la date d'invalidation de session.
|
|
- Refactorisation du service de gestion des utilisateurs pour éviter les requêtes N+1.
|
|
|
|
---
|
|
|
|
## 🧪 Stratégie de Test & Preuves de Fonctionnement
|
|
<!-- Décrivez comment vous avez testé vos modifications et joignez logs ou captures si pertinent. -->
|
|
- [x] **Tests unitaires & intégration** : `pytest` / `npm test` exécutés avec 100% de succès.
|
|
- [x] **Linter & Typage** : Aucun avertissement (`ruff check`, `eslint`, `tsc --noEmit`).
|
|
- [x] **Vérification manuelle** : Parcours utilisateur testé en environnement local (login ➔ renouvellement ➔ déconnexion).
|
|
|
|
```text
|
|
<!-- Collez un extrait concis de log ou résultat de test réussi -->
|
|
PASS tests/auth/test_session_invalidation.py (14 tests passed in 0.82s)
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 Checklist de Sécurité & Hygiène Git
|
|
<!-- Vérifiez chaque point avant de soumettre ou de valider la PR. -->
|
|
- [x] La branche a été rebasée sur la dernière version de la branche cible (`origin/main`).
|
|
- [x] Aucun secret, clé d'API, mot de passe ou fichier sensible (`.env`, `.pem`) n'est présent dans le diff.
|
|
- [x] Aucun fichier temporaire, log ou déchet de build n'est inclus (`.DS_Store`, `node_modules/`, `dist/`).
|
|
- [x] Les messages de commit respectent la spécification **Conventional Commits 1.0.0**.
|
|
- [x] La PR est prête pour une fusion par **Squash and Merge** (ou Rebase and Merge si commits atomiques validés).
|
|
```
|
|
|
|
---
|
|
|
|
## 2. Commandes CLI par Forge Logicielle
|
|
|
|
### 2.1 GitHub (`gh` CLI)
|
|
|
|
```bash
|
|
# 1. Ouvrir une PR standard
|
|
gh pr create \
|
|
--base main \
|
|
--head feat/auth-token-refresh \
|
|
--title "feat(auth): add automatic session token grace period" \
|
|
--body-file .github/pull_request_template.md
|
|
|
|
# 2. Ouvrir une PR en mode Draft (travail en cours ou en attente de retours)
|
|
gh pr create --draft \
|
|
--base main \
|
|
--title "feat(auth): add automatic session token grace period [WIP]" \
|
|
--body "Travail en cours, tests en phase de stabilisation."
|
|
|
|
# 3. Marquer une PR Draft comme prête pour la revue
|
|
gh pr ready <NUMERO_PR>
|
|
|
|
# 4. Fusionner via Squash and Merge
|
|
gh pr merge <NUMERO_PR> --squash --delete-branch
|
|
```
|
|
|
|
---
|
|
|
|
### 2.2 GitLab (`glab` CLI)
|
|
|
|
```bash
|
|
# 1. Ouvrir une Merge Request standard
|
|
glab mr create \
|
|
--target-branch main \
|
|
--source-branch feat/auth-token-refresh \
|
|
--title "feat(auth): add automatic session token grace period" \
|
|
--description "Description complète..." \
|
|
--remove-source-branch \
|
|
--squash-before-merge
|
|
|
|
# 2. Ouvrir en mode Draft / Work in Progress
|
|
glab mr create --draft \
|
|
--target-branch main \
|
|
--title "Draft: feat(auth): add automatic session token grace period"
|
|
```
|
|
|
|
---
|
|
|
|
### 2.3 Gitea & Forges Génériques
|
|
|
|
Pour Gitea ou toute forge sans outil CLI installé en local :
|
|
|
|
1. Pousser la branche de travail vers le dépôt distant :
|
|
```bash
|
|
git push -u origin feat/auth-token-refresh
|
|
```
|
|
2. Git affichera dans la console le lien direct pour créer la Pull Request sur l'interface web de Gitea :
|
|
```text
|
|
remote: Create a pull request for 'feat/auth-token-refresh' on Gitea by visiting:
|
|
remote: https://gitea.example.com/org/repo/compare/main...feat/auth-token-refresh
|
|
```
|
|
3. Remplir le formulaire avec le titre conventionnel et le corps Markdown universel ci-dessus.
|
|
4. Sélectionner l'option **Squash and Merge** lors de l'approbation finale.
|