EBENYX TECHNOLOGIES
GitFlow Ebenyx
Qu'est-ce que Gitflow?
Gitflow est un modèle de développement de branches pour Git qui aide les équipes à
organiser leur processus de développement de manière structurée. Gitflow définit un
ensemble de règles pour la gestion des branches Git dans un dépôt, permettant une
gestion efficace des versions, des fonctionnalités et des correctifs.
production homologation securite developpement correctif-urgent dev-fonctionnalite
.0
.0
.1
/v
od
pr
f
23
e4
82
1-
f
5c
b5
2c
2-
pr
od
/v
1.
1.
0
ho
m
o/
v1
.1
.0
b
f4
69
de
9-
Principales caractéristiques de Git flow
Branches Principales
Les branches principales contiennent le code qui a été validé et est prêt à être déployé pour
les utilisateurs finaux (environnement de production ou de développement). La branche
principale représente l'état actuel du code en production. C'est la version stable et testée du
logiciel.
Contexte Ebenyx :
production : Représente la branche principale du code en production analysé et
validé.
homologation : Représente la branche principale du code en homologation
(environnement client pour tester l'application).
securite : Branche de test où les nouvelles fonctionnalités à tester sont intégrées.
developpement : Branche de développement où les nouvelles fonctionnalités sont
validées puis intégrées.
1/7
EBENYX TECHNOLOGIES
Autres Types de Branches
Ces branches sont utilisées pour développer de nouvelles fonctionnalités, préparer des
versions, effectuer des correctifs ou maintenir des versions spécifiques du logiciel. Elles
fournissent un espace isolé pour travailler sur des fonctionnalités ou des correctifs sans
perturber la branche principale. Elles sont temporaires (supprimé après la fusion) et sont
fusionnées dans la branche principale une fois que le travail est terminé et validé.
Contexte Ebenyx :
Branches de Support (correctif-urgent) : Correction rapide de problèmes critiques sur
la version en production.
Branches de Version (ex: dev-fonctionnalite) : Développement de fonctionnalités pour
une version ou une fonctionnalité spécifique.
Flux de Travail
Le diagramme représente le flux de travail d'un processus de développement logiciel,
mettant en lumière les différentes étapes impliquées dans le traitement des anomalies et
des demandes d'implémentation.
Le processus commence par la remontée des anomalies par le responsable des
incidents ou l'implementation de fonctionnalitées par le business analyste au
responsable de developpement. Le responsable du developpement, ouvre ensuite des
tickets d'implémentation pour les développeurs concernés.
Après que le Développeur_X ait terminé l'implémentation, le responsable de
developpement vérifie la qualité du code. Si nécessaire, le code est renvoyé au développeur
pour correction. Sinon, il est soumis au responsable de la securité pour une
vérification de sécurité.
Le responsable de securité effectue une recherche de vulnérabilités et, en l'absence de
celles-ci, le travail est transmis aux equipes système pour le déploiement. Si des
vulnérabilités sont détectées, un rapport est retourné au responsable de developpement
pour correction.
Après analyse du rapport de sécurité par le responsable de la securité et en cas de
conformité, le travail est transmis aux equipes systèmes pour le déploiement en
environnement client. Enfin, tout problème survenant lors du déploiement est signalé au
responsable de developpement, qui ouvre alors un ticket de bug pour le développeur
concerné. Ce processus assure la qualité et la sécurité des implémentations avant leur
déploiement final.
2/7
EBENYX TECHNOLOGIES
Touré Doucaci Business Analyste Developpeur_X Momo Système
alt [Bugs / Anomalie]
Remonte les anomalies
1
[Besoin client]
Demande implementation
2
Ouvre et attribut ticket
3
Implemente puis demande l'autorisation de fusionner (merge request)
4
Verifie la qualité du code source
5
alt [Ok]
Si ok, soumet pour verification de la securité
6
[Non Ok]
si non ok, renvoie pour correction
7
loop
Cherche vulnerabilité
8
alt [Non ok]
Si non ok, renvoi pour correction (avec rapport)
9
Ouvre et attribut ticket
10
[Ok]
Si ok, soumet pour deploiement
11
Touré Doucaci Business Analyste Developpeur_X Momo Système
Pourquoi utiliser le principe de Gitflow?
Utiliser le principe de Gitflow présente plusieurs avantages pour les équipes de
développement logiciel :
1. Organisation Structurée : Gitflow fournit un modèle clair et structuré pour organiser
le processus de développement avec des règles définies pour la gestion des
branches. Cela aide à maintenir un environnement de développement propre et
ordonné.
2. Gestion des Versions : Gitflow facilite la gestion des versions logicielles en
fournissant des branches spécifiques pour le développement de nouvelles
fonctionnalités, la préparation de versions et la correction de bugs. Cela permet de
suivre facilement les changements dans le code et de créer des versions stables du
logiciel.
3. Collaboration en Équipe : En définissant des rôles et des responsabilités clairs pour
chaque type de branche, Gitflow favorise la collaboration harmonieuse entre les
membres de l'équipe. Chaque membre sait où et comment contribuer efficacement
au projet.
4. Isolation des Changements : Les branches de fonctionnalités isolent les
développements en cours, ce qui permet aux développeurs de travailler sur
différentes fonctionnalités simultanément sans interférence. Cela réduit les conflits et
facilite la gestion des modifications.
3/7
EBENYX TECHNOLOGIES
5. Facilité de Reprise : En utilisant des branches spécifiques pour les correctifs et les
versions, Gitflow rend plus facile la reprise du travail en cas d'urgence ou de nécessité
de revenir à une version précédente du logiciel.
6. Stabilité du Code en Production : En maintenant une branche principale
(habituellement production) réservée uniquement aux versions stables du logiciel,
Gitflow garantit que le code en production est toujours stable et testé.
7. Flexibilité : Gitflow est suffisamment flexible pour s'adapter aux besoins spécifiques
de différents projets. Les équipes peuvent personnaliser leur flux de travail en
fonction de leurs exigences particulières.
En résumé, Gitflow offre une approche méthodique et efficace pour la gestion des branches
dans les projets Git, ce qui améliore la collaboration, la qualité du code et la gestion des
versions, tout en favorisant une meilleure organisation et une meilleure communication au
sein de l'équipe de développement.
Utilisation du principe Gitflow (quelques exemples concrets)
Developpeur-X
Reçoit
ticket 📝
Si cela implique Si cela implique
Mise à jour de la production 💡 Implémentation de fonctionnalité 💡
pull pull pull
Tag production 🏷 Production 🛠 Developpement 🛠
Le développeur alias "Developpeur-X" reçoit un "Ticket" pour une tâche à effectuer.
Si le ticket implique une "Mise à jour de la production", le développeur effectue un
"pull" sur la version "Tag production" et sur la branche de la "Production".
Si le ticket implique une "Implémentation de fonctionnalité", le développeur effectue
un "pull" sur le "Développement" et sur le "Tag homologation".
Créer et basculer entre les branches
Créer une nouvelle branche
4/7
EBENYX TECHNOLOGIES
production
8
33
9b
65
be
99
69
0-
1-
git checkout developpement
developpement
7
f1
1c
c1
2-
git checkout -b developpement (non existant)
dev-fonctionnalite-toure
c
e2
4b
8e
3-
git checkout -b ma-nouvelle-fonctionnalite
Basculer entre les branches
production
3
e
c1
a5
f3
14
f7
92
0-
1-
git checkout developpement (existant)
developpement
d
94
a4
67
2-
git checkout ma-branche
Fusionner des branches
Fusionner une branche dans une autre :
5/7
EBENYX TECHNOLOGIES
production
6
9d
2a
03
7a
78
d4
0-
1-
developpement
8
3e
2b
62
2-
dev-fonctionnalite-toure
6
73
72
9e
3-
git checkout develop
git merge ma-nouvelle-fonctionnalite
Merge request
Le merge request, également appelé pull request, est une fonctionnalité clé dans les
systèmes de gestion de versions comme GitLab. Les merge requests offrent plusieurs
avantages importants dans le processus de développement logiciel collaboratif notamment
Facilitation de la Collaboration et la Revues de Code Voici comment fonctionne le merge
request :
Création de la demande de fusion : Lorsqu'un développeur souhaite intégrer des
modifications d'une branche (par exemple, une branche de fonctionnalité) dans une autre
branche (comme la branche principale), il crée une demande de fusion. Cette demande
permet d'initier une discussion sur les modifications proposées avant de les fusionner.
Discussion et validation : Une fois la demande de fusion créée, les autres membres de
l'équipe peuvent examiner les modifications, ajouter des commentaires et discuter des
changements proposés. Cela permet une collaboration efficace et une validation des
modifications avant leur intégration.
Fusion des branches : Après avoir examiné et discuté des modifications, si tout est
conforme, la fusion des branches est effectuée. Les modifications de la branche source sont
intégrées à la branche cible, assurant ainsi que le code est mis à jour et que les nouvelles
fonctionnalités ou corrections de bugs sont ajoutées au projet.
Clôture de la demande de fusion : Une fois la fusion effectuée, la demande de fusion est
généralement clôturée. Cela indique que les modifications ont été intégrées avec succès et
que la discussion associée à la demande est terminée.
Le merge request est un processus essentiel pour assurer la qualité du code, la
collaboration entre les membres de l'équipe et la gestion efficace des modifications
apportées à un projet.
6/7
EBENYX TECHNOLOGIES
Ci-dessous des ressources pour comprendre les principes de Gitflow adapter à Gitlab :
Créer une merge request
7/7