GitHub est la plus grande plateforme web d'hébergement de dépôts Git, de développement collaboratif et d'automatisation de processus, propriété de Microsoft. Elle fournit non seulement un stockage de code avec contrôle de version, mais aussi un ensemble complet d'outils de gestion de projet : Issue Tracking, Pull Requests avec révision de code, Actions pour CI/CD et Wiki pour la documentation. Selon GitHub, 2024, la plateforme compte plus de 100 millions de développeurs et 420 millions de dépôts.
Points clés
GitHub est un service web pour stocker et collaborer sur des dépôts Git, fondé en 2008 par Tom Preston-Werner, Chris Wanstrath et PJ Hyett. En 2018, l'entreprise a été acquise par Microsoft pour 7,5 milliards de dollars. La plateforme fournit une interface web pour toutes les opérations Git, ajoutant des fonctionnalités sociales : forks, étoiles, abonnements, révision de code et un système d'intégration continue intégré.
La principale différence entre GitHub et ses concurrents est son écosystème ouvert et la plus grande communauté de développeurs. GitHub héberge les codes sources d'Android, Kubernetes, React, Swift, Kotlin et de milliers d'autres projets open-source. Cela fait de la plateforme non seulement un outil de stockage de code, mais aussi un réseau social pour les développeurs : vous pouvez suivre des projets, discuter des modifications et contribuer via des pull requests.
Selon un rapport de Microsoft (2024), plus de 10 millions de nouvelles Pull Requests transitent par GitHub chaque jour, et le nombre d'utilisateurs actifs mensuels a dépassé les 100 millions. La plateforme prend en charge plus de 500 langages de programmation, la détection automatique de la langue par extension de fichier et la coloration syntaxique du code.
Les fonctionnalités de GitHub vont bien au-delà du simple hébergement Git. La plateforme fournit : GitHub Actions — un système CI/CD intégré ; GitHub Packages — un registre de paquets et de conteneurs ; GitHub Codespaces — des environnements de développement cloud basés sur VS Code ; GitHub Discussions — un forum pour la communauté ; GitHub Security — Dependabot pour les mises à jour automatiques des dépendances et l'analyse des vulnérabilités ; GitHub Copilot — un assistant IA pour écrire du code.
Pour les organisations, GitHub propose GitHub Enterprise — une version entreprise avec hébergement propre (GitHub Enterprise Server) ou déploiement cloud (GitHub Enterprise Cloud). Les fonctionnalités entreprise incluent l'authentification SAML/SSO, la journalisation d'audit, les politiques de sécurité des dépôts et un SLA de disponibilité de 99,95 %. La version Enterprise est utilisée par des entreprises comme Google, Apple et Airbnb.
Une fonctionnalité importante de GitHub est GitHub CLI (gh), qui permet d'effectuer toutes les opérations de la plateforme depuis la ligne de commande sans utiliser l'interface web. Avec gh, vous pouvez créer des dépôts, gérer des Issues, examiner des Pull Requests et exécuter des Actions directement depuis le terminal, accélérant ainsi le travail des développeurs habitués à la ligne de commande.
| Fonctionnalité | Objectif | Disponibilité |
|---|---|---|
| Actions | CI/CD et automatisation | Gratuit 2000 min/mois |
| Codespaces | IDE cloud basé sur VS Code | Payant, 60 h/mois gratuit |
| Packages | Hébergement de paquets et d'images Docker | Gratuit 500 MB |
| Dependabot | Mises à jour automatiques des dépendances | Gratuit pour les dépôts publics |
| Pages | Hébergement de sites statiques | Gratuit |
Pull Request (PR) est le mécanisme principal pour apporter des modifications à un projet sur GitHub. Un développeur crée une branche avec les modifications, la publie sur GitHub et envoie une demande de fusion (Pull Request) à la branche principale. Les autres participants au projet voient la différence (diff) entre les branches, peuvent laisser des commentaires sur des lignes de code spécifiques, suggérer des modifications et approuver ou rejeter la demande.
Le processus de révision de code sur GitHub est construit autour des PR. Chaque commentaire est attaché à une ligne spécifique du diff et peut être de trois types : Comment (commentaire normal), Request Changes (nécessite des corrections) et Approve (approbation). Après avoir effectué les modifications, l'auteur met à jour le PR avec un nouveau commit et le processus de révision se répète. Une fois toutes les objections résolues et le PR approuvé, les modifications sont fusionnées dans la branche cible.
# Créer une branche de fonctionnalité et pusher
git checkout -b fix-login-bug
git add src/
git commit -m "Fix login validation error"
git push -u origin fix-login-bug
# Créer un PR via CLI
gh pr create --base main --title "Fix login validation" \
--body "Fixed edge case with empty email field"
# Visualiser et fusionner un PR
gh pr review --approve fix-login-bug
gh pr merge --squash fix-login-bug
GitHub prend en charge les règles de protection de branches : vous pouvez empêcher les pushes directs vers main, exiger un nombre obligatoire d'approbations avant la fusion, exécuter des vérifications Actions et exiger que la branche soit à jour avant la fusion. La protection des branches est configurée dans Settings → Branches et est une pratique obligatoire pour les projets de production, empêchant l'introduction accidentelle de code instable dans la branche principale.
GitHub Actions est une plateforme CI/CD intégrée qui permet d'automatiser les flux de travail directement dans le dépôt. Les flux de travail sont décrits dans des fichiers YAML situés dans le répertoire .github/workflows/. Chaque flux de travail se compose d'un ou plusieurs jobs qui s'exécutent sur des runners — des machines virtuelles avec Linux, Windows ou macOS.
Actions prend en charge un modèle piloté par les événements : les flux de travail sont déclenchés lors d'un push, d'une création de PR, d'une publication de release, selon un calendrier ou via un webhook. Cela permet d'automatiser la compilation, l'exécution des tests, l'analyse statique du code, la publication dans les magasins d'applications et le déploiement sur serveur sans intervention du développeur. Voici un exemple de flux de travail pour un projet Android :
name: Android CI
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
- name: Build with Gradle
run: ./gradlew assembleDebug
L'écosystème Actions comprend plus de 20 000 actions prêtes à l'emploi sur le GitHub Marketplace. Actions populaires : checkout (cloner un dépôt), setup-java/setup-node/setup-python (configuration de l'environnement), upload-artifact (sauvegarder les artefacts de compilation), cache (mise en cache des dépendances pour accélérer), slack-notify (envoyer des notifications à Slack). Actions prend également en charge les compilations matricielles — exécution simultanée sur plusieurs versions d'OS ou de langages.
Issues est un système intégré de suivi des tâches sur GitHub. Chaque Issue a un titre, une description, des étiquettes, des responsables, des jalons et des Pull Requests liés. Les Issues peuvent être modélisées — différents modèles sont utilisés pour les rapports de bugs, les demandes de fonctionnalités ou les questions, qui sont insérés automatiquement lors de la création.
GitHub Projects (anciennement Projects Beta) est un outil de gestion de projet basé sur des tableaux, similaire à Jira et Trello. Projects prend en charge les champs personnalisés (statut, priorité, sprint), le lien avec les Issues et Pull Requests, l'automatisation du déplacement des cartes lors du changement de statut et l'analyse sous forme de diagramme d'avancement (burndown chart). Projects est disponible en deux modes : Table (vue tableau) et Board (tableau kanban).
Pour la gestion des versions, GitHub fournit des Milestones — des groupes d'Issues et de PRs unis par un objectif commun avec une échéance. Chaque jalon montre la progression : combien de tâches sont ouvertes, combien sont fermées et si l'échéance est respectée. Les jalons s'intègrent avec Releases — lors de la publication d'une release, vous pouvez la lier à un jalon et générer automatiquement un CHANGELOG basé sur les Issues fermées.
GitHub Pages est un hébergement gratuit pour les sites statiques qui publie automatiquement le contenu du dépôt à l'adresse https://username.github.io/repository. Pages prend en charge HTML, CSS, JavaScript et les générateurs statiques : Jekyll (intégré), Hugo, Next.js (exportation) et MkDocs. La configuration inclut le choix de la branche et du répertoire pour la publication, ainsi que la prise en charge d'un domaine personnalisé.
Pour la documentation technique, GitHub fournit Wiki — un système wiki intégré qui est également stocké comme un dépôt Git. Wiki prend en charge Markdown et permet de modifier les pages à la fois via l'interface web et localement via push vers le dépôt wiki. Chaque page Wiki a son propre historique de modifications, ce qui est pratique pour documenter l'API, l'architecture et les processus du projet.
La combinaison GitHub Pages + Jekyll est une solution populaire pour les sites de documentation. Jekyll convertit automatiquement les fichiers Markdown en pages HTML statiques, prend en charge les thèmes, la navigation et la recherche. Par exemple, la documentation d'Android Developers utilisait auparavant Jekyll sur GitHub Pages et utilise maintenant une plateforme interne, mais des milliers de projets open-source continuent d'utiliser cette combinaison pour leurs sites.
GitHub CLI (gh) permet d'effectuer toutes les opérations de la plateforme via la ligne de commande : créer des dépôts, gérer des Issues, visualiser et approuver des Pull Requests, exécuter des Actions. La commande gh repo create my-project --public crée un dépôt distant et le lie au dépôt local, tandis que gh pr create crée une Pull Request à partir de la branche actuelle. CLI accélère le travail des développeurs qui préfèrent le terminal à l'interface web.
GitHub REST API et GraphQL API fournissent un accès programmatique à toutes les fonctionnalités de la plateforme : créer des Issues, gérer les utilisateurs, obtenir des statistiques et gérer les Actions. L'API GraphQL est préférable pour les requêtes complexes car elle permet d'obtenir uniquement les champs nécessaires en une seule requête. La limite de débit pour l'API REST est de 5000 requêtes par heure pour les utilisateurs authentifiés. L'API est largement utilisée pour intégrer GitHub avec des systèmes CI externes et des outils DevOps internes.
GitHub Gist est un service de publication de fragments de code sans créer de dépôt complet. Gist prend en charge la coloration syntaxique, l'intégration sur des sites externes et l'historique des versions. Chaque Gist peut être public (visible dans les recherches) ou secret (accessible uniquement par lien). Gist est utilisé pour partager rapidement des configurations, des logs et des exemples de code dans la correspondance d'équipe, ainsi que comme alternative à Pastebin pour les développeurs.
Questions fréquentes
GitHub se concentre sur la communauté ouverte et les fonctionnalités sociales (forks, étoiles). GitLab propose un CI/CD intégré plus puissant et un hébergement autogéré sans limitation des minutes Actions.
GitHub Team coûte 4 dollars par utilisateur par mois et offre des dépôts privés illimités, une protection des branches et Actions (3000 minutes). Le forfait gratuit convient aux petits projets open-source.
Lors de la création d'un dépôt, sélectionnez Private au lieu de Public. Dans les dépôts privés, le code n'est visible que par les collaborateurs invités. Sur le forfait gratuit, les dépôts privés sont disponibles avec une limite de 3 collaborateurs.
GitHub Copilot est un assistant IA basé sur OpenAI Codex qui propose de l'autocomplétion de code en temps réel. Il fonctionne dans VS Code, JetBrains et Neovim, et prend en charge tous les langages de programmation populaires.
Allez dans Settings → Danger Zone → Delete this repository. La suppression est irréversible — tous les commits, Issues et Wiki seront supprimés sans possibilité de récupération. Assurez-vous d'avoir une sauvegarde au préalable.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi