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.
-
Create a new ConfigCat Management API credential and store its values in GitHub Secrets with the following names:
CONFIGCAT_API_USER
,CONFIGCAT_API_PASS
. -
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.
-
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 thePASTE-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 # 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
-
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.
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 | |
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 |