命令行接口在本地执行CODACY代码分析。
有了一个命令,您可以:
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli- * && sudo make install一旦满足先决条件,就该使Bash和Docker之间的连通性了。
守护程序必须在没有TLS的情况下暴露。为了做到这一点,请转到Docker设置 - > General。只需在TCP:// Localhost上使用标签的“揭露守护程序:2375无TLS”的复选框,Docker将重新加载。
现在是时候去Bash并安装和配置Docker客户端了。
如果您使用的是Windows 10(在1803上方构建),以下命令将使Docker客户端可从bash sudo ln -s "/mnt/c/Program Files/Docker/Docker/resources/bin/docker.exe" /usr/local/bin/docker提供。
如果您使用的是Windows 10的先前版本,则可以在这里找到一个非常容易遵循的教程。
由于您将使用WSL,因此需要将变量Docker_host配置为tcp://0.0.0.0:2375 ,为了做到这一点,只需在bash上键入以下命令
export DOCKER_HOST=tcp://0.0.0.0:2375
也可以将此变量添加到您的.bashrc或.bash_profile文件中,以便在启动bash时随时准备就绪
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bash_profile
echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bashrc
如果您使用的是苹果硅,请确保:
Use Rosetta for x86/amd64 emulation on Apple Silicon (在开发功能下) 此时,Codacy-Analysis-CLI准备安装。
在bash中,转到要下载该工具的文件夹并输入以下命令:
sudo apt-get install make
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli-*
再次,由于使用了WSL,必须在此目录中的makefile中添加两条突出显示的线条。
在测试部分之前:
export DOCKER_HOST=tcp://0.0.0.0:2375
并且,在安装中,部分:
docker login
最后,只需键入以下命令,安装将启动
sudo make install
当需要Docker的用户名时,请确保编写用户名而不是电子邮件,因为根据您创建的Docker帐户的方式,它们可能会有所不同。
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 >CLI输出的默认格式是文本,分为3个类别:
工具报告的问题在3个不同级别之间有所不同( Error , Warning和Info )。例子:
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)
为每个文件打印指标数据,并包含5种类型的数据:
LOC代码行CLOC评论的代码行CC环形复杂性#methods方法数量#classes的数量例子:
Found [Metrics] in generic/Test.java:
CC - 33
LOC - 778
CLOC - 864
#methods - 3
#classes - 1
每个发现的克隆都打印出有关行总数,令牌数量和所有发生的信息(启动的线以及结束的位置)。例子:
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 - 通过目录/文件进行CODACY分析--help - 显示所有配置选项,其含义和可能的值。--verbose用详细输出运行工具--tool - 选择分析代码(例如制动器)或“指标”,“重复”,“问题”的工具,仅运行特定的工具类别--directory - 选择要分析的目录--codacy-api-base-url或env。 CODACY_API_BASE_URL更改CODACY安装API URL以检索配置(例如企业安装)--output - 将输出结果发送到文件--format [默认:文本] - 更改输出格式(例如JSON)--commit-uuid [默认:当前GIT分支的最新提交] - 设置将接收CODACY结果的提交UUID--skip-commit-uuid-validation [默认值:false] - 使用commit uuid强制使用,即使它不属于当前的git分支。--skip-uncommitted-files-check [默认值:false] - 跳过在分析目录中查看未投入的文件--upload [默认值:false] - 请求将结果推到Codacy--upload-batch-size [默认值:50000] - 每批最大结果数量上传到codacy--skip-ssl-verification [默认值:false] - 与Codacy API通信时跳过SSL证书验证--parallel [默认值:2] - 并行运行的工具数量--max-allowed-issues [默认值:0] - 分析成功的最大问题数量--registry-address [默认:空] - 替代注册表地址(例如ArtProd.myCompany/)--fail-if-incomplete [默认值:false] - 如果任何工具无法运行,则分析失败--allow-network [默认值:false] - 允许网络访问,因此需要执行的工具(例如,findbugs)--force-file-permissions [默认值:false] - 在运行分析之前更改权限可读取文件--tool-timeout [默认值:15分钟] - 每个工具必须执行的最大时间(例如15分钟,1小时)--max-tool-memory [默认值:3G] - 每个工具执行的最大内存(在字节或使用Docker的内存限制标志的符号))--tmp-directory [可选] - 用于分析目的的临时目录--gh-code-scanning-compat [默认值:false] -对于非安全性问题,将问题严重性降低一个级别,以与GitHub的代码扫描功能兼容。此选项仅在与--format sarif结合使用时会产生效果。请注意,在这种情况下,Codacy方面的同样问题将具有更高的优先级。validate-configuration - 验证CODACY配置文件--directory选择目录在哪里查找CODACY配置文件CODACY_ANALYSIS_CLI_VERSION [默认值:稳定] - 设置CLI的替代版本。 (例如,最新,0.1.0-alpha3.1350,...)SKIP_CONTAINER_ENGINE_CHECK [默认值:false] - 跳过docker套接字的初始测试(在没有Docker套接字的系统中运行时有用)要执行某些高级配置,Codacy允许创建一个配置文件。检查我们的文档以获取更多详细信息。
要在本地运行与Codacy在代码中进行的分析,您可以远程请求配置。
查看如何生成项目令牌。
配x 警告:出于安全原因,我们建议您将项目API令牌存储在环境变量codacy_project_token而不是设置--project-token中。
codacy-analysis-cli analyze
--project-token < PROJECT-TOKEN >
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > 查看如何生成帐户API令牌。
配x 警告:出于安全原因,我们建议您将帐户API令牌存储在环境变量CODACY_API_TOKEN而不是设置--api-token中。
提供商,用户名和项目名称可以从Codacy的URL中检索。
codacy-analysis-cli analyze
--api-token < API-TOKEN >
--provider < PROVIDER >
--username < USERNAME >
--project < PROJECT-NAME >
--tool < TOOL-SHORT-NAME >
--directory < SOURCE-CODE-PATH > 代码
注意: - 替罪羊在测试中的编译期间运行,以禁用它,设置NO_SCAPEGOAT 。
sbt compile
测试
sbt test:compile
sbt testsbt scalafmtAll scalafmtSbtsbt dependencyUpdatessbt scapegoat
sbt scalafixsbt coverage test
sbt coverageReport
sbt coverageAggregate
export CODACY_PROJECT_TOKEN= " <TOKEN> "
sbt codacyCoverage当地的
sbt 'codacyAnalysisCli/stage'
docker build -t codacy-analysis-cli .
当地的
sbt 'set version in codacyAnalysisCore := "<VERSION>"' codacyAnalysisCore/publishLocal
发布
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使工具实际运行实际运行。恢复先前的行为使用--parallel 1
4.0.0 :重命名analyse命令进行analyze 。如果您使用JAR或sbt运行CLI,则这是一个打破的更改,但如果您使用提供的脚本,则不会。
Codacy是一个监视您的技术债务,帮助您提高代码质量和安全性,向开发人员教授最佳实践的平台,并帮助您节省代码审查的时间。我们通过自动化和标准化代码审查来帮助开发人员每天运送数十亿行代码。
CODACY无缝集成到工作流程中,可帮助工程团队节省代码审核的时间,并查找,修复和防止编码缺陷,否则这些缺陷本来可以将其作为技术债务。我们的平台使用人工智能建议代码质量修复。 Codacy支持40多种语言和框架,并提供免费开源。
开始免费试用以了解更多信息。
Codacy还有助于跟踪代码覆盖范围,代码重复和代码复杂性。
Codacy支持PHP,Python,Ruby,Java,JavaScript和Scala等。
Codacy是免费的开源项目。