GitHub
Du besoin jusqu'à la
production avec Github
et Azure
Lausanne – 19/04/2022
Sylvain Pontoreau
Felix Billon
Slide 2
Slide 2 text
Vos speakers pour cette session !
Sylvain Pontoreau
Felix Billon
Lausanne – 19/04/2022
Slide 3
Slide 3 text
Historique
• Octobre 2007 : début du développement
• Avril 2008 : lancement officiel
• Juillet 2010 : 1 million de repositories
• Septembre 2011 : plus d’1 million d’utilisateurs
• Avril 2016 : 14 millions d'utilisateurs et 35 millions de repositories
• Juin 2018 : rachat par Microsoft
Lausanne – 19/04/2022
Slide 4
Slide 4 text
Repository
Cloud
Repository
Self hosted
OU
Hébergement
Github Entreprise Cloud Github Entreprise Server
Lausanne – 19/04/2022
Slide 5
Slide 5 text
Web
Desktop
CLI
Mobile
Client
Lausanne – 19/04/2022
Slide 6
Slide 6 text
Github propose toutes les fonctionnalités basiques d’une plateforme de
gestion de repositories :
• Gestion du code source
• Gestion des tickets
• CI/CD
• Gestion de projet
• Wiki
• Extension de la plateforme via une marketplace
• ...
Tour d’horizon
Lausanne – 19/04/2022
Slide 7
Slide 7 text
Démo
Tour d’horizon
Lausanne – 19/04/2022
Slide 8
Slide 8 text
• Depuis mai 2019, facilite la
contribution à l’open-source
• Nouveau : Sponsors-only
repositories, …
Github Sponsor
Lausanne – 19/04/2022
Slide 9
Slide 9 text
• Discussions annexes aux
tickets du projet :
• Idées d’amélioration
• Annonce autour du projet
• …
• Génère des évenements
utilisable dans des Github
Actions (beta)
• Organization Discussions
depuis le 12 avril
Discussions
Lausanne – 19/04/2022
Slide 10
Slide 10 text
• Refonte de la partie gestion
de projet
• Annoncé en juin 2021,
actuellement en beta public
Project Board
Lausanne – 19/04/2022
Slide 11
Slide 11 text
Démo
Project board
Lausanne – 19/04/2022
Slide 12
Slide 12 text
• Procédure d’automatisation
• Permet de mettre en place la CI/CD
• Pipeline as code (YAML)
Actions
Lausanne – 19/04/2022
Slide 13
Slide 13 text
• Tâches stand alone packagées
Actions
Lausanne – 19/04/2022
Slide 14
Slide 14 text
• Permet d’avoir un annuaire privé de package
• Gère plusieurs types de packages :
• NPM (Javascript)
• Maven (Java)
• Gem (Ruby)
• Nuget (C#)
• Docker
• Utilisable avec les Github Actions
Packages
Lausanne – 19/04/2022
Slide 15
Slide 15 text
Démo
Github Action
Lausanne – 19/04/2022
Slide 16
Slide 16 text
Communauté axée sur la sécurité et drivée par Github
Security Lab
Lausanne – 19/04/2022
Slide 17
Slide 17 text
• Security policy : indique les versions maintenues et surtout comment reporter
des failles de sécurité sur ce repository
• Security advisories : permet de remonter une alerte de sécurité sur le
repository puis de choisir comment la traiter et l'annoncer
• Code Scanning alerts : remonte des alertes de sécurité depuis la CI
Sécurité
Lausanne – 19/04/2022
Slide 18
Slide 18 text
• Bot qui permet de garder ses dépendances à jour
• Remonte des alertes de sécurité liées aux dépendances non mise à jour
• Racheté par Github
• Intégré directement à Github
Dependabot
Lausanne – 19/04/2022
Slide 19
Slide 19 text
• Intégration d’outils DevSecOps dans son pipeline
• Chaque push déclenche automatiquement des analyses de sécurité sur le
code pushé :
• Respect des normes de sécurité sur le langage ciblé
• Pas de secrets en dur dans le code
• …
Scan de code
Lausanne – 19/04/2022
Slide 20
Slide 20 text
• Base de données des CVE/GHSA
• Permet de parcourir/chercher l’ensemble des vulnérabilités connues et reporté
es sur Github
• https://github.com/advisories
• Accepte les contributions de la communauté depuis février 2022
Advisory Database
Lausanne – 19/04/2022
Slide 21
Slide 21 text
Démo
Github & Security
Lausanne – 19/04/2022
Slide 22
Slide 22 text
• La roadmap de Github est publique
• https://github.com/github/roadmap/projects/1
Roadmap
Lausanne – 19/04/2022