Skip to content
Commencer

Open Source et standards de collaboration

Dans les projets open source ou les grandes entreprises, vous n’avez généralement pas les droits d’écriture directe sur le dépôt officiel (appelé upstream). Pour proposer des modifications, vous devez utiliser le workflow de Fork.

Un Fork est une copie indépendante du dépôt d’origine, hébergée sur votre propre compte GitHub.

flowchart TD
    Upstream[Dépôt Original - Upstream] -->|1. Forker sur GitHub| Origin[Votre Fork GitHub - Origin]
    Origin -->|2. Cloner en local| Local[Dépôt Local - Votre PC]
    Local -->|3. Faire des modifications & Push| Origin
    Origin -->|4. Pull Request| Upstream

Au fil du temps, le dépôt d’origine (upstream) évolue. Vous devez synchroniser régulièrement votre dépôt local :

  1. Ajouter le dépôt d’origine comme dépôt distant nommé upstream :
    Terminal window
    git remote add upstream https://github.com/dépôt-original/projet.git
  2. Récupérer les branches et commits de l’upstream :
    Terminal window
    git fetch upstream
  3. Fusionner la branche principale de l’upstream dans votre branche locale :
    Terminal window
    git switch main
    git merge upstream/main

GitHub propose un outil en ligne de commande puissant appelé GitHub CLI (gh). Il permet de piloter l’ensemble de vos activités GitHub directement depuis votre terminal habituel, sans ouvrir de navigateur.

Terminal window
gh auth login
Terminal window
gh repo clone joinhashcode/workshops

Configure automatiquement le fork, pousse votre branche locale, puis crée la PR sur le dépôt d’origine :

Terminal window
gh pr create
Terminal window
gh issue list

3. Gouvernance & Fichiers clés d’un dépôt

Section titled “3. Gouvernance & Fichiers clés d’un dépôt”

Un dépôt open source ou professionnel doit être structuré de manière à guider les nouveaux collaborateurs et définir le cadre légal et technique.

FichierEmplacementRôle
README.mdRacinePage d’accueil du projet : description, installation, usage rapide.
CONTRIBUTING.mdRacine ou .github/Guide expliquant les standards de code, le processus de contribution et les tests à lancer.
CODEOWNERS.github/Fichier définissant automatiquement les réviseurs requis pour chaque dossier ou type de fichier.
LICENSERacineCadre légal définissant les droits d’utilisation, modification et redistribution (ex: MIT, Apache 2.0).

Ce fichier permet d’automatiser les demandes de revue de code :

# Tous les fichiers JavaScript seront révisés par l'équipe frontend
*.js @mon-organisation/frontend-leads
# Le dossier de déploiement nécessite la validation de l'équipe devops
/deploy/ @mon-organisation/devops-team

Protéger votre code contre les vulnérabilités et les fuites accidentelles d’informations sensibles est une priorité critique en ingénierie.

Les fonctionnalités de sécurité clés de GitHub :

Section titled “Les fonctionnalités de sécurité clés de GitHub :”
  • Dependabot : Analyse automatiquement vos fichiers de dépendances (comme package.json) et ouvre des Pull Requests pour mettre à jour les packages contenant des vulnérabilités connues.
  • Secret Scanning : Scanne en permanence votre code historique lors des pushs pour détecter d’éventuelles clés d’API, mots de passe ou certificats exposés par erreur, et bloque le push si nécessaire.
  • Security Policy (SECURITY.md) : Indique comment signaler une vulnérabilité de sécurité de manière responsable à l’équipe de maintenance sans l’exposer publiquement.

Question

Qu'est-ce qu'un dépôt 'upstream' ?

Cliquer pour révéler la réponse
Réponse

C'est le dépôt officiel d'origine auquel vous contribuez via un fork.

Cliquer pour voir la question
Question

Quelle commande de GitHub CLI permet d'ouvrir une Pull Request ?

Cliquer pour révéler la réponse
Réponse

gh pr create

Cliquer pour voir la question
Question

À quoi sert le fichier CODEOWNERS ?

Cliquer pour révéler la réponse
Réponse

À assigner automatiquement des relecteurs spécifiques selon les fichiers modifiés dans une Pull Request.

Cliquer pour voir la question
Question

Quel est le rôle de Dependabot ?

Cliquer pour révéler la réponse
Réponse

Détecter les dépendances obsolètes et vulnérables et proposer automatiquement des PR pour les mettre à jour.

Cliquer pour voir la question

1. Quel est le rôle principal de la commande 'git remote add upstream' dans le workflow de Fork ?

2. Quel outil permet de gérer les issues, les PRs et le login GitHub directement en ligne de commande ?

3. Quel fichier définit la licence d'utilisation légale de votre code ?


Félicitations, vous avez acquis l’ensemble des compétences théoriques et pratiques nécessaires pour concevoir, versionner, sécuriser et collaborer sur des projets d’ingénierie logicielle professionnels. Découvrons à présent comment étiqueter nos versions logicielles et gérer les conventions de release.

Et maintenant ?

HashCode Workshops
Part of the JoinHashCode ecosystem

Ctrl + K Rechercher dans les workshops