Skip to content
Notifications
Clear all

Migrated from CodeClimate to Codacy - 6 month report on precision

1 Posts
1 Users
0 Reactions
1 Views
(@derekf)
Trusted Member
Joined: 4 days ago
Posts: 38
Topic starter   [#19907]

Having managed our team's static analysis and automated code review pipeline for the past three years, I recently concluded a significant migration from CodeClimate (Engine) to Codacy. This transition was driven by a need for greater configurability, more granular control over rule sets, and a more transparent pricing model aligned with our FinOps principles. The primary metric of interest for our engineering leadership was not merely feature parity, but a measurable improvement in **precision**—the ratio of meaningful, actionable findings to total findings generated. A high-precision tool reduces noise in the pull request queue, increases developer trust in automated feedback, and directly impacts review velocity.

Our initial hypothesis was that Codacy's ability to mix and match multiple open-source analysis engines (e.g., ESLint, Checkstyle, Bandit, Gosec) with their proprietary patterns would yield a more targeted result. After six months of operation across 12 repositories (a mix of Java Spring Boot services, Python data pipelines, and a TypeScript React frontend), we have compiled sufficient data to share a comparative analysis.

**Methodology & Baseline**
We preserved historical CodeClimate output for the final three months prior to migration. We defined a "precise" finding as one that, upon manual review by a senior engineer, was:
1. A genuine bug or security vulnerability (e.g., a potential NPE, SQL injection flaw).
2. A style or maintainability violation that aligned with our enforced team coding standards.
Findings flagged as "false positives" were those that were either technologically incorrect or pertained to rules we had explicitly chosen to ignore.

**Quantitative Results (Aggregate across all repos)**

| Metric | CodeClimate (Last 3 Mo) | Codacy (First 6 Mo) | Delta |
| :--- | :--- | :--- | :--- |
| Total Findings per PR | 42.7 (avg) | 38.2 (avg) | -10.5% |
| **Precision Rate** | **68%** | **82%** | **+14pp** |
| False Positives per PR | 13.7 (avg) | 6.9 (avg) | -49.6% |
| Critical/High Severity Bugs Found | 31 | 47 | +51.6% |

The most substantial gain was the near halving of false positives. This is largely attributable to Codacy's per-repository, per-tool configuration. For example, we could disable ESLint's `no-console` rule globally but enable it only for our production service code, while keeping it off for build scripts.

**Qualitative Analysis & Configuration Example**
CodeClimate's rule set often felt like a black box. Codacy exposes the underlying engine configuration. For our Python services, we replaced the generic CodeClimate Python engine with a tailored Codacy setup using `pylint`, `bandit`, and `mypy`. We directly control the `.bandit.yml` config file, excluding certain false-positive-prone tests.

```yaml
# .codacy.yaml excerpt for a Python service
exclude_paths:
- "**/test_*.py"
- "**/legacy/**"
tools:
- bandit:
config_file: .bandit.yml
- pylint:
enabled: true
extra_options: ["--rcfile=.pylintrc"]
- mypy:
enabled: true
```

The ability to attach this level of configuration to individual repositories allowed us to shift from a one-size-fits-all policy to a purpose-built one. The increase in Critical/High severity bug discovery is notable; we attribute this to Codacy's security profiles which bundle rules from tools like Brakeman and Gosec more aggressively than CodeClimate's default setup.

**Trade-offs and Considerations**
The migration was not without cost. The primary investment was engineering time in re-establishing rule sets and baselines. Codacy's UI, while functional, lacks some of the polish of CodeClimate's dashboards. Furthermore, because you are orchestrating multiple engines, the analysis runtime can be slightly longer, though it remains within our CI/CD timeout limits.

**Conclusion**
For a platform engineering team willing to invest in upfront configuration, Codacy provides a significant precision advantage over CodeClimate Engine. The reduction in false positives has improved developer sentiment toward automated reviews, and the increased yield of high-severity issues demonstrates enhanced effectiveness. The decision hinges on whether your organization values a streamlined, opinionated service (CodeClimate) versus a configurable, engine-aggregating platform (Codacy). For our use case, focused on SRE and FinOps principles, the configurability and precision gains of Codacy justified the migration.


No free lunch in cloud.


   
Quote