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.

Phase 5 : Déployer et mettre à l’échelle l’analyse du code

Vous pouvez tirer parti des API disponibles pour déployer l’code scanning par programmation par équipe et par langage dans votre entreprise à l’aide des données de dépôt que vous avez collectées précédemment.

Cet article fait partie d’une série sur l’adoption de GitHub Advanced Security à grande échelle. Pour l’article précédent de cette série, consultez « Phase 4 : Créer une documentation interne ».

Activation de l’analyse du code

À l’aide des données compilées lors de la Phase 2, vous pouvez commencer à activer GHAS, puis l’code scanning sur vos dépôts, un langage à la fois. Le processus pas à pas pour activer GHAS doit ressembler à ceci :

  1. Activez GHAS sur le dépôt. Pour plus d’informations, consultez « Gestion des paramètres de sécurité et d’analyse pour votre dépôt ».
  2. Créez une demande de tirage sur la branche par défaut du dépôt avec un fichier codeql-analysis.yml contenant un exemple d’exécution de CodeQL pour ce langage. Pour plus d’informations, consultez « Création d’une demande de tirage ».
  3. Créez un problème dans le dépôt pour expliquer pourquoi une demande de tirage a été déclenchée. Le problème que vous créez peut contenir un lien vers la communication précédente envoyée à tous les utilisateurs, mais peut également expliquer les modifications introduites par la demande de tirage, les étapes suivantes que l’équipe doit effectuer, les responsabilités de l’équipe et la façon dont l’équipe doit utiliser l’code scanning. Pour plus d’informations, consultez « Création d’un problème ».

Il existe un outil disponible publiquement, nommé outil ghas-enablement, qui effectue les deux premières étapes. Vous pouvez réexécuter l’outil ghas-enablement dans des lots par langage là où il est logique de le faire. Par exemple, JavaScript, TypeScript, Python et Go ont probablement un processus de génération similaire, et pourraient donc utiliser un fichier d’analyse CodeQL similaire. L’outil ghas-enablement peut également être utilisé pour des langages tels que Java, C et C++, mais en raison de la nature variée dont ces langages créent et compilent, vous devrez peut-être créer des fichiers d’analyse CodeQL plus ciblés.

Remarque : Si vous envisagez d’utiliser GitHub Actions pour contrôler les données d’code scanning et que vous n’utilisez pas l’outil ghas-enablement, gardez à l’esprit qu’il n’existe aucun accès API au répertoire .github/workflow. Cela signifie que vous ne pouvez pas créer de script sans client Git sous-jacent à l’automatisation. La solution de contournement consiste à tirer parti d’un script bash sur un ordinateur ou un conteneur qui a un client Git. Le client Git peut pousser et extraire des fichiers dans le répertoire .github/workflows où se trouve le fichier codeql-analysis.yml.

Il est important de ne pas simplement pousser le fichier codeql-analysis.yml vers la branche par défaut du dépôt. L’utilisation d’une demande de tirage implique qu’il est de la responsabilité de l’équipe de développement de passer en revue et de fusionner, ce qui permet à l’équipe de développement d’en apprendre davantage sur l’code scanning et d’impliquer l’équipe dans le processus.

Vous devez capturer les URL des demandes de tirage créées par automatisation, vérifier l’activité chaque semaine et voir celles qui sont fermées. Après quelques semaines, il peut être utile de créer un autre problème ou d’envoyer des e-mails internes si la demande de tirage reste non fusionnée.

Création d’experts techniques

Vous pouvez ensuite passer à l’étape suivante de l’activation, qui consiste à créer des experts techniques internes (ou SME) et à organiser des réunions d’entreprise. L’ouverture de demandes de tirage et de problèmes dans les dépôts permettra probablement de traiter un large pourcentage de votre adoption, mais pas les cas d’usage ponctuels où un processus de génération, un framework ou une bibliothèque spécifique a besoin de l’activation d’indicateurs de fonctionnalités spécifiques. Une approche plus personnalisée et pratique est nécessaire pour encourager une adoption élevée, en particulier pour Java, C et C++.

Il est judicieux de tenir des réunions régulières sur des sujets spécifiques, afin d’éduquer et de discuter du déploiement avec un groupe plus important. Cela est beaucoup plus efficace du point de vue de la gestion du temps pour une entreprise ayant des milliers de dépôts, par rapport à la collaboration avec une équipe à la fois. Les équipes peuvent venir aux sessions qui les concernent. Voici quelques exemples de sessions possibles :

  • Code scanning dans un conteneur
  • Code scanning et Java Struts
  • Code scanning et JSP

Vous pouvez utiliser les données que vous avez collectées sur la distribution des différents langages parmi les dépôts pour créer des réunions ciblées.

Pour l’article suivant de cette série, consultez « Phase 6 : Déployer et mettre à l’échelle l’analyse des secrets ».