Action GitHub pour l'exécution de l'analyse statique de Codacy sur plus de 40 langues prises en charge et renvoyant des problèmes identifiés dans le code.
Codacy est un outil de révision de code automatisé qui permet de s'assurer que votre équipe écrit du code de haute qualité en analysant plus de 40 langages de programmation tels que PHP, JavaScript, Python, Java et Ruby. Codacy vous permet de définir vos propres règles de qualité, modèles de code et paramètres de qualité que vous souhaitez appliquer pour éviter les problèmes de votre base de code.
L'action Codacy GitHub prend en charge les scénarios suivants:
Par défaut, l'action Codacy GitHub:

Pour utiliser l'action GitHub avec les paramètres par défaut, ajoutez ce qui suit à un fichier .github/workflows/codacy-analysis.yaml dans votre référentiel:
name : Codacy Analysis CLI
on : ["push"]
jobs :
codacy-analysis-cli :
name : Codacy Analysis CLI
runs-on : ubuntu-latest
steps :
- name : Checkout code
uses : actions/checkout@main
- name : Run Codacy Analysis CLI
uses : codacy/codacy-analysis-cli-action@master Intégrez l'action CODACY GITHUB avec la numérisation du code GitHub pour afficher les résultats de l'analyse sur votre référentiel sous les alertes Sécurité de l'onglet, Code de page.
Dans ce scénario, l'action GitHub:
master ou main en exécutant tous les outils d'analyse de code statique pris en charge pour les langages trouvés dans votre référentiel.results.sarif , qui est ensuite téléchargé sur github. 
Pour utiliser l'action GitHub avec l'intégration de balayage de code GitHub, ajoutez ce qui suit à un fichier .github/workflows/codacy-analysis.yaml dans votre référentiel:
name : Codacy Security Scan
on :
push :
branches : [ "master", "main" ]
pull_request :
branches : [ "master", "main" ]
jobs :
codacy-security-scan :
name : Codacy Security Scan
runs-on : ubuntu-latest
steps :
- name : Checkout code
uses : actions/checkout@main
- name : Run Codacy Analysis CLI
uses : codacy/codacy-analysis-cli-action@master
with :
output : results.sarif
format : sarif
# Adjust severity of non-security issues
gh-code-scanning-compat : true
# Force 0 exit code to allow SARIF file generation
# This will hand over control about PR rejection to the GitHub side
max-allowed-issues : 2147483647
# Upload the SARIF file generated in the previous step
- name : Upload SARIF results file
uses : github/codeql-action/upload-sarif@main
with :
sarif_file : results.sarif Utilisez l'action GitHub pour exécuter l'un des outils côté client conteneurisé pris en charge par Codacy et téléchargez les résultats de l'analyse sur Codacy.
Dans ce scénario, l'action GitHub:
Après cela, Codacy affiche les résultats de l'analyse de vos commandes et des demandes de traction sur les tableaux de bord de l'interface utilisateur, et rapporte éventuellement l'état de l'analyse directement sur vos demandes de traction GitHub.

Pour utiliser l'action GitHub avec l'intégration de Codacy:
Sur Codacy, activez l'outil côté client conteneurisé et configurez les modèles de code correspondants sur votre page de modèles de code de référentiel.
Sur Codacy, activez l'analyse d'exécution via Build Server dans vos paramètres de référentiel, TAB Général , analyse du référentiel .
Ce paramètre permet à Codacy d'attendre les résultats de l'analyse locale avant de reprendre l'analyse de vos commits.
Configurez un jeton API pour permettre à l'action GitHub de s'authentifier sur Codacy:
CODACY_PROJECT_TOKEN .CODACY_API_TOKEN .
️ N'écrivez jamais de jetons API sur vos fichiers de configuration et gardez vos jetons API bien protégés, car ils accordent des autorisations propriétaires à vos projets sur Codacy.
Ajoutez ce qui suit dans un fichier .github/workflows/codacy-analysis.yaml dans votre référentiel, où <CLIENT_SIDE_TOOL_NAME> est le nom de l'outil côté client conteneurisé que la CODACY Analysis CLI s'exécutera localement, ou ne spécifiez pas ce paramètre pour exécuter tous les outils pris en charge par Codacy: CODACY:
name : Codacy Analysis CLI
on : ["push"]
jobs :
codacy-analysis-cli :
name : Codacy Analysis CLI
runs-on : ubuntu-latest
steps :
- name : Checkout code
uses : actions/checkout@main
- name : Run Codacy Analysis CLI
uses : codacy/codacy-analysis-cli-action@master
with :
tool : <CLIENT_SIDE_TOOL_NAME>
project-token : ${{ secrets.CODACY_PROJECT_TOKEN }}
# or
# api-token: ${{ secrets.CODACY_API_TOKEN }}
upload : true
max-allowed-issues : 2147483647Si vous exécutez un outil côté client GO, vous devez également configurer l'environnement GO avant d'exécuter l'action CLI GitHub d'analyse de codacy. Nous vous recommandons d'utiliser l'action GitHub de configuration pour ceci:
- name : set-up go
uses : actions/setup-go@v3
with :
# Go version currently supported by Codacy
go-version : 1.19.1Éventuellement, spécifiez les paramètres suivants pour exécuter des outils côté client autonome :
run-gosec : " true "
run-staticcheck : " true "En raison de l'orchestration complexe des outils Clang-Tidy et Faux PAS, l'action peut recevoir à la place les fichiers de sortie des outils et les télécharger à Codacy:
clang-tidy-output : " path/to/output "
faux-pas-output : " path/to/output "Si vous souhaitez uniquement exécuter les outils côté client autonome et tous les outils conteneurisés pris en charge par Codacy, spécifiez:
run-docker-tools : " false "Facultativement, activez l'intégration GitHub sur Codacy pour avoir des informations sur l'analyse des fichiers modifiés directement sur vos demandes de traction.
L'action de Codacy Github est un emballage pour exécuter la CODACY Analysis CLI. Pour une liste des paramètres d'entrée pris en charge, voir action.yml . Pour transmettre les paramètres d'entrée à l'action, mettez à jour l'Associé with la carte.
L'exemple suivant limite l'analyse à un répertoire src et fournit des détails supplémentaires en définissant verbose à true .
- name : Run Codacy Analysis CLI
uses : codacy/codacy-analysis-cli-action@master
with :
directory : src
verbose : true Nous aimons les contributions, les commentaires et les rapports de bogues. Si vous rencontrez des problèmes lors de l'exécution de cette action, ouvrez un problème dans ce référentiel.