Vous pouvez bloquer les pull requests qui ne respectent pas vos normes de qualité du code en ajoutant des seuils Code Quality à un jeu de règles. Si une demande de fusion n’atteint pas un seuil, elle ne peut pas être fusionnée.
Vous pouvez définir des seuils pour :
- CodeQL résultats, en fonction du niveau de gravité minimal des résultats devant être résolus.
- Couverture du code, par le pourcentage minimal de code qui doit être couvert par des tests.
Vous pouvez appliquer ces seuils au niveau du référentiel ou au niveau de l’organisation pour appliquer la même norme sur de nombreux référentiels à la fois. Choisissez le niveau de l’organisation lorsque vous souhaitez une barre de qualité cohérente entre les équipes et le niveau de référentiel lorsqu’un projet unique a besoin de sa propre norme. Code Quality Les détections d’IA ne peuvent pas être définies comme un seuil.
Prerequisites
- Code Quality est activé. Consultez Activation de GitHub Code Quality
- Code dans une langue prise en charge. Consultez les langues prises en charge.
Remarque
Le seuil aura un impact uniquement si le référentiel possède du code dans une ou plusieurs langues prises en charge, consultez Activation de GitHub Code Quality.
Confirmer que Code Quality s’exécute correctement sur les pull requests
Avant d’ajouter ou de mettre à jour un jeu de règles afin d’inclure un seuil pour Code Quality, vérifiez que le workflow Qualité du code est en cours d’exécution et renvoie les résultats aux pull requests. Sinon, le jeu de règles peut bloquer la fusion de toutes les pull requests.
- Ouvrez une demande de tirage récente et faites défiler jusqu’au résumé « Vérifications » en bas de la demande de tirage.
- Vérifiez que la vérification «CodeQL - Qualité du code » s’est exécutée correctement et a signalé son état.
Pour plus d’informations, consultez « Analyse basée sur CodeQL pour la qualité du code ».
Ajout ou mise à jour d’un ensemble de règles à inclure Code Quality
Les étapes suivantes créent ou mettent à jour un ensemble de règles au niveau du référentiel. Pour appliquer le même seuil sur plusieurs référentiels à la fois, créez un ensemble de règles d’organisation avec la même règle exiger des résultats de qualité du code à la place. Consultez Création d'ensembles de règles pour les dépôts de votre organisation.
- Accédez à l’onglet « Paramètres » de votre référentiel.
- Dans la barre latérale gauche, sous « Code et automatisation », développez Règles, puis cliquez sur Ensembles de règles.
- Si vous ne disposez pas déjà d’un ensemble de règles pour protéger votre branche par défaut, développez Nouveau jeu de règles , puis cliquez sur Nouveau ensemble de règles de branche. Vous pouvez également ouvrir votre ensemble de règles existant pour la branche par défaut et passer à l’étape 5.
- Si vous créez un ensemble de règles :
- Définissez un nom pour l’ensemble de règles.
- Définissez « État de l’application » sur « Actif ».
- Sous « Branches cibles », ajoutez une cible de « Inclure une branche par défaut ».
- Sous « Règles de branche », activez « Exiger des résultats de qualité du code ».
- Définissez « Severity » pour indiquer le niveau de gravité minimal des résultats de qualité du code qui doivent être résolus avant qu’une pull request puisse être fusionnée dans la branche par défaut. Par exemple:
- Définissez « Erreurs » pour bloquer les pull requests contenant des erreurs de qualité du code non résolues avant leur fusion.
- Définissez « Warnings and higher » pour bloquer la fusion des pull requests contenant des avertissements ou des erreurs non résolus.
- Définissez « Notes and higher » pour bloquer la fusion des pull requests contenant des remarques, des avertissements ou des erreurs non résolus.
- Définissez « All » pour bloquer la fusion des pull requests contenant n’importe quels résultats de qualité du code non résolus.
- Une fois que vous avez terminé de définir ou de modifier l’ensemble de règles, cliquez sur Créer ou Enregistrer des modifications.
Définition d’un seuil de couverture du code
Vous pouvez également bloquer les pull requests dont le taux de couverture du code est inférieur à un seuil défini. Cela utilise une règle de couverture de code Restrict distincte, et non la règle Exiger des résultats de qualité du code utilisée ci-dessus, et votre référentiel doit d’abord charger les données de couverture du code. Pour obtenir la procédure complète, consultez Définir des seuils de couverture du code pour les pull requests.
Étapes suivantes
Découvrez comment GitHub Code Quality fonctionne sur les pull requests pour empêcher que les problèmes de qualité du code n’atteignent votre branche par défaut. Consultez Empêcher les problèmes de qualité du code d’atteindre votre branche par défaut.