Interface da linha de comando para executar a análise do código de codacia localmente.
Com um único comando você pode:
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli- * && sudo make installDepois que os pré-requisitos são atendidos, é hora de permitir a conectividade entre Bash e Docker.
É obrigatório que o daemon seja exposto sem TLS. Para fazer isso, vá para as configurações do Docker -> Geral. Basta clicar na caixa de seleção com o rótulo 'Expose Daemon no tcp: // localhost: 2375 sem tls' e o docker irão recarregar.
Agora é hora de ir ao Bash, instalar e configurar o cliente Docker.
Se você estiver usando o Windows 10 (construir acima de 1803), o comando a seguir disponibilizará o cliente do Docker no Bash sudo ln -s "/mnt/c/Program Files/Docker/Docker/resources/bin/docker.exe" /usr/local/bin/docker
Se você estiver usando uma versão anterior do Windows 10, aqui poderá encontrar um tutorial muito fácil a seguir.
Como você estará usando o WSL, a variável Docker_Host precisa ser configurada para tcp://0.0.0.0:2375 , para fazer isso, basta digitar o seguinte comando no Bash
export DOCKER_HOST=tcp://0.0.0.0:2375
Também é possível adicionar essa variável aos seus arquivos .bashrc ou .bash_profile, para que a variável esteja sempre pronta quando você iniciar a festa
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bash_profile
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bashrc
Se você estiver usando o Apple Silicon, certifique -se de:
Use Rosetta for x86/amd64 emulation on Apple Silicon (sob recursos no desenvolvimento ) Neste ponto, o codacy-análise-cli está pronto para ser instalado.
Em Bash, vá para a pasta em que deseja baixar a ferramenta e digite os seguintes comandos:
sudo apt-get install make
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli-*
Mais uma vez, devido ao uso do WSL, é obrigatório adicionar as duas linhas destacadas ao Makefile neste diretório.
Antes da seção de teste :
export DOCKER_HOST=tcp://0.0.0.0:2375
e, na instalação , seção:
docker login
Finalmente, basta digitar o seguinte comando e a instalação começará
sudo make install
Quando o nome de usuário do Docker for necessário, escreva o nome de usuário e não o e-mail, porque, dependendo de como você criou sua conta do Docker, eles podem ser diferentes.
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 >O formato padrão para a saída da CLI é o texto e é dividido em 3 categorias:
Questões relatadas pelas ferramentas que variam entre 3 níveis diferentes ( Error , Warning e Info ). Exemplo:
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)
Os dados de métricas são impressos para cada arquivo e contêm 5 tipos de dados:
LOC - linhas de códigoCLOC - linhas de código comentadasCC - Complexidade ciclomática#methods - Número de métodos#classes - Número de classesExemplo:
Found [Metrics] in generic/Test.java:
CC - 33
LOC - 778
CLOC - 864
#methods - 3
#classes - 1
Cada clone encontrado é impresso com informações sobre o número total de linhas, número de tokens e todas as ocorrências (as linhas onde iniciam e onde termina). Exemplo:
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 - Execute uma análise de codacia em um diretório/arquivos--help -Exibe todas as opções de configuração, seu significado e valores possíveis.--verbose -Execute a ferramenta com saída detalhada--tool -Escolha a ferramenta para analisar o código (por exemplo, Brakeman), ou "Métricas", "Duplicação", "Problemas" para executar apenas uma categoria de ferramenta específica--directory -Escolha o diretório a ser analisado--codacy-api-base-url ou Env. CODACY_API_BASE_URL - altere o URL da API de instalação de codacy para recuperar a configuração (por exemplo, instalação corporativa)--output -Envie os resultados da saída para um arquivo--format [Padrão: Texto] -Altere o formato de saída (por exemplo, JSON)--commit-uuid [padrão: mais recente confirmação da filial Git atual]-Defina o commit uuid que receberá os resultados sobre o codacy--skip-commit-uuid-validation [Padrão: false]-Força usando um UUID de confirmação, mesmo que não pertence à filial Git atual.--skip-uncommitted-files-check [Padrão: false]-Skip Check por arquivos não comprometidos no diretório de análise--upload [Padrão: false] -Solicitação para impulsionar os resultados para o Codacy--upload-batch-size [Padrão: 50000]-Número máximo de resultados em cada lote para fazer upload para o Codacy--skip-ssl-verification [padrão: false]-Pule a verificação do certificado SSL ao se comunicar com a API de codacia--parallel [Padrão: 2] -Número de ferramentas a serem executadas em paralelo--max-allowed-issues [PADRÃO: 0]-Número máximo de problemas permitidos para a análise ter sucesso--registry-address [padrão: vazio]-Endereço de registro alternativo (por exemplo, ArtProd.MyCompany/)--fail-if-incomplete [padrão: false]-Falha na análise se alguma ferramenta não conseguir executar--allow-network [Padrão: false]-Permitir acesso à rede, portanto, as ferramentas que precisam podem ser executadas (por exemplo, FindBugs)--force-file-permissions [padrão: false]-Os arquivos de força são legíveis alterando as permissões antes de executar a análise--tool-timeout [Padrão: 15 minutos]-Tempo máximo Cada ferramenta precisa executar (por exemplo, 15 minutos, 1 hora)--max-tool-memory [PADRÃO: 3G]-Máximo da memória permitida para cada execução da ferramenta (em bytes ou usando a notação dos sinalizadores de limite de memória do Docker)--tmp-directory [Opcional]-Diretório temporário para fins de análise--gh-code-scanning-compat [Padrão: false]-Reduza a gravidade da questão em um nível, para problemas de não segurança , para compatibilidade com o recurso de digitalização de código do Github. Esta opção só terá um efeito quando usado em conjunto com --format sarif . Observe que, nesse caso, os mesmos problemas no lado da Codacy terão maior prioridade.validate-configuration - Validar o arquivo de configuração da Codacy--directory -Escolha o diretório onde procurar o arquivo de configuração do CodacyCODACY_ANALYSIS_CLI_VERSION [padrão: estável] - Defina uma versão alternativa da CLI como executada. (por exemplo, mais recente, 0.1.0-alpha3.1350, ...)SKIP_CONTAINER_ENGINE_CHECK [padrão: false] - Pule o teste inicial para a presença do soquete do docker (útil ao executar em sistemas que não têm o soquete do docker disponível)Para executar determinadas configurações avançadas, o Codacy permite criar um arquivo de configuração. Verifique nossa documentação para obter mais detalhes.
Para executar localmente a mesma análise que o Codacy faz no seu código, você pode solicitar remotamente a configuração.
Veja como gerar um token de projeto.
️ AVISO: Por motivos de segurança, recomendamos que você armazene seu token da API do projeto no ambiente variável codacy_project_token em vez de definir--project-token.
codacy-analysis-cli analyze
--project-token < PROJECT-TOKEN >
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > Veja como gerar um token da API da conta.
️ AVISO: Por motivos de segurança, recomendamos que você armazene o token da API da sua conta no ambiente variável codacy_api_token em vez de definir--api-token.
O provedor, o nome de usuário e o nome do projeto podem ser recuperados do URL no codacy.
codacy-analysis-cli analyze
--api-token < API-TOKEN >
--provider < PROVIDER >
--username < USERNAME >
--project < PROJECT-NAME >
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > Código
Nota: - O bode expiatório é executado durante a compilação no teste, para desativá -lo, defina NO_SCAPEGOAT .
sbt compile
Testes
sbt test:compile
sbt testsbt scalafmtAll scalafmtSbtsbt dependencyUpdatessbt scapegoat
sbt scalafixsbt coverage test
sbt coverageReport
sbt coverageAggregate
export CODACY_PROJECT_TOKEN= " <TOKEN> "
sbt codacyCoverageLocal
sbt 'codacyAnalysisCli/stage'
docker build -t codacy-analysis-cli .
Local
sbt 'set version in codacyAnalysisCore := "<VERSION>"' codacyAnalysisCore/publishLocal
Liberar
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 : Fix --parallel que não estava fazendo as ferramentas funcionarem em paralelo. Para restaurar o comportamento anterior, use --parallel 1
4.0.0 : renomeie analyse do comando para analyze . Esta é uma mudança de ruptura se você estiver executando a CLI usando o jar ou sbt , mas não se você estiver usando o script fornecido.
O Codacy é uma plataforma que monitora sua dívida técnica, ajuda a melhorar a qualidade e a segurança do seu código, ensina as melhores práticas aos seus desenvolvedores e ajuda a economizar tempo nas análises de código. Ajudamos os desenvolvedores a enviar bilhões de linhas de código por dia, automatizando e padronizando revisões de código.
Integrando perfeitamente os fluxos de trabalho, o Codacy ajuda as equipes de engenharia a economizar tempo nas revisões de código e encontrar, corrigir e impedir defeitos de codificação que, de outra forma, se acumulariam como dívida técnica. Nossa plataforma usa inteligência artificial para sugerir correções de qualidade de código. O Codacy suporta mais de 40 idiomas e estruturas e está disponível em código aberto gratuito.
Comece uma avaliação gratuita para saber mais.
O Codacy também ajuda a acompanhar a cobertura do código, a duplicação de código e a complexidade do código.
O Codacy suporta PHP, Python, Ruby, Java, JavaScript e Scala, entre outros.
O Codacy é gratuito para projetos de código aberto.