sbomify Action Configuration Reference

Every input, environment variable and CLI flag for the sbomify action, including precedence rules and deprecated aliases.

Configuration is done through environment variables, and they behave identically on every runtime. The GitHub Action declares only a handful of native inputs; everything else is passed via env: there, variables: in GitLab, and -e flags with plain Docker.

Action inputs (GitHub Actions only)

These are the only values passed with with: rather than env:. Each maps to the environment variable of the same name.

InputDefaultDescription
working-diremptyWorking directory, relative to the repository root or absolute. Must be under the workspace.
component-purlnoneOverride the component PURL, for example pkg:npm/@scope/[email protected].
bom-typesbomArtifact type recorded on upload: sbom, vex, cbom or hbom.
oidc-audiencesbomify.comOIDC audience for trusted publishing. Override for self-hosted.

Monorepo gotcha: the workflow-level working-directory: setting has no effect on this action, because it runs in a container. Use the working-dir input instead.

Input source

Exactly one of these is required.

VariableDescription
LOCK_FILEPath to a lockfile. Set to none for additional-packages-only mode.
SBOM_FILEPath to an existing SBOM to process rather than generate. Set to none for additional-packages-only mode.
DOCKER_IMAGEContainer image reference, for example nginx:latest.
SOURCE_DIRDirectory to scan with Syft. Last resort - prefer LOCK_FILE whenever one exists, see directory scanning.

Output

VariableDefaultDescription
OUTPUT_FILEsbom_output.jsonWhere to write the final SBOM.
SBOM_FORMATcyclonedxcyclonedx or spdx.
SPEC_VERSION1.6 or 2.3Spec version to generate, for example 1.7 or 2.2. SPDX 3.0.1 cannot be generated, only processed.
BOM_TYPEsbomsbom, vex, cbom or hbom.

Non-SBOM BOM_TYPE values are uploaded verbatim to sbomify: augmentation, enrichment, overrides, package injection and finalization fixups are all skipped, and Dependency Track and PRODUCT_RELEASE are rejected.

Processing

VariableDefaultDescription
ENRICHfalseAdd per-component metadata from package registries.
AUGMENTfalseAdd organisational metadata from sbomify.json or the sbomify API.
OVERRIDE_SBOM_METADATAfalseLet augmentation overwrite existing metadata instead of only filling gaps.
COMPONENT_NAMEnoneOverride the component name.
COMPONENT_VERSIONnoneOverride the component version.
COMPONENT_PURLnoneAdd or override the component PURL.
ADDITIONAL_PACKAGESnoneInline PURLs to inject, comma or newline separated.
ADDITIONAL_PACKAGES_FILEadditional_packages.txtPath to a file of PURLs, one per line.
DISABLE_VCS_AUGMENTATIONfalseDisable automatic VCS detection from the CI environment.
SUBMODULE_PATHnoneTreat the component as a git submodule pinned at this path. Resolves the pin to a version and reuses an existing SBOM at that version if there is one. Requires LOCK_FILE and the sbomify destination.
WORKING_DIRnoneWorking directory. On GitHub Actions prefer the working-dir input.

Uploading

VariableDefaultDescription
UPLOADtrueSet to false to generate without uploading anywhere.
UPLOAD_DESTINATIONSsbomifyComma-separated: sbomify, dependency-track.
TOKENnonesbomify API token.
SBOMIFY_TOKENnonesbomify API token. Takes precedence over TOKEN.
COMPONENT_IDnonesbomify component ID. Required for upload and for sbomify-sourced augmentation.
PRODUCT_RELEASEnoneJSON array of product and version strings.
API_BASE_URLhttps://app.sbomify.comOverride for self-hosted instances.
OIDC_AUDIENCEsbomify.comAudience for trusted publishing. Derived from API_BASE_URL when self-hosted.
SBOMIFY_UPLOAD_TIMEOUT120Upload timeout in seconds. Raise for very large SBOMs.

Credential precedence is the --token flag, then SBOMIFY_TOKEN, then TOKEN. If no token is present on GitHub Actions and the workflow grants id-token: write, OIDC trusted publishing is used automatically.

Dependency Track

Required when dependency-track is in UPLOAD_DESTINATIONS. CycloneDX only - Dependency Track does not accept SPDX.

VariableRequiredDescription
DTRACK_API_KEYYesDependency Track API key.
DTRACK_API_URLYesFull API base URL, for example https://dtrack.example.com/api.
DTRACK_PROJECT_IDEitherProject UUID.
COMPONENT_NAME and COMPONENT_VERSIONOr bothUsed to identify the project instead of a UUID.
DTRACK_AUTO_CREATENoCreate the project if it does not exist. Defaults to false.
DTRACK_PROJECT_TAGSNoComma-separated tags.
DTRACK_PARENT_IDNoParent project ID.
DTRACK_PARENT_NAMENoParent project name.
DTRACK_PARENT_VERSIONNoParent project version.
DTRACK_IS_LATESTNoMark this BOM as the latest version. Defaults to false.

Caching and performance

VariableDefaultDescription
SBOMIFY_CACHE_DIR~/.cache/sbomifyWhere license databases are cached. Roughly 20-50 MB.
SYFT_CACHE_DIRnoneSyft’s own package metadata cache.
XDG_CACHE_HOME~/.cacheFallback cache root when SBOMIFY_CACHE_DIR is unset.
SBOMIFY_TOOL_CACHEnoneWhere fetched tool runtimes are unpacked. Falls back to XDG_CACHE_HOME, then $HOME/.cache, then the temp directory.
SBOMIFY_FETCH_RUNTIMES1Set to 0 to refuse downloading tool runtimes, for air-gapped builds. See tool runtimes.
SBOMIFY_ENRICHMENT_CACHE1Set to 0 to disable the on-disk enrichment response cache.
SBOMIFY_ENRICHMENT_CACHE_TTLnoneOverride how long cached enrichment responses stay valid, in seconds.
SBOMIFY_CLEARLY_CACHED_URLhttps://clearly-cached.sbomify.comPoint ClearlyDefined lookups at your own clearly-cached instance.
GITHUB_TOKEN or GH_TOKENnoneStrongly recommended. Authenticates license database downloads.

GITHUB_TOKEN is worth calling out. License databases are downloaded from GitHub Releases, and unauthenticated requests are limited to 60 per hour per IP address. On shared CI runners that limit is often already exhausted, and when it is, enrichment degrades silently - you get an SBOM with fewer licenses populated and no hard error. This applies on every runtime, not just GitHub Actions. See license database rate limits.

Diagnostics and privacy

VariableDefaultDescription
VERBOSEfalseVerbose logging. Equivalent to --verbose.
TELEMETRYtrueError telemetry is enabled by default. Set to false to disable.
SENTRY_DSNnonePoint error telemetry at your own Sentry instance.

The action reports unhandled errors to Sentry unless you opt out. If your policy prohibits outbound diagnostics, set TELEMETRY=false or pass --no-telemetry. See telemetry and privacy.

Advanced

VariableDefaultDescription
SBOMIFY_ENABLE_LICENSE_DB_GENERATIONfalseAllow local license database generation when no prebuilt one is available. Slow - Debian and Ubuntu can take hours.
SBOMIFY_LICENSE_DB_WORKERS5Parallelism for the sbomify-license-db tool.

Deprecated

Still honoured, but they log a warning. Use the replacement.

DeprecatedUse instead
SBOM_VERSIONCOMPONENT_VERSION
OVERRIDE_NAMECOMPONENT_NAME

Set automatically by CI

You do not set these. They are read from the environment to detect VCS information and, on GitHub Actions, to perform the OIDC exchange.

  • GitHub Actions - GITHUB_REPOSITORY, GITHUB_SERVER_URL, GITHUB_SHA, GITHUB_REF, GITHUB_REF_NAME, GITHUB_WORKSPACE, GITHUB_RUN_ID, GITHUB_REPOSITORY_VISIBILITY, ACTIONS_ID_TOKEN_REQUEST_URL, ACTIONS_ID_TOKEN_REQUEST_TOKEN
  • GitLab CI - CI_PROJECT_URL, CI_PROJECT_PATH, CI_SERVER_URL, CI_COMMIT_SHA, CI_COMMIT_REF_NAME, CI_PIPELINE_ID, CI_PROJECT_VISIBILITY
  • Bitbucket - BITBUCKET_WORKSPACE, BITBUCKET_REPO_SLUG, BITBUCKET_COMMIT, BITBUCKET_BRANCH, BITBUCKET_TAG, BITBUCKET_GIT_HTTP_ORIGIN

The two OIDC request variables only exist when the workflow grants permissions: id-token: write.

CLI flags

Every variable has a matching flag when you invoke the CLI directly. Flags win over environment variables.

sbomify-action --lock-file requirements.txt --enrich --no-upload -o sbom.cdx.json
FlagEquivalent
--lock-file, --sbom-file, --docker-image, --source-dirinput source
--submodule-pathSUBMODULE_PATH
-o, --output-fileOUTPUT_FILE
-f, --sbom-formatSBOM_FORMAT
--spec-versionSPEC_VERSION
--bom-typeBOM_TYPE
--enrich, --no-enrichENRICH
--augment, --no-augmentAUGMENT
--override-sbom-metadataOVERRIDE_SBOM_METADATA
--upload, --no-uploadUPLOAD
--upload-destinationUPLOAD_DESTINATIONS. Repeatable.
--token, --component-idTOKEN, COMPONENT_ID
--component-name, --component-version, --component-purlmatching variables
--product-releasePRODUCT_RELEASE
--api-base-url, --oidc-audiencematching variables
--working-dirWORKING_DIR
--telemetry, --no-telemetryTELEMETRY
-v, --verbose, -q, --quietVERBOSE

Subcommands

CommandPurpose
sbomify-action wizardInteractive setup. init is an alias. See quick start.
sbomify-action yoctoProcess Yocto and OpenEmbedded SPDX archives. See input sources.
sbomify-license-dbGenerate a distro license database locally. Advanced.