Interface de ligne de commande pour exécuter l'analyse du code de codacy localement.
Avec une seule commande, vous pouvez:
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli- * && sudo make installUne fois les pré-réquisites remplies, il est temps d'activer la connectivité entre Bash et Docker.
Il est obligatoire que le démon est exposé sans TLS. Pour ce faire, allez aux paramètres Docker -> Général. Cliquez simplement sur la case à cocher avec l'étiquette 'Expose Daemon sur TCP: // LocalHost: 2375 sans TLS' et Docker se rechargeront.
Il est maintenant temps d'aller à la fête et d'installer et de configurer le client Docker.
Si vous utilisez Windows 10 (Build ci-dessus 1803), la commande suivante mettra le client Docker disponible à partir de Bash sudo ln -s "/mnt/c/Program Files/Docker/Docker/resources/bin/docker.exe" /usr/local/bin/docker
Si vous utilisez une version précédente de Windows 10, vous pouvez suivre un tutoriel très facile à suivre.
Puisque vous utilisez le WSL, la variable docker_host doit être configurée sur tcp://0.0.0.0:2375 , afin de le faire, tapez simplement la commande suivante sur le bash
export DOCKER_HOST=tcp://0.0.0.0:2375
Il est également possible d'ajouter cette variable à vos fichiers .bashrc ou .bash_profile afin que la variable soit toujours prête lorsque vous commencez le bash
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bash_profile
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bashrc
Si vous utilisez Apple Silicon, assurez-vous de:
Use Rosetta for x86/amd64 emulation on Apple Silicon (sous les fonctionnalités en développement ) À ce stade, Codacy-Analysis-CLI est prêt à être installé.
Dans Bash, accédez au dossier dans lequel vous souhaitez télécharger l'outil et tapez les commandes suivantes:
sudo apt-get install make
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli-*
Encore une fois, en raison de l'utilisation du WSL, il est obligatoire d'ajouter les deux lignes en surbrillance au Makefile dans ce répertoire.
Avant la section de test :
export DOCKER_HOST=tcp://0.0.0.0:2375
et, dans l' installation , section:
docker login
Enfin, tapez simplement la commande suivante et l'installation commencera
sudo make install
Lorsque le nom d'utilisateur de Docker est requis, assurez-vous d'écrire le nom d'utilisateur et non l'e-mail, car selon la façon dont vous avez créé votre compte Docker, ils pourraient être différents.
codacy-analysis-cli analyze
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > java -jar codacy-analysis-cli-assembly-{VERSION}.jar analyze
--tool <TOOL-SHORT-NAME>
--directory <SOURCE-CODE-PATH>
# other options
sbt " codacyAnalysisCli/runMain com.codacy.analysis.cli.Main analyze --tool <TOOL-SHORT-NAME> --directory <SOURCE-CODE-PATH> "docker run
--rm=true
--env CODACY_CODE= " $CODACY_CODE "
--volume /var/run/docker.sock:/var/run/docker.sock
--volume " $CODACY_CODE " : " $CODACY_CODE "
--volume /tmp:/tmp
codacy/codacy-analysis-cli
analyze --tool < TOOL-SHORT-NAME >Le format par défaut pour la sortie CLI est du texte et est divisé en 3 catégories:
Problèmes rapportés par les outils qui varient entre 3 niveaux différents ( Error , Warning et Info ). Exemple:
Found [Error] `Expected "#E1675A" to be "#e1675a" (color-hex-case)` in styles/variables.less:4 (Stylelint_color-hex-case)
Found [Warning] `'object short notation' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).` in scripts/main.js:28 (iterator)
Found [Info] `Missing semicolon.` in views/components/Progress.jsx:18 (asi)
Les données de métriques sont imprimées pour chaque fichier et contient 5 types de données:
LOC - lignes de codeCLOC - lignes de code commentéesCC - complexité cyclomatique#methods - Nombre de méthodes#classes - Nombre de classesExemple:
Found [Metrics] in generic/Test.java:
CC - 33
LOC - 778
CLOC - 864
#methods - 3
#classes - 1
Chaque clone trouvé est imprimé avec des informations sur le nombre total de lignes, le nombre de jetons et toutes les occurrences (les lignes où elles commencent et où elles se terminent). Exemple:
Found [Clone] 7 duplicated lines with 10 tokens:
generic/test.rb
l. 681 - 687
l. 693 - 699
generic/another_test.rb
l. 601 - 607
l. 193 - 199
analyze - Exécutez une analyse de codacy sur un répertoire / fichiers--help - Affiche toutes les options de configuration, leur signification et leurs valeurs possibles.--verbose - Exécutez l'outil avec une sortie verbale--tool - Choisissez l'outil pour analyser le code (par exemple Brakeman) ou "Metrics", "Duplication", "Issues" pour exécuter uniquement une catégorie d'outils spécifique--directory - Choisissez le répertoire à analyser--codacy-api-base-url ou env. CODACY_API_BASE_URL - Modifiez l'URL de l'API d'installation de Codacy pour récupérer la configuration (par exemple, l'installation d'entreprise)--output - Envoyez les résultats de sortie à un fichier--format [par défaut: texte] - Modifiez le format de sortie (par exemple JSON)--commit-uuid [Par défaut: le dernier engagement de la branche GIT actuelle] - Définissez le commit uuid qui recevra les résultats sur Codacy--skip-commit-uuid-validation [par défaut: False] - Force Utilisation d'un UUID de validation même s'il n'appartient pas à la branche GIT actuelle.--skip-uncommitted-files-check [par défaut: false] - Sautez la vérification des fichiers non engagés dans le répertoire d'analyse--upload [par défaut: false] - Demande pour pousser les résultats vers la codacie--upload-batch-size [par défaut: 50000] - Nombre maximum de résultats dans chaque lot à télécharger sur Codacy--skip-ssl-verification [par défaut: FAUX] - Ignorez la vérification du certificat SSL lors de la communication avec l'API Codacy--parallel [par défaut: 2] - Nombre d'outils à exécuter en parallèle--max-allowed-issues [Par défaut: 0] - Nombre maximum de problèmes autorisés à réussir l'analyse--registry-address [par défaut: vide] - Adresse de registre alternative (par exemple artprod.mycompany /)--fail-if-incomplete [par défaut: false] - échouer à l'analyse si un outil ne parvient pas à s'exécuter--allow-network [par défaut: false] - permettez l'accès au réseau, donc les outils qui en ont besoin peuvent exécuter (par exemple, findbugs)--force-file-permissions [par défaut: FALSE] - Forcer les fichiers lisibles en modifiant les autorisations avant d'exécuter l'analyse--tool-timeout [par défaut: 15 minutes] - Temps maximum chaque outil doit exécuter (par exemple 15 minutes, 1 heure)--max-tool-memory [par défaut: 3G] - maximum de mémoire autorisée pour chaque exécution d'outil (en octets ou en utilisant la notation des indicateurs de limite de mémoire de Docker)--tmp-directory [Facultatif] - Répertoire temporaire à des fins d'analyse--gh-code-scanning-compat [par défaut: false] - Réduisez la gravité du problème par un niveau, pour les problèmes de non-sécurité , pour la compatibilité avec la fonction de numérisation de code de GitHub. Cette option n'aura un effet que lorsqu'elle est utilisée en conjonction avec --format sarif . Notez que dans ce cas, les mêmes problèmes du côté de la Codacy auront une priorité plus élevée.validate-configuration - Valider le fichier de configuration de Codacy--directory - Choisissez le répertoire où rechercher le fichier de configuration de CodacyCODACY_ANALYSIS_CLI_VERSION [par défaut: stable] - Définissez une version alternative de la CLI à exécuter. (Par exemple, le dernier, 0.1.0-alpha3.1350, ...)SKIP_CONTAINER_ENGINE_CHECK [par défaut: false] - Ignorez le test initial pour la présence de socket docker (utile lors de l'exécution dans des systèmes qui n'ont pas le socket docker disponible)Pour effectuer certaines configurations avancées, Codacy permet de créer un fichier de configuration. Consultez notre documentation pour plus de détails.
Pour exécuter localement la même analyse que Codacy dans votre code, vous pouvez demander à distance la configuration.
Voyez comment générer un jeton de projet.
️ AVERTISSEMENT: Pour des raisons de sécurité, nous vous recommandons de stocker votre jeton API de projet dans la variable d'environnement codacy_project_token au lieu de définir--project-token.
codacy-analysis-cli analyze
--project-token < PROJECT-TOKEN >
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > Voyez comment générer un jeton API de compte.
️ AVERTISSEMENT: Pour des raisons de sécurité, nous vous recommandons de stocker le jeton API de votre compte dans la variable d'environnement CODACY_API_TOKEN au lieu de définir--api-token.
Le fournisseur, le nom d'utilisateur et le nom du projet peuvent être récupérés de l'URL de Codacy.
codacy-analysis-cli analyze
--api-token < API-TOKEN >
--provider < PROVIDER >
--username < USERNAME >
--project < PROJECT-NAME >
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > Code
Remarque: - Les boucs émissaires s'exécutent pendant la compilation dans le test, pour le désactiver, définissez NO_SCAPEGOAT .
sbt compile
Tests
sbt test:compile
sbt testsbt scalafmtAll scalafmtSbtsbt dependencyUpdatessbt scapegoat
sbt scalafixsbt coverage test
sbt coverageReport
sbt coverageAggregate
export CODACY_PROJECT_TOKEN= " <TOKEN> "
sbt codacyCoverageLocale
sbt 'codacyAnalysisCli/stage'
docker build -t codacy-analysis-cli .
Locale
sbt 'set version in codacyAnalysisCore := "<VERSION>"' codacyAnalysisCore/publishLocal
Libérer
sbt 'set version in codacyAnalysisCore := "<VERSION>"' 'set pgpPassphrase := Some("<SONATYPE_GPG_PASSPHRASE>".toCharArray)' codacyAnalysisCore/publishSigned
sbt 'set version in codacyAnalysisCore := "<VERSION>"' sonatypeRelease
7.0.0 : Correction --parallel qui ne faisait pas réellement les outils en parallèle. Pour restaurer l'utilisation du comportement précédent --parallel 1
4.0.0 : Renommer analyse la commande pour analyze . Il s'agit d'un changement de rupture si vous exécutez la CLI en utilisant le JAR ou sbt , mais pas si vous utilisez le script fourni.
Codacy est une plate-forme qui surveille votre dette technique, vous aide à améliorer la qualité et la sécurité de votre code, enseigne les meilleures pratiques à vos développeurs et vous aide à gagner du temps dans les avis de code. Nous aidons les développeurs à expédier des milliards de lignes de code par jour en automatisant et standardisant les avis de code.
Intégrant de manière transparente dans les workflows, Codacy aide les équipes d'ingénierie à gagner du temps dans les avis de code et à trouver, à corriger et à empêcher les défauts de codage qui autrement accumuleraient la dette technique. Notre plateforme utilise l'intelligence artificielle pour suggérer des correctifs de qualité de code. Codacy prend en charge plus de 40 langues et frameworks et est disponible en open source gratuit.
Commencez un essai gratuit pour en savoir plus.
Codacy aide également à garder une trace de la couverture du code, de la duplication de code et de la complexité du code.
Codacy prend en charge PHP, Python, Ruby, Java, Javascript et Scala, entre autres.
Codacy est gratuite pour les projets open source.