Configurer les autorisations du dépôt de contrôle de source avec GitHub

Effectué

L’implémentation des autorisations de référentiel GitHub de manière optimale implique de trouver un équilibre approprié entre faciliter la collaboration et protéger les codebases contre les abus et les mauvaises utilisations. GitHub prend en charge les contrôles d’accès affinés qui permettent aux équipes d’interagir efficacement les unes avec les autres, tout en conservant les principes de confidentialité, de sécurité et d’intégrité des données.

Le modèle d’autorisation diffère selon le type de compte GitHub. Les personnes et les organisations peuvent créer cinq types de comptes :

  • GitHub Free pour les comptes personnels : gratuit pour une utilisation individuelle, comprenant un nombre illimité de collaborateurs sur un nombre illimité de référentiels publics avec un ensemble complet de fonctionnalités et sur un nombre illimité de référentiels privés avec un ensemble limité de fonctionnalités, comme les
    problèmes et demandes de tirage (pull requests).
  • GitHub Pro : pour les développeurs professionnels, comprenant un nombre illimité de référentiels publics et privés et de collaborateurs ainsi que des outils de révision du code avancés.
  • GitHub Free pour les organisations : gratuit pour les organisations, comprenant un nombre illimité de collaborateurs sur un nombre illimité de référentiels publics avec un ensemble complet de fonctionnalités et sur un nombre illimité de référentiels privés avec un ensemble limité de fonctionnalités. Outre les fonctionnalités disponibles avec GitHub Free pour les comptes personnels, GitHub Free pour les organisations offre des limites plus élevées de minutes GitHub Actions par mois et un stockage de packages GitHub supérieur.
  • GitHub Team : pour les équipes, comprenant toutes les fonctionnalités de GitHub Pro, ainsi que les autorisations d’équipe et d’utilisateur, les outils de révision du code ainsi que les outils et fonctionnalités avancés dans les référentiels privés.
  • GitHub Enterprise : pour les organisations au niveau de l’entreprise, comprenant toutes les fonctionnalités de GitHub Team, ainsi que les fonctionnalités de sécurité au niveau de l’entreprise, telles que l’authentification unique, les journaux d’audit et les contrôles de conformité. Cette offre est auto-hébergée et peut être exécutée localement ou dans un environnement cloud (GitHub Enterprise Cloud).

Autorisations sur les référentiels dans GitHub Free pour les comptes personnels

GitHub Free pour les comptes personnels : Pour les référentiels publics, tout le monde peut afficher et dupliquer (fork) le référentiel. Pour les référentiels privés, leur propriétaire possède le contrôle total sur qui peut accéder au référentiel et y contribuer, avec jusqu’à trois collaborateurs autorisés. Comme il ne peut y avoir qu’un seul propriétaire, les autorisations de propriété ne peuvent pas être partagées avec un autre compte personnel. En outre, dans un référentiel privé, les propriétaires de référentiels ne peuvent accorder qu’un accès en écriture à leurs collaborateurs. En d’autres termes, les collaborateurs ne peuvent pas disposer d’un accès en lecture seule aux référentiels appartenant à un compte personnel.

Autorisations sur les référentiels dans GitHub Pro

GitHub Pro inclut les mêmes niveaux d’autorisation sur les référentiels que GitHub Free pour les comptes personnels, mais avec des fonctionnalités de collaboration plus avancées, telles que les branches protégées et les propriétaires de code.

Autorisations sur les référentiels dans GitHub Free pour les organisations

GitHub Free pour les organisations inclut la possibilité de créer des équipes, qui peuvent être autorisées à accéder à des référentiels spécifiques avec différents niveaux d’autorisation. Teams peut bénéficier d’un accès en écriture ou d’un accès administrateur. De plus, des rôles personnalisés peuvent être créés pour accorder des autorisations spécifiques à différents utilisateurs ou groupes.

Par défaut, le rôle autre que d’administrateur pour les utilisateurs d’une organisation est le rôle de membre de l’organisation. Par défaut, les membres de l’organisation disposent de quelques autorisations, notamment la possibilité de créer des référentiels.

Les autres rôles de l’organisation disposent d’autorisations élevées sur les référentiels :

  • Modérateurs de l’organisation : peuvent masquer les commentaires dans les référentiels publics appartenant à l’organisation.
  • Gestionnaires de sécurité : peuvent lire tous les référentiels de l’organisation.
  • Propriétaires : disposent de toutes les autorisations liées aux référentiels. Ils peuvent notamment ajouter des collaborateurs, écrire dans les référentiels et supprimer les référentiels.

Les propriétaires d’organisation peuvent définir des autorisations de base qui s’appliquent à tous les membres de l’organisation lors de l’accès à l’un de ses référentiels. Les autorisations de base ne s’appliquent pas aux collaborateurs externes. L’octroi d’un niveau d’accès supérieur pour les référentiels individuels remplace l’autorisation de base.

Un accès personnalisé aux référentiels peut être implémenté en affectant des rôles de référentiel intégrés aux membres de l’organisation et aux collaborateurs externes. Ces rôles sont les suivants :

  • Lecture : Recommandé pour les contributeurs hors code qui souhaitent pouvoir vérifier le contenu du référentiel.
  • Triage : Recommandé pour les contributeurs qui doivent gérer de façon proactive les problèmes, les discussions et les demandes de tirage (pull requests) sans accès en écriture.
  • Écriture : Recommandé pour les contributeurs qui effectuent activement des envois (push) vers le référentiel.
  • Gestion : Recommandé pour les chefs de projet qui doivent gérer le référentiel sans avoir accès à des actions sensibles ou destructrices.
  • Administrateur : Recommandé pour les personnes qui ont besoin de privilèges complets, comprenant les actions sensibles et destructrices, comme la gestion de la sécurité ou la suppression d’un référentiel.

Autorisations sur les référentiels dans GitHub Team

GitHub Team inclut les mêmes niveaux d’autorisation sur les référentiels que GitHub Free pour les organisations, avec l’ajout de la prise en charge des équipes et des fonctionnalités de sécurité plus avancées telles que les plages d’adresses IP autorisées et l’authentification de niveau entreprise. Les équipes sont des groupes de membres d’organisation. Les propriétaires d’organisation et les responsables d’équipe peuvent accorder aux équipes une autorisation sur les référentiels.

Autorisations sur les référentiels dans GitHub Enterprise Cloud

GitHub Enterprise Cloud est conçu pour les organisations de niveau entreprise et inclut toutes les fonctionnalités de GitHub Team, ainsi que les fonctionnalités

de sécurité de niveau entreprise, telles que l’authentification unique, les journaux d’audit et les contrôles de conformité. GitHub Enterprise Cloud prend en charge le contrôle très granulaire des autorisations sur les référentiels, notamment la possibilité de gérer les autorisations au niveau des branches. Les propriétaires d’organisation peuvent également créer des rôles personnalisés pour accorder à différents utilisateurs ou équipes des autorisations plus granulaires que celles qui sont disponibles avec les rôles intégrés de lecture, de triage, d’écriture, de gestion et d’administrateur.