Fournisseurs de CI génériques

Profitez de l'aperçu !

L'aperçu de Code Analysis est disponible.

Code Analysis n'est pas disponible pour le site .

Présentation

Si vous n’utilisez pas CircleCI Orbs ou GitHub Actions, vous pouvez exécuter la CLI Datadog directement dans votre plateforme de pipeline CI.

Prérequis :

  • unzip
  • Node.js 14 ou version ultérieure

Configurez les variables d’environnement suivantes :

NomDescriptionObligatoireValeur par défaut
DD_API_KEYVotre clé API Datadog. Cette clé est créée par votre organisation Datadog et doit être stockée en tant que secret.Oui
DD_APP_KEYVotre clé d’application Datadog. Cette clé, créée par votre organisation Datadog, doit inclure la portée code_analysis_read et être stockée en tant que secret.Oui
DD_SITELe site Datadog auquel envoyer les informations. Votre site Datadog est .Nondatadoghq.com

Fournissez les entrées suivantes :

NomDescriptionObligatoireValeur par défaut
serviceLe nom du service avec lequel taguer les résultats.Oui
envL’environnement avec lequel taguer les résultats. ci est une valeur utile pour cette entrée.Nonnone
cpu_countDéfinir le nombre de CPU utilisés par l’analyseur. Par défaut, correspond au nombre de CPU disponibles.Non
subdirectoryLe chemin du sous-répertoire auquel l’analyse doit être limitée. Le chemin est relatif au répertoire racine du référentiel.Non

Pour obtenir des statistiques de temps d’exécution pour les fichiers analysés, ajoutez un flag --performance-statistics à votre commande d’analyse statique.

Sélectionnez un analyseur pour votre architecture et votre système d’exploitation parmi les options suivantes :

ArchitectureSystème d’exploitationNomLien
aarch64Darwindatadog-static-analyzer-aarch64-apple-darwin.zipTélécharger
aarch64Linuxdatadog-static-analyzer-aarch64-unknown-linux-gnu.zipTélécharger
x86_64Darwindatadog-static-analyzer-x86_64-apple-darwin.zipTélécharger
x86_64Linuxdatadog-static-analyzer-x86_64-unknown-linux-gnu.zipTélécharger
x86_64Windowsdatadog-static-analyzer-x86_64-pc-windows-msvc.zipTélécharger

Ajoutez ce qui suit à votre pipeline CI :

# Set the Datadog site to send information to
export DD_SITE="datadoghq.com"

# Install dependencies
npm install -g @datadog/datadog-ci

# Download the latest Datadog static analyzer:
# https://github.com/DataDog/datadog-static-analyzer/releases
DATADOG_STATIC_ANALYZER_URL=https://github.com/DataDog/datadog-static-analyzer/releases/latest/download/datadog-static-analyzer-x86_64-unknown-linux-gnu.zip
curl -L $DATADOG_STATIC_ANALYZER_URL > /tmp/ddog-static-analyzer.zip
unzip /tmp/ddog-static-analyzer.zip -d /tmp
mv /tmp/datadog-static-analyzer /usr/local/datadog-static-analyzer

# Run Static Analysis
/usr/local/datadog-static-analyzer -i . -o /tmp/report.sarif -f sarif

# Upload results
datadog-ci sarif upload /tmp/report.sarif
Cet exemple utilise la version x86_64 Linux de l'analyseur statique Datadog. Si vous utilisez un autre système d'exploitation ou une autre architecture, vous devez le sélectionner dans le tableau ci-dessus et mettre à jour la valeur DATADOG_STATIC_ANALYZER_URL ci-dessous. Vous pouvez consulter toutes les versions sur la page GitHub Releases.

Analyse différentielle

L’analyse différentielle est une fonctionnalité qui permet à Datadog Static Analysis d’analyser uniquement les fichiers modifiés par un commit dans une branche de fonctionnalité. Elle accélère considérablement le temps d’analyse en évitant d’exécuter l’analyse sur tous les fichiers du référentiel à chaque analyse. La première analyse effectuée, ainsi que les analyses de branche par défaut, produisent toujours une analyse du référentiel complet (non différentielle).

Si vous utilisez GitHub Actions, l’analyse différentielle est activée par défaut.

Pour les autres fournisseurs CI, suivez ces étapes pour activer l’analyse différentielle :

  1. Assurez-vous que vos variables DD_APP_KEY, DD_SITE et DD_API_KEY sont définies dans votre pipeline CI.
  2. Ajoutez un appel à datadog-ci git-metadata upload avant d’invoquer l’analyseur statique. Cette commande garantit que les métadonnées Git sont disponibles pour le backend Datadog. Les métadonnées Git sont nécessaires pour calculer le nombre de fichiers à analyser.
  3. Assurez-vous que datadog-static-analyzer est invoqué avec le flag --diff-aware.

Exemple de séquence de commandes (ces commandes doivent être invoquées dans votre référentiel Git) :

datadog-ci git-metadata upload

datadog-static-analyzer -i /path/to/directory -g -o sarif.json -f sarif –-diff-aware <...other-options...>

Remarque : lorsqu’une analyse différentielle ne peut pas être effectuée, l’intégralité du répertoire est analysée.

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles: