Skip to main content

Gestion des normes de base de code dans un déploiement GitHub Copilot

Gardez le contrôle du code de votre entreprise avec des ensembles de règles, des fonctionnalités de sécurité et une formation efficace.

Qui peut utiliser cette fonctionnalité ?

Enterprise owners

La plupart des entreprises sont conscientes des avantages de productivité que les outils de codage d’IA peuvent apporter. Toutefois, de nombreuses préoccupations sont que l’utilisation incorrecte dans leur entreprise, comme les invites malveillantes ou les développeurs acceptant des suggestions d’IA sans révision, entraînera la compromission des normes de leur base de code.

Vous pouvez atténuer ces risques en configurant votre GitHub environnement et votre culture de travail pour une gouvernance efficace. L’un des principaux avantages de GitHub Copilot est qu’il est intégré à la plateforme GitHub, qui contient déjà une gamme de fonctionnalités pour la gouvernance du code de niveau entreprise.

1. Exiger des pull requests et des revues

Les développeurs et les acteurs malveillants ne devraient jamais être en mesure d'appliquer unilatéralement des suggestions d'IA non vérifiées ou le travail d'un agent directement sur les bases de code sensibles. Vous devez exiger une pull request approuvée avant que les utilisateurs puissent intégrer du code dans les dépôts de production et d’autres branches importantes.

Pour ce faire, créez un ensemble de règles :

  1. Identifiez les organisations ou référentiels qui contiennent les bases de code que vous souhaitez protéger et appliquez une propriété personnalisée à celles-ci. Cela vous permet de cibler facilement ces ressources dans un ensemble de règles. Consultez Gestion des propriétés personnalisées pour les référentiels de votre organisation ou Gestion des propriétés personnalisées pour les organisations.

    Vous pouvez également ajouter ces ressources protégées à un ensemble de règles manuellement ou les cibler en fonction d’une convention d’affectation de noms.

  2. Créez un ensemble de règles de branche pour votre entreprise. Consultez « Application de la gouvernance du code dans votre entreprise avec des ensembles de règles ».

    • Activez au moins les règles Exiger une demande de tirage avant de fusionner et Bloquer les envois forcés. Sous la règle « Exiger une pull request », assurez-vous de nécessiter au moins une approbation.
    • Activez d’autres règles si nécessaire. Par exemple, si vous craignez que des acteurs malveillants prennent le contrôle des pull requests, assurez-vous de rejeter les approbations obsolètes des pull requests lorsque de nouveaux commits sont poussés.
  3. Encouragez les administrateurs de référentiels à configurer des fichiers CODEOWNERS pour des fichiers spécifiques dans les référentiels. Cela demande automatiquement une révision auprès des propriétaires de code lorsque ces fichiers sont modifiés.

    Ensuite, vous pouvez revenir à votre ensemble de règles et activer la règle Exiger une révision des Propriétaires de code.

  4. Encouragez les propriétaires d’organisations et les administrateurs de référentiels à créer des ensembles de règles plus spécifiques, car ils sont susceptibles d’avoir plus de connaissance des exigences pour leur propre code.

    Ces ensembles de règles s’ajoutent à la base de référence que vous définissez au niveau de l’entreprise, mais ne le remplaceront jamais.

2. Tester votre code

De bonnes pratiques DevOps garantissent que votre code est testé automatiquement avant d’être fusionné et déployé, ce qui réduit les risques d’erreurs entrant dans vos branches par défaut et leur apparition dans les environnements de production.

  1. Activez GitHub Actions ou un autre système CI/CD.
  2. Encouragez les développeurs à écrire des tests pour toutes les fonctionnalités et à intégrer des tests dans GitHub Actions des workflows.
  3. Encouragez les propriétaires d’organisations ou les propriétaires de référentiels à créer des ensembles de règles et à ajouter des flux de travail importants à la règle Exiger que les flux de travail réussissent avant la fusion.

3. Analyser le code pour détecter les vulnérabilités

          Copilot est déjà conçu pour éviter d’introduire des vulnérabilités dans votre codebase. Par exemple, le code créé par agent Copilot de cloud est automatiquement analysé pour les modèles vulnérables et les secrets tels que les clés API.

Toutefois, il est recommandé d’analyser régulièrement tout le code pour détecter les vulnérabilités et les secrets, et d’empêcher les développeurs d’introduire des vulnérabilités en premier lieu.

  1. En tant que point de départ, appliquez et imposez une configuration de sécurité de base dans vos organisations. Il s’agit d’une collection de paramètres d’activation pour les fonctionnalités de sécurité. Nous vous recommandons d’inclure code scanning, secret scanninget de protéger les secrets. Consultez « Création d’une configuration de sécurité personnalisée ».
  2. À mesure que vous en apprenez davantage sur vos besoins, créez des configurations personnalisées supplémentaires ou appliquez des paramètres granulaires au niveau du référentiel.
  3. Pour appliquer code scanning des demandes de tirage, revenez à votre ensemble de règles et activez la règle Exiger code scanning les résultats .

4. Créer des instructions pour Copilot

Pour améliorer la qualité des suggestions Copilot pour commencer, vous devez créer des instructions personnalisées. Ces instructions ajoutent du contexte à toutes les invites qui demandent à Copilot de suivre les normes de codage de votre entreprise.

  1. Pour établir une bonne base de référence, créez des instructions personnalisées au niveau de l’organisation. Il peut s’agir de normes de haut niveau susceptibles d’être appliquées à n’importe quel référentiel. Toutefois, notez que ces instructions s’appliquent uniquement sur le GitHub site web. Consultez « Ajout d’instructions personnalisées d’organisation pour GitHub Copilot ».
  2. Pour une couverture plus complète, encouragez les développeurs et les administrateurs de référentiels à écrire des instructions personnalisées pour des référentiels spécifiques. Celles-ci s’appliquent à plus d’endroits que les instructions de l’organisation et peuvent entrer plus en détail sur chaque projet et ses exigences. Consultez « Ajout d’instructions personnalisées de référentiel pour GitHub Copilot ».

5. Encourager les meilleures pratiques

Avec des garde-fous forts en place, les développeurs doivent déjà être autorisés à utiliser efficacement l’IA. Toutefois, il est important de fournir une formation sur les outils IA et de créer une culture où les meilleures pratiques sont encouragées, plutôt que simplement appliquées.

  1. Communiquez vos paramètres de gouvernance et les attentes de votre entreprise pour la façon dont les développeurs doivent utiliser Copilot. Par exemple, si tous les travaux de l’agent doivent être soigneusement examinés, assurez-vous que ce processus est établi et communiqué.
  2. Créez des ressources d’intégration telles que la documentation interne ou les vidéos. Pour un point de départ, partagez des ressources existantes telles que Meilleures pratiques pour l’utilisation de GitHub Copilot et Cookbook GitHub Copilot Chat.
  3. Offrir une formation et un soutien continus, tels que des ateliers. Dans les lancements réussis, de nombreuses entreprises identifient les « champions » qui peuvent former d’autres personnes sur la façon d’utiliser Copilot efficacement.

6. Planifier le pire

Même avec les garde-fous les plus stricts en place, il est toujours possible que le code vulnérable ou sujet aux erreurs soit fusionné, que vos développeurs utilisent des outils IA.

Pour préparer ces scénarios, vous devez planifier la façon dont vous allez résoudre les problèmes et communiquer ce plan avec les développeurs. Par exemple:

  1. Annuler une pull request incorrecte et revenir sur un déploiement.
  2. Créez un billet de discussion analysant ce qui s’est passé et comment l’éviter à l’avenir.
  3. Vérifiez les journaux d’audit pour repérer des éléments comme des contournements de jeux de règles, des autorisations incorrectes ou des modifications des paramètres de gouvernance.

7. Vérifier la qualité du code

Si vous êtes confiant dans votre modèle de gouvernance mais que vous êtes toujours préoccupé par la Copilot réduction de la qualité de votre codebase au fil du temps, vous pouvez mesurer cela au cours d’un déploiement. Si cette option est activée, GitHub Code Quality fournit des métriques sur l’intégrité du code de vos référentiels. Consultez « À propos de la qualité du code sur GitHub ».

Étapes suivantes

Découvrez comment votre entreprise peut utiliser le journal d’audit pour surveiller les modifications apportées aux paramètres de configuration et à l’attribution de licence. Consultez « Examen des journaux d’audit pour GitHub Copilot ».