Skip to main content

Package manager support

Semgrep Supply Chain (SCA) scans dependencies by parsing manifest files or lockfiles. This page lists the supported package managers and file types.

For language-level coverage and feature maturity, see Supported languages.

For some languages, a lockfile or manifest file is parsed to determine transitivity. See Transitive dependencies and reachability analysis for more information.

Package manager support

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#NuGetpackages.lock.json
GoGo modules (go mod)go.mod
JavaGradlegradle.lockfile
MavenMaven-generated dependency tree (See Setting up SSC scans for Apache Maven for instructions.)
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.)
PythonpipAny of the following:
  • *requirement*.txt or *requirement*.pip
  • Any manifest file in a requirements folder, such as **/requirements/*.txt or **/requirements/*.pip
The file must be generated automatically and have values set to exact versions (pinned dependencies).
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 does not analyze the transitivity of packages for these language and manifest file or lockfile combinations. All dependencies are listed as No Reachability Analysis.


Not finding what you need in this doc? Ask questions in our Community Slack group, or see Support for other ways to get help.