Description
The Code Climate CLI is distributed and run as a
Docker image. The engines that perform the actual
analyses are also Docker images. To support this, you must have Docker installed
and running locally. We also require that the Docker daemon supports connections
on the default Unix socket /var/run/docker.sock.
On OS X, we recommend using Docker Machine.
Code Climate alternatives and similar libraries
Based on the "Code Analysis" category.
Alternatively, view CodeClimate alternatives based on common mentions on social networks and blogs.
-
phan
Phan is a static analyzer for PHP. Phan prefers to avoid false-positives and attempts to prove incorrectness rather than correctness. -
PHP Mess Detector
PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD. PHPMD can be seen as an user friendly frontend application for the raw metrics stream measured by PHP Depend. -
Better Reflection
:crystal_ball: Better Reflection is a reflection API that aims to improve and provide more features than PHP's built-in reflection API. -
PHP Code Sniffer
PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards. -
PHP Semantic Versioning Checker
Compares two source sets and determines the appropriate semantic versioning to apply. -
PHPCheckstyle
PHPCheckstyle is an open-source tool that helps PHP programmers adhere to certain coding conventions.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Code Climate or a related project?
README
Code Climate CLI
Overview
codeclimate
is a command line interface for the Code Climate analysis
platform. It allows you to run Code Climate engines on your local machine inside
of Docker containers.
Prerequisites
The Code Climate CLI is distributed and run as a
Docker image. The engines that perform the actual
analyses are also Docker images. To support this, you must have Docker installed
and running locally. We also require that the Docker daemon supports connections
on the default Unix socket /var/run/docker.sock
.
On macOS, we recommend using Docker for Mac.
Installation
macOS
brew tap codeclimate/formulae
brew install codeclimate
To update the brew package, use brew update
first:
brew update
brew upgrade codeclimate
Anywhere
curl -L https://github.com/codeclimate/codeclimate/archive/master.tar.gz | tar xvz
cd codeclimate-* && sudo make install
To upgrade to a newer version, just run those steps again.
Manual Docker invocation
The above packages pull the docker image and install a shell script wrapper. In some cases you may want to run the docker image directly.
To pull the docker image:
docker pull codeclimate/codeclimate
To invoke the CLI via Docker:
docker run \
--interactive --tty --rm \
--env CODECLIMATE_CODE="$PWD" \
--volume "$PWD":/code \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /tmp/cc:/tmp/cc \
codeclimate/codeclimate help
Project setup
Configuration
No explicit configuration is needed: by default codeclimate analyze
will
evaluate supported source files in your repository using our
maintainability checks. To change default configuration
to customize how the maintainability checks are evaluated, or to turn on open
source plugins, see our documentation on advanced
configuration.
Plugin installation
Plugins, or "engines", are the docker images that run analysis tools. We support
many different plugins, and will only install the ones necessary to run
analysis. As part of setting up your project, we recommend running codeclimate
engines:install
from within your repository before running codeclimate
analyze
, and after adding any new plugins to your configuration file.
Running analysis
Once you've installed plugins and made any necessary changes to your
configuration, run codeclimate analyze
to run analysis and see a report on any
issues in your repository.
Commands
A list of available commands is accessible by running codeclimate
or
codeclimate help
.
$ codeclimate help
Available commands:
analyze [-f format] [-e engine[:channel]] [--dev] [path]
console
engines:install
engines:list
help [command]
prepare [--allow-internal-ips]
validate-config
version
The following is a brief explanation of each available command.
analyze
Analyze all relevant files in the current working directory. All engines that are enabled in your.codeclimate.yml
file will run, one after another. The-f
(orformat
) argument allows you to set the output format of the analysis (usingjson
,text
, orhtml
). The--dev
flag lets you run engines not known to the CLI, for example if you're an engine author developing your own, unreleased image.
You can optionally provide a specific path to analyze. If not provided, the
CLI will analyze your entire repository, except for your configured
exclude_paths
. When you do provide an explicit path to analyze, your
configured exclude_paths
are ignored, and normally excluded files will be
analyzed.
You can also pipe in source in combination with a path to analyze code that is not yet written to disk. This is useful when you want to check if your source code style matches the project's. This is also a good way to implement integration with an editor to check style on the fly.
console
start an interactive session providing access to the classes within the CLI. Useful for engine developers and maintainers.engines:install
Compares the list of engines in your.codeclimate.yml
file to those that are currently installed, then installs any missing engines and checks for new images available for existing engines.engines:list
Lists all available engines in the Code Climate Docker Hub .help
Displays a list of commands that can be passed to the Code Climate CLI.validate-config
Validates the.codeclimate.yml
file in the current working directory.version
Displays the current version of the Code Climate CLI.
Environment Variables
- To run
codeclimate
in debug mode:
CODECLIMATE_DEBUG=1 codeclimate analyze
Prints additional information about the analysis steps, including any stderr produced by engines.
- To increase the amount of time each engine container may run (default 15 min):
# 30 minutes
CONTAINER_TIMEOUT_SECONDS=1800 codeclimate analyze
- You can also configure the default alotted memory with which each engine runs (default is 1,024,000,000 bytes):
# 2,000,000,000 bytes
ENGINE_MEMORY_LIMIT_BYTES=2000000000 codeclimate analyze
Releasing a new version
CLI's new versions are released automatically when updating
VERSION on master
.
The releasing process includes;
- Push new version to rubygems.
- Create a new release on Github and an associated tag.
- Update docker images:
- Push new
latest
image. - Push new image with latest version as tag.
- Push new
Ideally someone will open a pull request against master updating only VERSION.
There is script in place, which assumes hub is installed,
to facilitate that. Check the current VERSION (cat VERSION
) and upgrade accordingly running:
./bin/prep-release <VERSION>
Copyright
See [LICENSE](LICENSE)
*Note that all licence references and agreements mentioned in the Code Climate README section above
are relevant to that project's source code only.