Gestion de projet
avec GitHub
LUGE 2019.3
Nicolas Bats
Chambéry, le 22/11/2019
Attention !
Github GitHub
LUGE 2019.3 - Gestion de projet avec GitHub 2
Coordonnées
Nicolas Bats
Ingénieur d’études & Responsable de projets
nicolas.bats@gmail.com
LUGE 2019.3 - Gestion de projet avec GitHub 3
Sommaire
 Introduction
 Présentation générale
 Démonstration des outils
 Avancé
 Conclusion
LUGE 2019.3 - Gestion de projet avec GitHub 4
Introduction
LUGE 2019.3 - Gestion de projet avec GitHub 5
LUGE 2019.3 - Gestion de projet avec GitHub 6
Introduction
https://github.com
 Plateforme collaborative de gestion des versions (hébergement de code)
 … et de gestion de développement de logiciels
 GitHub est centré vers l'aspect social du développement
 Comptes payants & gratuits, en ligne ou non
 Lancé le 10 avril 2008
 100M repositories, 40M developers, 2M organizations (n°1 mondial)
 Acheté par Microsoft le 4 juin 2018 pour 7,5 milliards de dollars
7LUGE 2019.3 - Gestion de projet avec GitHub
Services
 Hébergement de code (Git)
 Revue de code
 Gestion de tickets
 Gestion de projet
 Organisation en entreprises, groupes, utilisateurs
8LUGE 2019.3 - Gestion de projet avec GitHub
Présentation
Quelques mots dans les grandes lignes sur les outils proposés par GitHub.
LUGE 2019.3 - Gestion de projet avec GitHub 9
Client web
Pour la gestion de projet
10LUGE 2019.3 - Gestion de projet avec GitHub
Client de bureau
Pour le travail de tous les jours
Travailler sur des :
 Mac ou Windows
 Dépôts GitHub, Git distants, Git locaux
 …
11LUGE 2019.3 - Gestion de projet avec GitHub
Workflow
Comprendre le GitHub flow
La revue de code est intégrée au processus de développement :
1. Créer une branche (feature, fix)
2. Ajouter des commits
3. Ouvrir une pull request
4. Discuter & faire une revue du code
5. Déployer
6. Merger
https://guides.github.com/introduction/flow/
12LUGE 2019.3 - Gestion de projet avec GitHub
Git Flow vs. GitHub Flow
https://lucamezzalira.com/2014/03/10/git-flow-vs-github-flow/
LUGE 2019.3 - Gestion de projet avec GitHub 13
Démonstration
Prise en main de l’interface web et utilisation des différents services.
LUGE 2019.3 - Gestion de projet avec GitHub 14
Créer un compte
Je vous invite à créer un compte pour faire les essais en même temps !
15LUGE 2019.3 - Gestion de projet avec GitHub
Organiser la structure
 Former des organisations
 Regrouper les utilisateurs en équipes
 … et en sous-équipes !
 Gérer des collaborateurs à tous les niveaux
 Gérer les projets d’une équipe
16LUGE 2019.3 - Gestion de projet avec GitHub
Créer un dépôt
17LUGE 2019.3 - Gestion de projet avec GitHub
Fork d’un dépôt
 Pour reprendre un travail déjà existant
 Pour collaborer sur des projets open source
https://github.com/LUGE-33/
LUGE 2019.3 - Gestion de projet avec GitHub 18
Développer du code
 Git = décentralisé
 Mécanisme du pull-request
19LUGE 2019.3 - Gestion de projet avec GitHub
Gérer les tickets
Mécanisme de gestion des tickets simple mais très flexible.
 Autosuggestions
 Lien avec les projets & releases
 Transfert entre dépôts
 Intégré avec les commits
 Séparation des rôles
 Réouverture des tickets
 Templates de tickets
20LUGE 2019.3 - Gestion de projet avec GitHub
Planifier les releases
Les product owner utilisent aussi GitHub !
 Planification des releases
 Chaque intervenant utilise l’outil indépendamment
 En fonction de ses disponibilités
 En fonction de ses contraintes (ex : informations)
 Indicateur de progression
 Ne gère pas les notions de charge de travail
21LUGE 2019.3 - Gestion de projet avec GitHub
Organiser le projet
 Organiser un développement en projets
 Releases spécifiques pour un client
 Multi plateformes
 Autres
 Les tickets peuvent être ajoutés à plusieurs projets
(ex : migration version LabVIEW)
22LUGE 2019.3 - Gestion de projet avec GitHub
Publier les livrables
 Utilisation des tags
 On joint des fichiers binaires au code source
Pas très fan de la solution…
23LUGE 2019.3 - Gestion de projet avec GitHub
Documenter
Un wiki est disponible pour la documentation développeur.
 Version pro uniquement
 Mériterais à être développé
24LUGE 2019.3 - Gestion de projet avec GitHub
Informer
GitHub Pages permet d’héberger des pages web pour présenter son produit.
 GitHub Pro
 Générateur de code HTML
 Modèles préfabriqués
 Editeur web simplifié (injection de variables)
 URL liées au compte
https://pages.github.com/
25LUGE 2019.3 - Gestion de projet avec GitHub
Marketplace
Pour trouver plus de fonctionnalités & d’outils :
 Pour la gestion de projet (ex : ZenHub, agilité)
 Pour la documentation (ex : connecteur Lucidchart)
 Pour la revue de code automatique
 Pour de l’intégration continue
 …
https://github.com/marketplace
26LUGE 2019.3 - Gestion de projet avec GitHub
Actions
Facilite l’automatisation d’un workflow de développement en proposant des
outils d’intégration continue (CI/CD).
 Build, test, and deploy applications
 Tous les langages
 Tous les principaux OS
 Facturation à la consommation
 Configuration à l’aide de fichiers YAML
(un peu complexe à mettre en œuvre)
Fonctionnalité encore non explorée…
27LUGE 2019.3 - Gestion de projet avec GitHub
Packages
Fonctionnalité encore non explorée…
28LUGE 2019.3 - Gestion de projet avec GitHub
Avancé
Quelques sujets de discussion plus avancés techniquement pour un
rapprochement avec LabVIEW.
LUGE 2019.3 - Gestion de projet avec GitHub 29
API
GitHub fournit une API qui permet de scripter la majorité des fonctionnalités et
de connecter la plateforme aux outils internes à l’entreprise :
 Gestion des utilisateurs
 Créations / affectations de projets
 Gérer les tickets
 Générer une release note
 Publier une release
https://developer.github.com/
IT
Développeurs
30LUGE 2019.3 - Gestion de projet avec GitHub
Scripting
Un client utilisant l’API GitHub a été développé pour permettre d’intégrer
GitHub à l’IDE LabVIEW.
 Création automatique d’une release à un changement de version
(avec popup de confirmation)
 Génération automatique d’une release note
(HTML ou autres)
Prochaine étape
Stocker les informations du serveur GitHub (URL, API Key…) dans le fichier projet
LabVIEW et utiliser la fenêtre d’édition des propriétés de l’exécutable.
LUGE 2019.3 - Gestion de projet avec GitHub 31
Conclusion
 Un outil clairement pensé pour par les développeurs
 Une interface web intuitive, attractive et ergonomique
 Une palette d’outils complète
 Particulièrement intéressant pour le travail collaboratif
(communication plus sereine)
 Une API puissante
32LUGE 2019.3 - Gestion de projet avec GitHub
Fin
Merci pour votre attention ;)
LUGE 2019.3 - Gestion de projet avec GitHub 33
Références
Quelques liens utiles :
https://github.com/
https://guides.github.com/introduction/flow/
https://lucamezzalira.com/2014/03/10/git-flow-vs-github-flow/
LUGE 2019.3 - Gestion de projet avec GitHub 34

Gestion de projet avec GitHub

  • 1.
    Gestion de projet avecGitHub LUGE 2019.3 Nicolas Bats Chambéry, le 22/11/2019
  • 2.
    Attention ! Github GitHub LUGE2019.3 - Gestion de projet avec GitHub 2
  • 3.
    Coordonnées Nicolas Bats Ingénieur d’études& Responsable de projets nicolas.bats@gmail.com LUGE 2019.3 - Gestion de projet avec GitHub 3
  • 4.
    Sommaire  Introduction  Présentationgénérale  Démonstration des outils  Avancé  Conclusion LUGE 2019.3 - Gestion de projet avec GitHub 4
  • 5.
    Introduction LUGE 2019.3 -Gestion de projet avec GitHub 5
  • 6.
    LUGE 2019.3 -Gestion de projet avec GitHub 6
  • 7.
    Introduction https://github.com  Plateforme collaborativede gestion des versions (hébergement de code)  … et de gestion de développement de logiciels  GitHub est centré vers l'aspect social du développement  Comptes payants & gratuits, en ligne ou non  Lancé le 10 avril 2008  100M repositories, 40M developers, 2M organizations (n°1 mondial)  Acheté par Microsoft le 4 juin 2018 pour 7,5 milliards de dollars 7LUGE 2019.3 - Gestion de projet avec GitHub
  • 8.
    Services  Hébergement decode (Git)  Revue de code  Gestion de tickets  Gestion de projet  Organisation en entreprises, groupes, utilisateurs 8LUGE 2019.3 - Gestion de projet avec GitHub
  • 9.
    Présentation Quelques mots dansles grandes lignes sur les outils proposés par GitHub. LUGE 2019.3 - Gestion de projet avec GitHub 9
  • 10.
    Client web Pour lagestion de projet 10LUGE 2019.3 - Gestion de projet avec GitHub
  • 11.
    Client de bureau Pourle travail de tous les jours Travailler sur des :  Mac ou Windows  Dépôts GitHub, Git distants, Git locaux  … 11LUGE 2019.3 - Gestion de projet avec GitHub
  • 12.
    Workflow Comprendre le GitHubflow La revue de code est intégrée au processus de développement : 1. Créer une branche (feature, fix) 2. Ajouter des commits 3. Ouvrir une pull request 4. Discuter & faire une revue du code 5. Déployer 6. Merger https://guides.github.com/introduction/flow/ 12LUGE 2019.3 - Gestion de projet avec GitHub
  • 13.
    Git Flow vs.GitHub Flow https://lucamezzalira.com/2014/03/10/git-flow-vs-github-flow/ LUGE 2019.3 - Gestion de projet avec GitHub 13
  • 14.
    Démonstration Prise en mainde l’interface web et utilisation des différents services. LUGE 2019.3 - Gestion de projet avec GitHub 14
  • 15.
    Créer un compte Jevous invite à créer un compte pour faire les essais en même temps ! 15LUGE 2019.3 - Gestion de projet avec GitHub
  • 16.
    Organiser la structure Former des organisations  Regrouper les utilisateurs en équipes  … et en sous-équipes !  Gérer des collaborateurs à tous les niveaux  Gérer les projets d’une équipe 16LUGE 2019.3 - Gestion de projet avec GitHub
  • 17.
    Créer un dépôt 17LUGE2019.3 - Gestion de projet avec GitHub
  • 18.
    Fork d’un dépôt Pour reprendre un travail déjà existant  Pour collaborer sur des projets open source https://github.com/LUGE-33/ LUGE 2019.3 - Gestion de projet avec GitHub 18
  • 19.
    Développer du code Git = décentralisé  Mécanisme du pull-request 19LUGE 2019.3 - Gestion de projet avec GitHub
  • 20.
    Gérer les tickets Mécanismede gestion des tickets simple mais très flexible.  Autosuggestions  Lien avec les projets & releases  Transfert entre dépôts  Intégré avec les commits  Séparation des rôles  Réouverture des tickets  Templates de tickets 20LUGE 2019.3 - Gestion de projet avec GitHub
  • 21.
    Planifier les releases Lesproduct owner utilisent aussi GitHub !  Planification des releases  Chaque intervenant utilise l’outil indépendamment  En fonction de ses disponibilités  En fonction de ses contraintes (ex : informations)  Indicateur de progression  Ne gère pas les notions de charge de travail 21LUGE 2019.3 - Gestion de projet avec GitHub
  • 22.
    Organiser le projet Organiser un développement en projets  Releases spécifiques pour un client  Multi plateformes  Autres  Les tickets peuvent être ajoutés à plusieurs projets (ex : migration version LabVIEW) 22LUGE 2019.3 - Gestion de projet avec GitHub
  • 23.
    Publier les livrables Utilisation des tags  On joint des fichiers binaires au code source Pas très fan de la solution… 23LUGE 2019.3 - Gestion de projet avec GitHub
  • 24.
    Documenter Un wiki estdisponible pour la documentation développeur.  Version pro uniquement  Mériterais à être développé 24LUGE 2019.3 - Gestion de projet avec GitHub
  • 25.
    Informer GitHub Pages permetd’héberger des pages web pour présenter son produit.  GitHub Pro  Générateur de code HTML  Modèles préfabriqués  Editeur web simplifié (injection de variables)  URL liées au compte https://pages.github.com/ 25LUGE 2019.3 - Gestion de projet avec GitHub
  • 26.
    Marketplace Pour trouver plusde fonctionnalités & d’outils :  Pour la gestion de projet (ex : ZenHub, agilité)  Pour la documentation (ex : connecteur Lucidchart)  Pour la revue de code automatique  Pour de l’intégration continue  … https://github.com/marketplace 26LUGE 2019.3 - Gestion de projet avec GitHub
  • 27.
    Actions Facilite l’automatisation d’unworkflow de développement en proposant des outils d’intégration continue (CI/CD).  Build, test, and deploy applications  Tous les langages  Tous les principaux OS  Facturation à la consommation  Configuration à l’aide de fichiers YAML (un peu complexe à mettre en œuvre) Fonctionnalité encore non explorée… 27LUGE 2019.3 - Gestion de projet avec GitHub
  • 28.
    Packages Fonctionnalité encore nonexplorée… 28LUGE 2019.3 - Gestion de projet avec GitHub
  • 29.
    Avancé Quelques sujets dediscussion plus avancés techniquement pour un rapprochement avec LabVIEW. LUGE 2019.3 - Gestion de projet avec GitHub 29
  • 30.
    API GitHub fournit uneAPI qui permet de scripter la majorité des fonctionnalités et de connecter la plateforme aux outils internes à l’entreprise :  Gestion des utilisateurs  Créations / affectations de projets  Gérer les tickets  Générer une release note  Publier une release https://developer.github.com/ IT Développeurs 30LUGE 2019.3 - Gestion de projet avec GitHub
  • 31.
    Scripting Un client utilisantl’API GitHub a été développé pour permettre d’intégrer GitHub à l’IDE LabVIEW.  Création automatique d’une release à un changement de version (avec popup de confirmation)  Génération automatique d’une release note (HTML ou autres) Prochaine étape Stocker les informations du serveur GitHub (URL, API Key…) dans le fichier projet LabVIEW et utiliser la fenêtre d’édition des propriétés de l’exécutable. LUGE 2019.3 - Gestion de projet avec GitHub 31
  • 32.
    Conclusion  Un outilclairement pensé pour par les développeurs  Une interface web intuitive, attractive et ergonomique  Une palette d’outils complète  Particulièrement intéressant pour le travail collaboratif (communication plus sereine)  Une API puissante 32LUGE 2019.3 - Gestion de projet avec GitHub
  • 33.
    Fin Merci pour votreattention ;) LUGE 2019.3 - Gestion de projet avec GitHub 33
  • 34.
    Références Quelques liens utiles: https://github.com/ https://guides.github.com/introduction/flow/ https://lucamezzalira.com/2014/03/10/git-flow-vs-github-flow/ LUGE 2019.3 - Gestion de projet avec GitHub 34