Introduction
Note
Les ensembles de règles du code d’entreprise sont actuellement en préversion publique et sont susceptibles d’être modifiés.
Vous pouvez créer des ensembles de règles pour contrôler la façon dont les utilisateurs peuvent interagir avec le code dans les référentiels de votre entreprise. Vous pouvez :
- Créez un ensemble de règles pour les branches ou les balises afin de contrôler des éléments tels que les personnes autorisées à envoyer (push) des commits vers une branche donnée, le format requis pour les commits, ou encore les personnes autorisées à supprimer ou renommer une balise.
- Créer un ensemble de règles d’envoi (push) pour bloquer les envois vers un référentiel privé ou interne et l’ensemble du réseau de duplications (fork) du référentiel. Les ensembles de règles de poussée vous permettent de bloquer les envois en fonction des extensions de fichiers, de la longueur des chemins d'accès aux fichiers, des chemins d'accès aux fichiers et aux dossiers, et de la taille des fichiers.
Pour en savoir plus, consultez À propos des ensembles de règles.
Importation d’ensembles de règles prédéfinis
Pour importer un ensemble de règles pré-généré créé par GitHub, consultez github/ruleset-recipes
.
Vous pouvez importer un ensemble de règles existant à l’aide d’un fichier JSON. Ceci peut être utile si vous souhaitez appliquer le même ensemble de règles à plusieurs référentiels ou organisations. Pour plus d’informations, consultez Gestion des ensembles de règles pour les dépôts de votre organisation.
Comment définir l’emplacement d’application de mon ensemble de règles ?
Les ensembles de règles vous permettent de cibler de manière flexible les organisations, les référentiels et les branches où vous souhaitez que les règles s’appliquent.
- Pour cibler les organisations, vous pouvez tout sélectionner, choisir dans une liste ou définir un modèle dynamique pour les noms d’organisations à l’aide de la syntaxe
fnmatch
. Pour plus de détails sur la syntaxe, consultez Création d’un ensemble de règles pour un dépôt. - Au sein de ces organisations, vous pouvez cibler tous les référentiels ou cibler une liste dynamique par propriété personnalisée. Consultez Gestion des propriétés personnalisées pour les référentiels de votre organisation.
- Dans les référentiels, vous pouvez cibler certaines branches ou balises : toutes les branches, la branche par défaut, ou une liste dynamique à l’aide de la syntaxe
fnmatch
.
Lorsque vous créez un ensemble de règles qui cible les branches d’un référentiel, les administrateurs du référentiel ne peuvent plus renommer les branches ou modifier la branche par défaut dans le référentiel ciblé. Ils peuvent toujours créer et supprimer des branches s’ils possèdent les autorisations appropriées.
Comment puis-je contrôler le format des commits ?
Dans les ensembles de règles de branche ou de balise, vous pouvez ajouter une règle qui restreint le format des métadonnées de commit telles que le message de commit ou l’e-mail de l’auteur.
Si vous sélectionnez Doit correspondre à un modèle d’expression régulière donné, vous pouvez utiliser la syntaxe des expressions régulières pour définir les modèles auxquels les métadonnées doivent ou ne doivent pas correspondre. Pour plus de détails et d’exemples sur la syntaxe, consultez Création d’un ensemble de règles pour un dépôt.
Utilisation des états d’application de l’ensemble de règles
Lors de la création ou de la modification de votre ensemble de règles, vous pouvez utiliser les statuts de mise en œuvre pour configurer la manière dont votre ensemble de règles mettra en œuvre les principes de protection des informations personnelles.
Vous pouvez sélectionner l'un des états de mise œuvre suivants pour votre ensemble de règles.
- ** Actif **: votre ensemble de règles sera appliqué lors de la création.
- ** Évaluer **: votre ensemble de règles ne sera pas appliqué, mais vous serez en mesure de surveiller les actions qui violent ou non les règles sur la page « Aperçus des règles ».
- ** Désactivé **: votre ensemble de règles n’est pas appliqué or evaluated.
L’utilisation du mode « Évaluer » est une excellente option pour tester votre ensemble de règles sans l’appliquer. Vous pouvez utiliser la page « Aperçu des règles » pour voir si l’action aurait violé la règle. Pour plus d’informations, consultez « Gestion des ensembles de règles d’un dépôt ».
Création d’un ensemble de règles de branche ou de balise
-
Dans le coin supérieur droit de GitHub, cliquez sur votre photo de profil.
-
En fonction de votre environnement, cliquez sur Votre entreprise ou sur Vos entreprises, puis cliquez sur l'entreprise que vous souhaitez consulter.
-
Sur le côté gauche de la page, dans la barre latérale du compte d’entreprise, cliquez sur Stratégies.
-
Dans « Stratégies », cliquez sur Code.
-
Cliquez sur Nouveau jeu de données.
-
Pour créer un ensemble de règles ciblant des branches, cliquez sur Nouvel ensemble de règles de branche. Vous pouvez également créer un ensemble de règles ciblant des balises, cliquez sur Nouvel ensemble de règles de balise.
-
Sous « Nom de l’ensemble de règles », tapez un nom pour l’ensemble de règles.
-
Si vous le souhaitez, pour modifier l’état d’application par défaut, cliquez sur Désactivé et sélectionnez un état d’application. Pour plus d’informations sur les états de mise en œuvre, consultez À propos des ensembles de règles.
Octroi d’autorisations de contournement pour votre ensemble de règles de branche ou de balise
Vous pouvez accorder à certains rôles, équipes ou applications des autorisations de contournement ainsi que la possibilité d'approuver les demandes de contournement pour votre ensemble de règles.
Les éléments suivants sont éligibles pour contourner l’accès :
- Administrateurs de référentiels, propriétaire d’organisation et propriétaires d’entreprise
- Le rôle de maintenance ou d’écriture, ou les clés de déploiement.
-
Pour accorder des autorisations de contournement pour l’ensemble de règles, dans la section « Liste de contournement », cliquez sur Ajouter un contournement.
-
Dans la boîte de dialogue modale « Ajouter un contournement » qui s’affiche, recherchez le rôle, l’équipe ou l’application à laquelle vous souhaitez accorder des autorisations de contournement, puis sélectionnez le rôle, l’équipe ou l’application dans la section « Suggestions » et cliquez sur Ajouter sélectionné.
-
Si vous le souhaitez, pour accorder un contournement à un acteur sans lui permettre de pousser directement vers un référentiel, à droite de « Toujours autoriser », cliquez sur , puis cliquez sur Pour les demandes de tirage uniquement.
L’acteur sélectionné est maintenant tenu d’ouvrir une demande de tirage pour apporter des modifications à un référentiel, en créant une trace claire de ses modifications dans la demande de tirage et le journal d'audit. L’acteur peut ensuite choisir de contourner les protections de branche et de fusionner cette demande de tirage.
Choix des organisations à cibler dans votre entreprise
Sélectionnez toutes les organisations, choisissez une sélection d’organisations existantes ou définissez une liste dynamique par nom. Si vous utilisez Enterprise Managed Users, vous pouvez également choisir de cibler tous les référentiels détenus par les utilisateurs de votre entreprise.
Si vous définissez une liste dynamique, vous ajouterez un ou plusieurs modèles de nommage en utilisant la syntaxe fnmatch
. Par exemple, la chaîne *open-source
correspond à toute organisation dont le nom se termine par open-source
. Pour plus de détails sur la syntaxe, consultez « Création d’un ensemble de règles pour un dépôt ».
Choix des référentiels à cibler dans votre entreprise
Au sein des organisations sélectionnées, vous pouvez cibler tous les référentiels ou cibler une liste dynamique par propriété personnalisée. Consultez Gestion des propriétés personnalisées pour les référentiels de votre organisation.
Choix des branches ou des balises à cibler
Pour cibler les branches ou les balises, dans la section « Cibler des branches » ou « Cibler des balises », sélectionnez Ajouter une cible, puis sélectionnez la façon dont vous souhaitez inclure ou exclure des branches ou des étiquettes. Vous pouvez utiliser la syntaxe fnmatch
pour inclure ou exclure des branches ou des étiquettes sur la base d’un modèle. Pour plus d’informations, consultez Utilisation fnmatch
de la syntaxe.
Vous pouvez ajouter plusieurs critères de ciblage au même ensemble de règles. Par exemple, vous pouvez inclure la branche par défaut, inclure toutes les branches correspondant au modèle *feature*
, puis exclure spécifiquement une branche correspondant au modèle not-a-feature
.
Sélection de protections de branche ou de balise
Dans la section « Protections de branches » ou « Protections d’étiquettes », sélectionnez les règles que vous souhaitez inclure dans l’ensemble de règles. Lorsque vous sélectionnez une règle, vous pouvez entrer des paramètres supplémentaires pour la règle. Pour plus d’informations sur les règles, consultez Règles disponibles pour les ensembles de règles.
Ajout de restrictions des métadonnées
Vos restrictions en matière de métadonnées doivent avoir pour but d'améliorer la cohérence entre les modifications apportées à votre référentiel. Elles ne sont pas destinées à remplacer les mesures de sécurité, comme exiger une révision du code via des demandes de tirage.
Note
Si vous effectuez la fusion Squash d’une branche, toutes les validations sur cette branche doivent répondre à toutes les exigences de métadonnées pour la branche de base.
-
Pour ajouter une règle permettant de contrôler les métadonnées de validation ou les noms de branche, dans la section « Restrictions » lors de la création ou de la modification d'un jeu de règles, cliquez sur Restreindre les métadonnées de validation ou sur Restreindre les noms de branche.
-
Configurez les paramètres de restriction, puis cliquez sur Ajouter. Vous pouvez ajouter plusieurs restrictions au même ensemble de règles.
-
Pour correspondre à un modèle d’expression régulière donné, dans la liste déroulante « Condition requise », sélectionnez Doit correspondre à un modèle d’expression régulière donné.
Pour la plupart des conditions, telles que « Doit commencer par un modèle de correspondance », le modèle que vous entrez est interprété littéralement et les caractères génériques ne sont pas pris en charge. Par exemple, le caractère
*
représente uniquement le caractère*
littéral.Pour les modèles plus complexes, vous pouvez sélectionner « Doit correspondre à un modèle regex donné » ou « Ne doit pas correspondre à un modèle regex donné », puis utiliser la syntaxe d’expression régulière pour définir le modèle correspondant. Pour plus d’informations, consultez À propos des expressions régulières pour les métadonnées de livraison.
Toute personne visualisant les ensembles de règles d’un dépôt peut voir la description que vous fournissez.
-
Si vous le souhaitez, avant d'appliquer votre jeu de règles avec des restrictions sur les métadonnées, sélectionnez l'état d'application « Évaluer » pour votre jeu de règles afin de tester les effets des restrictions sur les métadonnées sans impacter les contributeurs. Pour plus d’informations sur les restrictions de métadonnées, consultez Règles disponibles pour les ensembles de règles.
Finalisation de l'ensemble de règles de votre branche ou de votre balise et étapes suivantes
Pour terminer la création de votre ensemble de règles, cliquez sur Créer. Si le statut de l’application de l’ensemble de règles est défini sur « Actif », l’ensemble de règles prend effet immédiatement.
Vous pouvez afficher des aperçus pour l’ensemble de règles pour voir comment les règles affectent vos collaborateurs. Si le statut de l’application est défini sur « Évaluer », vous pouvez voir quelles actions auraient réussi ou échoué si l’ensemble de règles était actif. Pour plus d’informations sur les aperçus des ensemble de règles, voir Gestion des ensembles de règles d’un dépôt.
Création d’un ensemble de règles de poussée
Note
Cet ensemble de règles appliquera les restrictions d’envoi (push) pour l’ensemble du réseau de duplications (fork) d’un référentiel.
Vous pouvez créer un ensemble de règles d’envoi (push) pour les référentiels privés ou internes de votre entreprise.
- Dans le coin supérieur droit de GitHub, cliquez sur votre photo de profil.
- En fonction de votre environnement, cliquez sur Votre entreprise ou sur Vos entreprises, puis cliquez sur l'entreprise que vous souhaitez consulter.
- Dans la barre latérale gauche, dans la section « Stratégies », cliquez sur Code.
- Cliquez sur Nouveau jeu de données.
- Cliquez sur Nouvel ensemble de règles d’envoi (push).
- Sous « Nom de l’ensemble de règles », tapez un nom pour l’ensemble de règles.
- Si vous le souhaitez, pour modifier l’état d’application par défaut, cliquez sur Désactivé et sélectionnez un état d’application. Pour plus d’informations sur les états d’application, consultez À propos des ensembles de règles
Octroi d’autorisations de contournement pour votre ensemble de règles de poussée
Note
Les autorisations de contournement pour les ensembles de règles de poussée qui ciblent un référentiel seront héritées par l'ensemble du réseau de fourches pour ce référentiel. Cela signifie que les seuls utilisateurs qui peuvent contourner cet ensemble de règles pour n’importe quel dépôt du réseau de fourche de ce référentiel sont les utilisateurs qui peuvent contourner cet ensemble de règles dans le référentiel racine.
Vous pouvez accorder à certains rôles, équipes ou applications des autorisations de contournement ainsi que la possibilité d'approuver les demandes de contournement pour votre ensemble de règles. Les éléments suivants sont éligibles pour contourner l’accès :
- Administrateurs de référentiels, propriétaire d’organisation et propriétaires d’entreprise
- Le rôle de maintenance ou d’écriture, ou les clés de déploiement
- Pour accorder des autorisations de contournement pour l’ensemble de règles, dans la section « Liste de contournement », cliquez sur Ajouter un contournement.
- Dans la boîte de dialogue modale « Ajouter un contournement » qui s’affiche, recherchez le rôle, l’équipe ou l’application à laquelle vous souhaitez accorder des autorisations de contournement, puis sélectionnez le rôle, l’équipe ou l’application dans la section « Suggestions » et cliquez sur Ajouter sélectionné.
Choix des organisations à cibler dans votre entreprise
Sélectionnez toutes les organisations, choisissez une sélection d’organisations existantes ou définissez une liste dynamique par nom. Si vous utilisez Enterprise Managed Users, vous pouvez également choisir de cibler tous les référentiels détenus par les utilisateurs de votre entreprise.
Si vous définissez une liste dynamique, vous ajouterez un ou plusieurs modèles de nommage en utilisant la syntaxe fnmatch
. Par exemple, la chaîne *open-source
correspond à toute organisation dont le nom se termine par open-source
. Pour plus de détails sur la syntaxe, consultez « Création d’un ensemble de règles pour un dépôt ».
Choix des référentiels à cibler dans votre entreprise
Au sein des organisations choisies, vous pouvez cibler tous les référentiels ou cibler une liste dynamique à l’aide de propriétés personnalisées. Consultez Gestion des propriétés personnalisées pour les référentiels de votre organisation.
Sélection de protections de poussées
Vous pouvez bloquer les poussées vers ce référentiel et l'ensemble du réseau de fourches de ce référentiel en fonction de l'extension des fichiers, de la longueur des chemins d'accès aux fichiers, des chemins d'accès aux fichiers et aux dossiers et de la taille des fichiers.
Toutes les protections de poussées que vous configurez bloquent les poussées dans ce référentiel et dans l’ensemble du réseau de fourche de ce référentiel.
-
Sous « Protections des poussées », cliquez sur les restrictions que vous souhaitez appliquer. Renseignez ensuite les détails des restrictions que vous sélectionnez.
Pour les restrictions de chemin d’accès de fichier, vous pouvez utiliser des chemins partiels ou complets. Vous pouvez utiliser la syntaxe
fnmatch
pour cela. Par exemple, une restriction ciblanttest/demo/**/*
empêche toute poussée vers les fichiers ou dossiers du répertoiretest/demo/
. Une restriction visanttest/docs/pushrules.md
empêche les poussées spécifiquement vers le fichierpushrules.md
dans le répertoiretest/docs/
. Pour plus d’informations, consultez « Création d’un ensemble de règles pour un dépôt ».
Finalisation de votre ensemble de règles de poussée et étapes suivantes
Pour terminer la création de votre ensemble de règles, cliquez sur Créer. Si le statut de l’application de l’ensemble de règles est défini sur « Actif », l’ensemble de règles prend effet immédiatement.
Vous pouvez afficher des aperçus pour l’ensemble de règles pour voir comment les règles affectent vos collaborateurs. Si le statut de l’application est défini sur « Évaluer », vous pouvez voir quelles actions auraient réussi ou échoué si l’ensemble de règles était actif. Pour plus d’informations sur les aperçus des ensemble de règles, voir Gestion des ensembles de règles d’un dépôt.