TP 4 : Pull Requests, revue de code et protection de branches

Module : 1 – Versioning et collaboration avec Git & GitHub Durée indicative : 2h Prérequis : TP 3 terminé, travail en binôme

Objectifs

  • Mener un workflow complet de Pull Request.
  • Réaliser une revue de code croisée avec CODEOWNERS.
  • Configurer des règles de protection de branche sur main.

Étape 1 – Préparer le dépôt

Sur le dépôt netlab-configs de l’un des deux binômes, ajoutez à la racine :

# .github/CODEOWNERS
*.rsc   @<pseudo-github-du-partenaire>

Ajoutez un modèle de PR :

# .github/pull_request_template.md
## Description
## Changements apportés
## Comment tester

Commitez et poussez ces fichiers directement sur main (dernière fois avant activation de la protection).

Étape 2 – Ouvrir une Pull Request

  1. Créez une branche feature/firewall-rules, ajoutez une règle de filtrage dans un fichier de configuration, commitez et poussez.
  2. Ouvrez une PR vers main sur GitHub ; le modèle doit se pré-remplir.
  3. Vérifiez que CODEOWNERS assigne automatiquement le partenaire comme relecteur.

Étape 3 – Revue de code

Le partenaire :

  • commente au moins une ligne du diff,
  • demande une modification (Request changes),
  • après correction et nouveau push sur la même branche, Approve la PR.

Étape 4 – Protection de branche

Dans Settings → Branches du dépôt, créez une règle pour main :

  • Require a pull request before merging,
  • Require approvals: 1,
  • Require review from Code Owners,
  • Require status checks to pass (si une CI est configurée),
  • Require linear history,
  • Block force pushes.

Testez que le push direct sur main est désormais refusé.

Étape 5 – Fusion

Comparatif des modes de fusion Comparatif des modes de fusion Le même jeu de 3 commits produit un historique différent selon le mode de fusion choisi.

Fusionnez la PR avec le mode Squash and merge, puis supprimez la branche feature/firewall-rules. Comparez avec ce qu’aurait donné un Rebase and merge.

Rendu attendu

  • Le lien de la PR fusionnée (avec commentaires de revue visibles).
  • Une capture des règles de protection de branche activées.
  • Une capture montrant le refus d’un push direct sur main.

Points de vérification

  • La PR a été relue et approuvée par le binôme avant fusion.
  • CODEOWNERS a bien assigné le relecteur automatiquement.
  • Un push direct sur main est rejeté par les règles de protection.