Skip to content
cat

ConfigCat Scan Repository

Actions
Find code references to ConfigCat feature flags and settings in your source code
v2.7.1
Latest
Verified creator
Star (7)

Verified

GitHub has manually verified the creator of the action as an official partner organization. For more info see About badges in GitHub Marketplace.

ConfigCat Scan Repository & Feature Flag Sync Action

This GitHub Action helps you get rid of technical debt by scanning the source code and highlighting the feature flag usages for each feature flag on the ConfigCat Dashboard.

For more information about repository scanning, see our documentation.

ConfigCat is a hosted service for feature flag and configuration management. It enables you to decouple feature releases from code deployments.

Setup

  1. Create a new ConfigCat Management API credential and store its values in GitHub Secrets with the following names: CONFIGCAT_API_USER, CONFIGCAT_API_PASS.

    secrets

  2. Get the ID of your ConfigCat Config that you want to associate with your repository. The scanner will use this ID to determine which feature flags & settings to search for in your source code.

  3. Create a new Actions workflow in your GitHub repository under the .github/workflows folder, and put the following snippet into it. Don't forget to replace the PASTE-YOUR-CONFIG-ID-HERE value with your actual Config ID.

    on: [push]
    name: Code references
    jobs:
      scan-repo:
        runs-on: ubuntu-latest
        name: Scan repository for code references
        steps:
        - name: Checkout
          uses: actions/checkout@v4
        - name: Scan & upload
          uses: configcat/scan-repository@v2
          with:
            api-user: ${{ secrets.CONFIGCAT_API_USER }}
            api-pass: ${{ secrets.CONFIGCAT_API_PASS }}
            config-id: PASTE-YOUR-CONFIG-ID-HERE
            # line-count: 5             # optional
            # timeout: 2000             # optional
            # sub-folder: src           # optional
            # exclude-keys: >           # optional
            #   flag_key_to_exclue_1
            #   flag_key_to_exclue_2
            # alias-patterns: (\w+) = :CC_KEY,const (\w+) = feature_flags\.enabled\(:CC_KEY\) # optional, comma delimited alias patterns
            # usage-patterns: feature_flags\.enabled\(:CC_KEY\)   # optional, comma delimited flag key usage patterns
            # verbose: true             # optional
  4. Commit & push your action.

The above example configures a workflow that executes the scan and code references upload on every git push event. Scan reports are uploaded for each branch of your repository that triggers the workflow.

Available Options

Parameter Description Required Default
api-host ConfigCat Management API host. api.configcat.com
api-user ConfigCat Management API basic authentication username.
api-pass ConfigCat Management API basic authentication password.
config-id ID of the ConfigCat config to scan against.
line-count Context line count before and after the reference line. (min: 1, max: 10) 4
timeout Scan timeout in seconds (default: 1800, min: 60) 1800
sub-folder Sub-folder to scan, relative to the repository root folder.
exclude-keys List of feature flag keys that must be excluded from the scan report.
alias-patterns Comma delimited list of custom regex patterns used to search for additional aliases.
usage-patterns Comma delimited list of custom regex patterns that describe additional feature flag key usages.
verbose Turns on detailed logging. false

ConfigCat Scan Repository is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Find code references to ConfigCat feature flags and settings in your source code
v2.7.1
Latest

Verified

GitHub has manually verified the creator of the action as an official partner organization. For more info see About badges in GitHub Marketplace.

ConfigCat Scan Repository is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.