🎯 Objectifs de ce chapitre
À la fin de ce chapitre, tu seras capable de :
- Comprendre ce que sont les Issues GitHub et leur utilité
- Créer des Issues pour suivre les bugs et fonctionnalités
- Utiliser les labels, assignations et milestones
- Gérer le cycle de vie d'une Issue
- Lier les Issues aux Pull Requests
- Utiliser les templates d'Issues
- Organiser ton projet avec un tableau de projet
Qu'est-ce qu'une Issue ?
Une Issue (ticket) est un élément de suivi dans GitHub qui permet de documenter les bugs, les fonctionnalités, les tâches et les idées d'amélioration.
📋 Comprendre les Issues GitHub
Analogie : Liste de tâches intelligente
Les Issues sont comme une liste de tâches collaborative pour ton projet, avec des super-pouvoirs : discussion, attribution, priorisation et suivi !
Types d'Issues courants
🐛 Bug Report
Signaler un problème ou un comportement inattendu dans l'application
🚀 Feature Request
Proposer une nouvelle fonctionnalité ou amélioration
📚 Documentation
Améliorer ou corriger la documentation du projet
🔧 Task
Tâche technique ou de refactoring
Pourquoi utiliser les Issues ?
- 📝 Centraliser l'information : Tous les sujets au même endroit
- 👥 Collaborer : Discussions structurées autour des problèmes
- 🎯 Prioriser : Organiser le travail par importance
- 📊 Suivre la progression : Voir l'avancement du projet
- 🔗 Lier au code : Connecter les discussions aux changements
🚀 Créer ta première Issue
Va dans l'onglet Issues
Sur la page de ton dépôt GitHub, clique sur l'onglet "Issues"
Clique sur "New issue"
Bouton vert en haut à droite de la page des Issues
Remplis les informations
Titre clair et description détaillée
Exemple d'Issue bien rédigée
## Description du bug
Le bouton "Se connecter" ne répond pas au clic sur les appareils mobiles (iPhone et Android testés).
## Étapes pour reproduire
- Ouvrir l'application sur mobile
- Remplir le formulaire de connexion
- Cliquer sur le bouton "Se connecter"
- Rien ne se passe
## Comportement attendu
L'utilisateur devrait être redirigé vers le tableau de bord après connexion.
## Environnement
- Appareil : iPhone 12, Samsung Galaxy S21
- OS : iOS 15, Android 12
- Navigateur : Safari, Chrome
Éléments d'une bonne Issue
- 🎯 Titre clair et descriptif
- 📝 Description détaillée du problème
- 🔍 Étapes pour reproduire le bug
- ⚡ Comportement attendu vs actuel
- 💻 Environnement (OS, navigateur, version)
- 🖼️ Captures d'écran si applicable
🏷️ Organisation avec labels et assignations
Les métadonnées aident à organiser et prioriser les Issues.
Labels (Étiquettes)
Catégoriser les Issues
- bug - Problème à corriger
- enhancement - Amélioration
- documentation - Documentation
- good first issue - Pour débutants
- help wanted - Besoin d'aide
Assignations
Attribuer les tâches
- @utilisateur - Personne responsable
- Clarifie qui travaille sur quoi
- Évite les doublons
- Facilite le suivi
Milestones (Jalons)
Grouper par objectif
- Version 1.0
- Release Q1
- Suivre la progression
- Planifier les releases
Bonnes pratiques d'organisation
- 🎨 Utilise les labels avec parcimonie - Trop d'étiquettes tue l'étiquette
- 👤 Assigne clairement - Une personne responsable par Issue
- 📅 Utilise les milestones pour les objectifs à moyen terme
- 🔍 Filtre et trie - Utilise les métadonnées pour trouver rapidement
🔄 Cycle de vie d'une Issue
Ouverture
Quelqu'un crée une Issue pour signaler un problème ou proposer une amélioration
Discussion
L'équipe discute de l'Issue, pose des questions, clarifie les besoins
Assignation
Quelqu'un est assigné pour travailler sur l'Issue
Développement
Création d'une branche et PR liée à l'Issue
Fermeture
La PR est fusionnée et l'Issue est fermée automatiquement
Lier les Issues aux Pull Requests
Mots-clés magiques
Dans tes messages de commit ou descriptions de PR, utilise ces mots-clés :
fixes #42 # Ferme automatiquement l'Issue 42
resolves #42 # Alternative à fixes
closes #42 # Autre alternative
related to #42 # Lien sans fermeture automatique
Workflow complet
# 1. Créer une Issue sur GitHub
# 2. Travailler sur une branche
git checkout -b fix-issue-42
# 3. Dans tes commits, référence l'Issue
git commit -m "Corrige le bug de connexion mobile fixes #42"
# 4. Pousser et créer une PR
git push origin fix-issue-42
# 5. Dans la PR, GitHub détecte automatiquement la référence
# 6. Quand la PR est fusionnée, l'Issue #42 se ferme !
📝 Templates d'Issues
Les templates standardisent la création d'Issues pour plus d'efficacité.
Template Bug Report
## Description du bug
## Étapes pour reproduire
1.
2.
3.
## Comportement attendu
## Comportement actuel
## Environnement
- OS:
- Navigateur:
- Version:
Template Feature Request
## Description de la fonctionnalité
## Problème résolu
## Solution proposée
## Alternatives considérées
## Captures d'écran/Maquettes
Créer des templates
Dans ton dépôt, crée un dossier .github/ISSUE_TEMPLATE/ avec des fichiers Markdown :
📁 .github/
└── 📁 ISSUE_TEMPLATE/
├── 🐛 bug-report.md
├── 🚀 feature-request.md
└── 📚 documentation.md
Avantages des templates
✅ Information cohérente
✅ Temps gagné
✅ Meilleure qualité des rapports
✅ Orientation des contributeurs
📊 Tableaux de projet (Projects)
Les Projects sont des tableaux Kanban pour organiser visuellement ton travail.
Fonctionnalité optionnelle mais puissante
Les tableaux de projet te permettent de visualiser le flux de travail avec des colonnes comme "À faire", "En cours", "Terminé".
Créer un tableau de projet
- Va dans l'onglet "Projects" de ton dépôt
- Clique sur "New project"
- Choisis un template (Kanban recommandé)
- Configure les colonnes selon ton workflow
- Ajoute tes Issues au tableau
Avantages des tableaux
- 👀 Visibilité : Voir l'état de tous les travaux
- 🔄 Workflow visuel : Suivre la progression
- 👥 Collaboration : Toute l'équipe sur la même page
- 📈 Rapports : Métriques et insights
✅ Résumé du chapitre
Ce que tu as accompli
- ✅ Compris le concept des Issues et leur utilité
- ✅ Appris à créer des Issues bien rédigées
- ✅ Maîtrisé l'organisation (labels, assignations, milestones)
- ✅ Compris le cycle de vie d'une Issue
- ✅ Appris à lier Issues et PR avec les mots-clés magiques
- ✅ Découvert les templates d'Issues
- ✅ Exploré les tableaux de projet
Félicitations ! Tu maîtrises maintenant la gestion des tâches avec GitHub Issues. Dans le prochain chapitre, nous verrons comment rédiger un excellent README pour présenter ton projet.
Pour t'entraîner
Crée quelques Issues dans ton projet pour pratiquer : un bug report, une feature request, et une tâche de documentation. Expérimente avec les labels et l'assignation !