Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.semgrep.dev/llms.txt

Use this file to discover all available pages before exploring further.

For language-level coverage and feature maturity, see Supported languages. For some languages, a lockfile or manifest file is required to accurately to determine . See Transitive dependencies and reachability analysis for more information. The following table lists all Semgrep-supported package managers for each language. Languages with reachability support are listed first.
LanguageSupported package managersManifest file or lockfile
C#NuGet.csproj
GoGo modules (go mod)go.mod
JavaGradlegradle.lockfile or
build.gradle or build.gradle.kts through Dynamic Dependency Resolution.
MavenMaven-generated dependency tree (see Setting up SSC scans for Apache Maven for instructions) or
pom.xml through Dynamic Dependency Resolution.
JavaScript or TypeScriptnpmpackage-lock.json
Yarnyarn.lock
pnpmpnpm-lock.yaml
KotlinGradlegradle.lockfile
MavenMaven-generated dependency tree (See Setting up SSC scans for Apache Maven for instructions.)
PythonpipA
  • *requirement*.txt, *requirement*.pip, **/requirements/*.txt, or **/requirements/*.pip with dependencies pinned†
  • setup.py with Dynamic Dependency Resolution.
pip-tools
PipenvPipfile.lock
Poetrypoetry.lock
uvuv.lock
RubyRubyGemsGemfile.lock
ScalaMavenMaven-generated dependency tree (See Setting up SSC scans for Apache Maven for instructions.)
SwiftSwiftPMPackage.swift file and Swift-generated Package.resolved file. (See Swift documentation for instructions.)
RustCargo‡cargo.lock
DartPubpubspec.lock
ElixirHexmix.lock
PHPComposercomposer.lock
Supply Chain can treat requirements.txt as a lockfile with Pip-compiled output and fully pinned dependencies or as a manifest file with more flexible specifiers. If your requirements.txt file doesn’t use pinned dependencies exclusively, use the --allow-local-builds flag when invoking your scan. This ensures that the dependencies using non-exact version specifiers, such as >=, >, ~=, are included in the dependency graph. Otherwise, Semgrep ingests only pinned (==) dependencies. Supply Chain does not analyze the transitivity of packages for these language and manifest file or lockfile combinations. All dependencies are listed as No Analysis.