Configuration
Semgrep is enabled by default. Enable or disable it and optionally select a configuration file with.coderabbit.yaml or the CodeRabbit web UI:
- .coderabbit.yaml
- Web UI
.coderabbit.yaml
config_file setting has no default. Semgrep uses a YAML-style configuration file. When config_file is omitted or cannot be used, CodeRabbit looks for the following file names:
semgrep.ymlorsemgrep.yamlsemgrep.config.ymlorsemgrep.config.yaml
config_file value must be an existing repository-local relative path. CodeRabbit rejects absolute paths, parent-directory traversal (../), URLs, and Semgrep registry shorthands beginning with p/ or r/.
If config_file names a rejected or non-existent value, CodeRabbit falls back to discovering one of the supported repository-local default configuration filenames listed above.
Due to licensing, CodeRabbit does not ship with the community-created Semgrep rules.
CodeRabbit will only run Semgrep if your repository contains a Semgrep config file. This config must use the default file names, or you must define the path to this file in the
.coderabbit.yaml or config UI.When we skip Semgrep
CodeRabbit skips Semgrep when:- Semgrep is disabled in CodeRabbit settings or
.coderabbit.yaml. - No changed files use a supported extension.
- No supported repository-local configuration file is found.
- Semgrep is already running in GitHub Actions, GitLab CI, CircleCI, or Azure Pipelines.
Links
Files
Semgrep will run on the following file types:- C/C++ (
.c,.cpp,.cc,.cxx,.c++,.h,.hpp,.hh,.hxx,.h++) - C# (
.cs) - Go (
.go) - Java (
.java) - JavaScript (
.js,.jsx) - Kotlin (
.kt) - Python (
.py) - TypeScript (
.ts) - Ruby (
.rb) - Rust (
.rs) - PHP (
.php) - Scala (
.scala) - Swift (
.swift) - Terraform (
.tf) - JSON (
.json)