Linking Codacy as a source

Alpha release

This source is currently in alpha. The interface and available tables may change.

The Codacy connector syncs your code quality data – organizations, repositories, per-file analysis, issues, pull requests, and commits – into PostHog, so you can track quality grades, issue counts, complexity, duplication, and coverage trends across your repositories.

Prerequisites

You need a Codacy Cloud account with access to the organization you want to sync. Self-hosted Codacy installations are not yet supported.

Adding a data source

  1. In PostHog, go to the Sources tab of the data pipeline section.
  2. Click + New source and click Link next to this source.
  3. Enter your credentials (see Configuration below) and click Next.
  4. Select the tables you want to sync, choose a sync method and frequency, then click Import.

Once the syncs are complete, you can start querying this data in PostHog.

When linking Codacy, you'll need:

  • Account API token – generate one in your Codacy account settings. The token grants access to the organizations and repositories your Codacy account can see.
  • Git provider – the provider hosting your organization: GitHub, GitLab, or Bitbucket.
  • Organization name – the name of the organization on your Git provider, as it appears in Codacy.

Sync modes

Each table can be synced in one of several modes, depending on what the source supports:

  • Webhook (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes.
  • Incremental – only new or updated rows are synced on each run, using a cursor field (such as an updated_at timestamp). Cheaper than a full refresh, but deletes aren't captured.
  • Append only – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs.
  • Full refresh – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected.

See sync methods for a full explanation of how each mode works and how to choose between them.

Codacy tables are full refresh only, since the Codacy API doesn't support filtering by update time. Each sync pulls the current snapshot of your organization's analysis data.

Configuration

OptionTypeRequired
Account API tokenpasswordYes
Git providerselectYes
Organization nametextYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
organizations

Organizations on Codacy that the account API token belongs to, across Git providers.

Full refresh
repositories

Repositories in the configured organization, with the most recent analysis snapshot: quality grade, issue counts, complexity, duplication, coverage, and lines of code.

Full refresh
files

Most recent analysis information for the files in each repository: per-file grade, issue count, complexity, duplication, and coverage. Files ignored on Codacy aren't returned.

Full refresh
issues

Current issues that Codacy found in each repository's main branch, as shown on the repository Issues page.

Full refresh
pull_requests

Pull requests in each repository with Codacy's analysis results: new and fixed issues, complexity and duplication deltas, coverage, and whether the pull request is up to the quality standards.

Full refresh
commits

Analysis results for the commits in each repository's main branch on Codacy, including quality and coverage gate outcomes per commit.

Full refresh

Troubleshooting

  • If your API token is invalid or has been revoked, generate a new account API token in your Codacy account settings, then reconnect.
  • If some repositories are missing, check that your Codacy account has access to them on the Git provider. After changing permissions, it can take a while for Codacy to refresh the repository list.

If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.

Community questions

Was this page useful?