Small command line interface to execute Codacy code analysis locally.
- (P) Invoke a tool
- (D) Local tool configuration file
- (D) Remote Codacy patterns, ignored files and language extensions
- ( ) Default settings
- (P) Invoke multiple tools
- (D) Using remote configurations
- ( ) Using local configurations
- (D) Invoke tools in parallel
- (D) Post results to Codacy
- (P) Exit with status
- (D) Absolute issues value
- ( ) Codacy quality settings
(D) - Done | (P) - Partially Done | ( ) - Not Started
- Java 8+
- Docker 17.09+
- Java 8+
- SBT 1.1.x
- Scala 2.12.x
- Docker 17.09+
brew tap codacy/tap
brew install codacy-analysis-cli
curl -L https://github.com/codacy/codacy-analysis-cli/archive/master.tar.gz | tar xvz
cd codacy-analysis-cli-* && sudo make install
codacy-analysis-cli analyse \
--tool <TOOL-SHORT-NAME> \
--directory <SOURCE-CODE-PATH>
sbt "runMain com.codacy.analysis.cli.Main analyse --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 \
analyse --tool <TOOL-SHORT-NAME>
- 🎉 0: Success
- 😰 1: Failed Analysis
- 😦 2: Partially Failed Analysis
- 😩 101: Failed Upload
- 👮 201: Max Allowed Issues Exceeded
--tool
- Choose the tool to analyse the code (e.g. brakeman)--directory
- Choose the directory to be analysed--codacy-api-base-url
or env.CODACY_API_BASE_URL
- Change the Codacy installation API URL to retrieve the configuration (e.g. Enterprise installation)--output
- Send the output results to a file--format
[default: text] - Change the output format (e.g. json)--commit-uuid
- Set the commit UUID that will receive the results on Codacy--upload
[default: false] - Request to push results to Codacy--parallel
[default: 2] - Number of tools to run in parallel--max-allowed-issues
[default: 0] - Maximum number of issues allowed for the analysis to succeed--fail-if-incomplete
[default: false] - Fail the analysis if any tool fails to run--allow-network
[default: false] - Allow network access, so tools that need it can execute (e.g. findbugs)--force-file-permissions
[default: false] - Force files to be readable by changing the permissions before running the analysis
CODACY_ANALYSIS_CLI_VERSION
- Set an alternative version of the CLI to run. (e.g. latest, 0.1.0-alpha3.1350, ...)
To perform certain advanced configurations, Codacy allows to create a configuration file. Check our documentation for more details.
To run locally the same analysis that Codacy does in your code you can request remotely the configuration.
You can find the project token in:
Project -> Settings -> Integrations -> Add Integration -> Project API
codacy-analysis-cli analyse \
--project-token <PROJECT-TOKEN> \
--tool <TOOL-SHORT-NAME> \
--directory <SOURCE-CODE-PATH>
In alternative to setting
--project-token
you can define CODACY_PROJECT_TOKEN in the environment.
You can find the project token in:
Account -> API Tokens
The username and project name can be retrieved from the URL in Codacy.
codacy-analysis-cli analyse \
--api-token <PROJECT-TOKEN> \
--username <USERNAME> \
--project <PROJECT-NAME> \
--tool <TOOL-SHORT-NAME> \
--directory <SOURCE-CODE-PATH>
In alternative to setting
--api-token
you can define CODACY_API_TOKEN in the environment.
-
Code
Note: - Scapegoat runs during compile in Test, to disable it, set
NO_SCAPEGOAT
.sbt compile
-
Tests
sbt test:compile
sbt test
sbt scalafmtCheck
sbt scalafmt
sbt dependencyUpdates
sbt scapegoat
sbt scalafix sbtfix
sbt coverage test
sbt coverageReport
sbt coverageAggregate
export CODACY_PROJECT_TOKEN="<TOKEN>"
sbt codacyCoverage
-
Local
sbt 'set version in codacyAnalysisCli := "<VERSION>"' codacyAnalysisCli/docker:publishLocal
-
Release
sbt 'set version in codacyAnalysisCli := "<VERSION>"' codacyAnalysisCli/docker:publish
-
Local
sbt 'set version in codacyAnalysisCore := "<VERSION>"' codacyAnalysisCore/publishLocal
-
Release
sbt 'set version in codacyAnalysisCore := "<VERSION>"' 'set pgpPassphrase := Some("<SONATYPE_GPG_PASSPHRASE>".toCharArray)' codacyAnalysisCore/publishSigned sbt 'set version in codacyAnalysisCore := "<VERSION>"' sonatypeRelease
Codacy is an Automated Code Review Tool that monitors your technical debt, helps you improve your code quality, teaches best practices to your developers, and helps you save time in Code Reviews.
- Identify new Static Analysis issues
- Commit and Pull Request Analysis with GitHub, BitBucket/Stash, GitLab (and also direct git repositories)
- Auto-comments on Commits and Pull Requests
- Integrations with Slack, HipChat, Jira, YouTrack
- Track issues in Code Style, Security, Error Proneness, Performance, Unused Code and other categories
Codacy also helps keep track of Code Coverage, Code Duplication, and Code Complexity.
Codacy supports PHP, Python, Ruby, Java, JavaScript, and Scala, among others.
Codacy is free for Open Source projects.