Skip to content
This documentation applies to Codacy Self-hosted v5.0.0

For the latest updates and improvements, see the latest Cloud documentation instead.

Codacy configuration file#

Codacy supports configuring certain advanced features through a configuration file:

  • Ignoring files globally, for duplication, or a specific tool

  • Configuring a specific repository directory on which to start the analysis

  • Adding custom file extensions to languages, keeping in mind that some tools might not work out of the box with those extensions

Note

  • If a Codacy configuration file exists in your repository, the Ignored files settings defined on the Codacy UI don't apply and you must ignore files using the configuration file instead.
  • To disable a tool you must use the Code patterns page instead.

To use a Codacy configuration file:

  1. Create a text file with the name .codacy.yml or .codacy.yaml on the root of your repository.

  2. Add your settings to the configuration file based on the example template below.

    Important

    The configuration file must start with a line containing a triple dash (---).

    ---
    engines:
      rubocop:
        exclude_paths:
          - "config/test.yml"
        base_sub_dir: "test/baseDir"
      duplication:
        exclude_paths:
          - "config/test.yml"
        config:
          languages:
            - "ruby"
    languages:
      css:
        extensions:
          - "-css.resource"
    exclude_paths:
      - ".bundle/**"
      - "spec/**/*"
      - "benchmarks/**/*"
      - "**.min.js"
      - "**/tests/**"
    
  3. Optionally, validate the syntax of your configuration file with the Codacy Analysis CLI by running the following command in the same folder as the Codacy configuration file:

    codacy-analysis-cli validate-configuration --directory `pwd`
    

Syntax for ignoring files#

To ignore files, you must use the Java glob syntax to define one or more exclude_paths patterns. For example:

Example pattern Ignored files
test/README.md The file test/README.md
test/* All files in the root of test
test/** All files and directories inside test
test/**/* All files inside sub-directories of test
**.resource All .resource files across all your repository
**/*.resource All .resource files in all directories and sub-directories

Which tools can be configured and which name should I use?#

You can use the Codacy configuration file to configure all tools supported by Codacy except the client-side tools.

The following are the tool names that must be used in the Codacy configuration file:

ameba
bandit
brakeman
bundleraudit
checkov
checkstyle
codacy-scalameta-pro
codenarc
coffeelint
cppcheck
credo
csslint
detekt
eslint
flawfinder
hadolint
jacksonlinter
jshint
markdownlint
phpcs
phpmd
pmd
pmd-legacy
prospector
psscriptanalyzer
pylint
pylintpython3
remark-lint
revive
rubocop
scalastyle
shellcheck
sonarscharp
sonarvb
SQLint
spectral
stylelint
swiftlint
tailor
tslint
tsqllint

Tool-specific configurations#

Although Codacy tries to detect which language is used on each source code file, some false positives may occur. The tools below support specific configurations to specify the language or language version used in the source code files that you're analyzing.

Cppcheck#

If you're using Cppcheck to analyze C or C++ source code files, add the following configuration to your Codacy configuration file to define the programming language you're using. The supported languages are c and c++:

---
engines:
  cppcheck:
    language: c++

PHP_CodeSniffer#

If you're using the PHP Compatibility coding standard for PHP_CodeSniffer, add the following configuration to your Codacy configuration file to define the PHP version you're using:

---
engines:
  phpcs:
    php_version: 5.5

Legacy Pylint 1.9.*#

If you're using the legacy Pylint 1.9.* to analyze Python source code files, add the following configuration to your Codacy configuration file to define the Python language version you're using. The supported versions are 2 and 3:

---
engines:
  pylint:
    python_version: 2

Tip

If you're using Python 3.4.* or later as your programming language, we recommend that you disable the tool Pylint and enable the tool Pylint (Python 3) on your repository Code patterns page instead. For more information see What's New in Pylint 2.0.

Share your feedback 📢

Did this page help you?

Thanks for the feedback! Is there anything else you'd like to tell us about this page?

We're sorry to hear that. Please let us know what we can improve:

Alternatively, you can create a more detailed issue on our GitHub repository.

Thanks for helping improve the Codacy documentation.

If you have a question or need help please contact support@codacy.com.

Last modified November 9, 2021