Skip to main content

Configuration de la configuration par défaut pour l’analyse du code

Vous pouvez configurer la configuration avancée d'un référentiel pour trouver les vulnérabilités de sécurité dans votre code à l'aide d'une configuration code scanning hautement personnalisable.

Qui peut utiliser cette fonctionnalité ?

Propriétaires de référentiels, propriétaire d’organisations, gestionnaires de sécurité et utilisateurs avec le rôle d’administrateur

Référentiels appartenant à l’organisation avec GitHub Advanced Security activé

Remarque : Votre administrateur de site doit activer l’code scanning avant de pouvoir utiliser cette fonctionnalité. Si vous souhaitez utiliser GitHub Actions pour analyser votre code, l’administrateur de site doit également activer GitHub Actions et configurer l’infrastructure nécessaire. Pour plus d’informations, consultez « Configuration de l’analyse de code pour votre appliance ».

À propos de la configuration avancée pour code scanning

La configuration avancée de l’code scanning est utile quand vous devez personnaliser votre code scanning. En créant et en modifiant un fichier de workflow, vous pouvez définir le mode de génération de langages compilés, choisir les requêtes à exécuter, sélectionner les langages à analyser, utiliser une génération matricielle, etc. Vous avez également accès à toutes les options de contrôle des workflows, par exemple : modification de la planification de l’analyse, définition de déclencheurs de workflow, spécification d’exécuteurs spécialisés à utiliser. Pour plus d’informations sur les workflows GitHub Actions, consultez « À propos des workflows ».

Votre administrateur de site peut également mettre des actions tierces à la disposition des utilisateurs pour l’code scanning, en configurant GitHub Connect. Pour plus d’informations, consultez « Configuration de l’analyse de code pour votre appliance ».

Si vous exécutez l’analyse du code en utilisant plusieurs configurations, il arrive qu’une alerte ait plusieurs origines d’analyse. Si une alerte a plusieurs origines d’analyse, vous pouvez afficher l’état de l’alerte pour chaque origine d’analyse sur la page de l’alerte. Pour plus d’informations, consultez « À propos des alertes d’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 Enterprise Server. 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. Pour plus d’informations sur l’utilisation de la dernière version, consultez « Configuration de l’analyse de code pour votre appliance ».

Si vous n’avez pas besoin d’une configuration d’code scanning hautement personnalisable, envisagez d’utiliser la configuration par défaut de l’code scanning. Pour plus d’informations sur le droit à la configuration par défaut, consultez « Définition de la configuration par défaut pour l’analyse du code ».

Prérequis

Votre référentiel est éligible à la configuration avancée s'il remplit ces conditions.

  • Il utilise des langages pris en charge par CodeQL ou vous prévoyez de générer des résultats d’analyse de code avec un outil tiers.
  • GitHub Actions est activé.
  • GitHub Advanced Security est activé.

Si le serveur sur lequel vous exécutez GitHub Enterprise Server n’est pas connecté à Internet, votre administrateur de site peut activer l’code scanning CodeQL en rendant le bundle d’analyse CodeQL disponible sur le serveur. Pour plus d’informations, consultez « Configuration de l’analyse de code pour votre appliance ».

Définition de la configuration avancée pour l’code scanning avec CodeQL

Vous pouvez personnaliser votre analyse CodeQL en créant et en modifiant un fichier de workflow. La sélection d’une configuration avancée génère un fichier de workflow de base pour vous permettre de personnaliser à l’aide de la syntaxe de workflow standard et de spécifier des options pour l’action CodeQL. Consultez « À propos des workflows » et « Personnalisation de votre configuration avancée pour l’analyse de code. »

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.

  3. Dans la section « Sécurité » de la barre latérale, cliquez sur Sécurité et analyse du code.

  4. Faites défiler jusqu’à la section « Code scanning », sélectionnez Configuration , puis cliquez sur Avancé.

    Remarque : Si vous passez de la configuration par défaut à la configuration avancée, dans la section « Code scanning », sélectionnez, puis cliquez sur Passer au mode avancé. Dans la fenêtre indépendante qui s’affiche, cliquez sur Désactiver CodeQL .

    Capture d’écran de la section « Code scanning » des paramètres « Sécurité et analyse du code ». Le bouton « Configuration avancée » est mis en évidence à l’aide d’un rectangle orange.

  5. 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 votre configuration avancée pour l’analyse de code » et « Analyse du code CodeQL pour les langages compilés ».

  6. Cliquez sur Commiter les changements... pour afficher le formulaire de commit des changements.

    Capture d’écran du formulaire pour créer un nouveau fichier. À droite du nom du fichier, un bouton vert intitulé « Commiter les changements... » est encadré en orange foncé.

  7. Dans le champ de message de commit, tapez un message de commit.

  8. Indiquez si vous voulez commiter directement dans la branche par défaut ou créer une branche et démarrer une demande de tirage (pull request).

  9. Cliquez sur Commiter le nouveau fichier pour commiter le fichier de workflow dans la branche par défaut ou sur Proposer un nouveau fichier pour commiter le fichier dans une nouvelle branche.

  10. Si vous avez créé une branche, cliquez sur Créer une demande de tirage et ouvrez une demande de tirage pour fusionner votre changement dans la branche par défaut.

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. Consultez « Personnalisation de votre configuration avancée pour l’analyse de code » et « Déclenchement d’un workflow. »

Pour plus d’informations sur l’activation en bloc, consultez « Définition de la configuration avancée pour l’analyse du code avec CodeQL à grande échelle ».

Étapes suivantes

Une fois que votre workflow fonctionne bien au moins une fois, vous pouvez commencer à examiner et à résoudre les alertes d’code scanning. Pour plus d’informations sur les alertes générées par l’code scanning, consultez « À propos des alertes d’analyse du code » et « Évaluation des alertes d’analyse du code pour votre référentiel ».

Découvrez comment l’code scanning exécute des vérifications de comportement sur les demandes de tirage, consultez « Triage des alertes d’analyse du code dans les demandes de tirage (pull request) ».

Vous trouverez des informations détaillées sur votre configuration d’code scanning, notamment des horodatages pour chaque analyse et le pourcentage de fichiers analysés, dans la page d’état de l’outil. Pour plus d’informations, consultez « À propos de la page d’état de l’outil pour l’analyse du code ».

Pour aller plus loin