9

Issues et gestion des tâches

🎯 Objectifs de ce chapitre

À la fin de ce chapitre, tu seras capable de :

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

1

Va dans l'onglet Issues

Sur la page de ton dépôt GitHub, clique sur l'onglet "Issues"

2

Clique sur "New issue"

Bouton vert en haut à droite de la page des Issues

3

Remplis les informations

Titre clair et description détaillée

Exemple d'Issue bien rédigée

Le bouton de connexion ne fonctionne pas sur mobile
OPEN
#42 ouverted il y a 2 jours par marie-dupont

## 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

  1. Ouvrir l'application sur mobile
  2. Remplir le formulaire de connexion
  3. Cliquer sur le bouton "Se connecter"
  4. 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

1

Ouverture

Quelqu'un crée une Issue pour signaler un problème ou proposer une amélioration

2

Discussion

L'équipe discute de l'Issue, pose des questions, clarifie les besoins

3

Assignation

Quelqu'un est assigné pour travailler sur l'Issue

4

Développement

Création d'une branche et PR liée à l'Issue

5

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
Exemple : Si tu écris "fixes #42" dans ta PR, quand elle sera fusionnée, l'Issue #42 se fermera automatiquement !

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

  1. Va dans l'onglet "Projects" de ton dépôt
  2. Clique sur "New project"
  3. Choisis un template (Kanban recommandé)
  4. Configure les colonnes selon ton workflow
  5. 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 !