Skip to main content
Nous publions des mises à jour fréquentes de notre documentation, et la traduction de cette page peut encore être en cours. Pour obtenir les informations les plus actuelles, consultez la documentation anglaise.
GitHub AE est actuellement en version limitée.

Configuration de l’analyse du code pour un référentiel

Vous pouvez configurer l’code scanning pour un référentiel afin de trouver les failles de sécurité présentes dans votre code.

Qui peut utiliser cette fonctionnalité

If you have write permissions to a repository, you can configure code scanning for that repository.

Code scanning est disponible pour les dépôts appartenant à l’organisation dans GitHub AE. Il s’agit d’une fonctionnalité de GitHub Advanced Security (gratuite avec la version bêta). Pour plus d’informations, consultez « À propos de GitHub Advanced Security ».

Options pour la configuration de l’code scanning

Vous décidez comment générer les alertes d’code scanning et quels outils utiliser, au niveau d’un dépôt. GitHub AE fournit une prise en charge entièrement intégrée de l’analyse CodeQL et prend également en charge l’analyse avec des outils tiers. Pour plus d’informations, consultez les puces suivantes et « À propos de l’analyse du code ».

Remarque : Cet article décrit les fonctionnalités disponibles avec la version de l’action CodeQL et le bundle CodeQL CLI associé inclus dans la mise en production initiale de cette version de GitHub AE. Si votre entreprise utilise une version plus récente de l’action CodeQL, consultez la version GitHub Enterprise Cloud de cet article pour obtenir plus d’informations sur les dernières fonctionnalités.

Prérequis

Avant de configurer l’code scanning pour un référentiel, vous devez vous assurer qu’au moins un exécuteur GitHub Actions auto-hébergé est disponible pour le référentiel.

Les propriétaires d’entreprise et les administrateurs d’organisation et de dépôt peuvent ajouter des exécuteurs auto-hébergés. Pour plus d’informations, consultez « À propos des exécuteurs auto-hébergés » et « Ajout d’exécuteurs auto-hébergés ».

Configuration de l’code scanning manuellement

  1. Dans votre entreprise, accédez à la page principale du dépôt. 1. Sous le nom du dépôt, cliquez sur Sécurité. Onglet Sécurité

  2. À droite de « Alertes d’Code scanning », cliquez sur Configurer l’code scanning . Si « Alertes d’code scanning » n’est pas disponible, vous devez demander à un propriétaire d’organisation ou à un administrateur de dépôt d’activer GitHub Advanced Security. Pour plus d’informations, consultez « Gestion des paramètres de sécurité et d’analyse pour votre organisation » ou « Gestion des paramètres de sécurité et d’analyse pour votre dépôt ».

  3. Sous « Bien démarrer avec l’code scanning », cliquez sur Configurer ce workflow sur le Workflow d’analyse CodeQL ou sur un workflow tiers. Bouton « Configurer ce workflow » sous le titre « Bien démarrer avec l’code scanning »Les workflows s’affichent uniquement s’ils sont pertinents pour les langages de programmation détectés dans le dépôt. Le Workflow d’analyse CodeQL est toujours affiché, mais le bouton « Configurer ce workflow » n’est activé que si l’analyse CodeQL prend en charge les langages présents dans le dépôt.

  4. Pour personnaliser la façon dont l’code scanning analyse votre code, modifiez le workflow.

    En règle générale, vous pouvez commiter le Workflow d’analyse CodeQL sans apporter aucun changement à celui-ci. Toutefois, de nombreux workflows tiers nécessitent une configuration supplémentaire. Lisez donc les commentaires dans le workflow avant de commiter.

    Pour plus d’informations, consultez « Personnalisation de l’analyse du code ».

  5. Sélectionnez la liste déroulante Commencer le commit, puis tapez un message de commit. Commencer le commit

  6. Indiquez si vous souhaitez valider directement la branche par défaut ou créer une nouvelle branche et démarrer une requête de tirage (pull request). Choisir où effectuer le commit

  7. Cliquez sur Valider le nouveau fichier ou Proposer un nouveau fichier.

Dans le Workflow d’analyse CodeQL suggéré, l’code scanning est configurée pour analyser votre code chaque fois que vous poussez un changement vers la branche par défaut ou des branches protégées, ou que vous déclenchez une demande de tirage (pull request) sur la branche par défaut. En conséquence, l’code scanning commence.

Les déclencheurs on:pull_request et on:push pour l’analyse du code sont chacun utiles à des fins différentes. Pour plus d’informations, consultez « Personnalisation de l’analyse du code ».

Configuration en bloc de l’code scanning

Vous pouvez configurer l’code scanning dans de nombreux référentiels à la fois avec un script. Si vous souhaitez utiliser un script pour déclencher des demandes de tirage qui ajoutent un workflow GitHub Actions à plusieurs dépôts, consultez le dépôt jhutchings1/Create-ActionsPRs, pour obtenir un exemple utilisant PowerShell, ou nickliffen/ghas-enablement, pour les équipes qui n’ont pas PowerShell et qui souhaitent utiliser NodeJS.

Affichage de la sortie de journalisation de l’code scanning

Après avoir configuré l’code scanning pour votre référentiel, vous pouvez regarder la sortie des actions à mesure qu’elles s’exécutent.

  1. Sous le nom de votre référentiel, cliquez sur Actions. Onglet Actions dans le volet de navigation du dépôt principal

    La liste qui apparaît inclut une entrée pour l’exécution du workflow d’code scanning. Le texte de l’entrée est le titre que vous avez donné à votre message de commit.

    Liste d’actions montrant le workflow d’code scanning

  2. Cliquez sur l’entrée du workflow d’code scanning.

  3. Cliquez sur le nom du travail sur la gauche. Par exemple, Analyser (LANGAGE) .

    Sortie du journal du workflow d’code scanning

  4. Passez en revue la sortie de la journalisation des actions de ce workflow à mesure qu’elles s’exécutent.

  5. Une fois tous les travaux terminés, vous pouvez afficher les détails de toutes les alertes de l’code scanning qui ont été identifiées. Pour plus d’informations, consultez « Gestion des alertes d’analyse du code pour votre référentiel ».

Remarque : Si vous avez déclenché une demande de tirage pour ajouter le workflow d’code scanning au dépôt, les alertes de cette demande de tirage ne s’affichent directement dans la page Code scanning qu’une fois la demande de tirage fusionnée. Si des alertes ont été trouvées, vous pouvez les voir, avant la fusion de la demande de tirage, en cliquant sur le lien NOMBRE alertes trouvées dans la bannière de la page Code scanning.

Cliquez sur le lien « n alertes trouvées »

Présentation des vérifications des demandes de tirage

Pour chaque workflow d’code scanning configuré pour s’exécuter sur les demandes de tirage, il existe toujours au moins deux entrées dans la section des vérifications d’une demande de tirage. Il existe une entrée pour chacun des travaux d’analyse dans le workflow et une entrée finale pour les résultats de l’analyse.

Les noms des vérifications d’code scanning ont la forme suivante : « NOM DE L’OUTIL / NOM DU TRAVAIL (DÉCLENCHEUR) ». Par exemple, pour CodeQL, l’analyse du code C++ contient l’entrée « CodeQL / Analyser (cpp) (pull_request) ». Vous pouvez cliquer sur Détails sur une entrée d’code scanning pour afficher les données de journalisation. Ainsi, vous pouvez déboguer un problème si le travail d’analyse a échoué. Par exemple, pour l’code scanning des langages compilés, cela peut se produire si l’action ne peut pas générer le code.

Vérifications des demandes de tirage pour l’code scanning

Pendant l’exécution des travaux d’code scanning, GitHub détermine si des alertes ont été ajoutées par la demande de tirage et ajoute l’entrée « Résultats de l’Code scanning / NOM DE L’OUTIL » à la liste des vérifications. Après que l’code scanning a été effectuée au moins une fois, vous pouvez cliquer sur Détails pour afficher les résultats de l’analyse.

Si vous avez utilisé une demande de tirage pour ajouter l’code scanning au dépôt, vous voyez d’abord un message « Analyse introuvable » quand vous cliquez sur Détails dans la vérification « Résultats de l’Code scanning / TOOL NAME ».

Analyse introuvable pour le message de commit

Le tableau liste une ou plusieurs catégories. Chaque catégorie est liée à des analyses spécifiques, pour le même outil et le même commit, effectuées sur un langage différent ou une partie différente du code. Pour chaque catégorie, le tableau affiche les deux analyses que l’code scanning a tenté de comparer pour déterminer quelles alertes ont été introduites ou corrigées dans la demande de tirage.

Par exemple, dans la capture d’écran ci-dessus, l’code scanning a trouvé une analyse pour le commit de fusion de la demande de tirage, mais aucune analyse pour la tête de la branche primaire.

Raisons du message « Analyse introuvable »

Une fois que l’code scanning a analysé le code dans une demande de tirage, elle doit comparer l’analyse de la branche de rubrique (branche que vous avez utilisée pour créer la demande de tirage) avec l’analyse de la branche de base (branche dans laquelle vous souhaitez fusionner la demande de tirage). Ainsi, l’code scanning peut calculer les alertes nouvellement introduites par la demande de tirage, les alertes qui étaient déjà présentes dans la branche de base et déterminer si des alertes existantes sont corrigées par les modifications apportées dans la demande de tirage. Au départ, si vous utilisez une demande de tirage pour ajouter l’code scanning à un dépôt, la branche de base n’a pas encore été analysée. Il n’est donc pas possible de calculer ces détails. Dans ce cas, quand vous cliquez dans la vérification des résultats de la demande de tirage, vous voyez le message « Analyse introuvable ».

Il existe d’autres situations où il peut ne pas y avoir d’analyse pour le dernier commit dans la branche de base pour une demande de tirage. notamment :

  • La demande de tirage a été déclenchée sur une branche autre que la branche par défaut et cette branche n’a pas été analysée.

    Pour vérifier si une branche a été analysée, accédez à la page Code scanning, cliquez sur la liste déroulante Branche et sélectionnez la branche appropriée.

    Choisir une branche dans le menu déroulant Branche

    Dans cette situation, la solution consiste à ajouter le nom de la branche de base à la spécification on:push et on:pull_request dans le workflow d’code scanning sur cette branche, puis à apporter une modification qui met à jour la demande de tirage ouverte que vous souhaitez analyser.

  • L’analyse n’est pas encore disponible, car le dernier commit sur la branche de base pour la demande de tirage est en cours d’analyse.

    Attendez quelques minutes, puis poussez une modification vers la demande de tirage pour redéclencher l’code scanning.

  • Une erreur s’est produite lors de l’analyse du dernier commit sur la branche de base et l’analyse de ce commit n’est pas disponible.

    Fusionnez une modification triviale dans la branche de base pour déclencher l’code scanning sur ce dernier commit, puis poussez une modification vers la demande de tirage pour redéclencher l’code scanning.

Étapes suivantes

Après avoir configuré l’code scanning et autorisé ses actions, vous pouvez :