These tools run for every DevRail-managed project regardless of declared languages.
| Concern | Tool | Version Strategy |
|---|---|---|
| Vulnerability Scanning | trivy | Latest in container |
| Secret Detection | gitleaks | Latest in container |
| Changelog Generation | git-cliff | Latest in container |
No config file required for default operation. trivy scans for known vulnerabilities in filesystem dependencies and container images.
Common invocation flags:
| Flag | Purpose |
|---|---|
--severity HIGH,CRITICAL |
Filter to high and critical findings only |
--exit-code 1 |
Non-zero exit on findings (default behavior) |
--format json |
JSON output for CI pipelines |
To ignore specific findings, create a .trivyignore file at repository root:
# .trivyignore
CVE-2023-XXXXX
Config file: .gitleaks.toml at repository root (optional, for custom rules or allowlists).
Recommended .gitleaks.toml:
[allowlist]
description = "Project-specific allowlist"
paths = [
'''\.gitleaks\.toml''',
]gitleaks detects secrets (API keys, tokens, passwords) in git history and staged changes. Use the allowlist only for verified false positives.
Config file: cliff.toml at repository root (required for changelog generation).
git-cliff parses conventional commit messages and generates a structured CHANGELOG.md grouped by commit type (features, fixes, etc.). It requires a cliff.toml configuration file that defines the changelog format, commit groups, and output template.
The cliff.toml file is scaffolded automatically by make init when setting up a new DevRail project.
Common invocation flags:
| Flag | Purpose |
|---|---|
--output CHANGELOG.md |
Write changelog to file |
--tag <version> |
Generate changelog up to a specific tag |
--unreleased |
Only include unreleased changes |
--prepend CHANGELOG.md |
Prepend new entries to existing changelog |
| Target | Command | Description |
|---|---|---|
_scan |
trivy fs . |
Filesystem vulnerability scan |
_scan |
trivy image <image> |
Container image vulnerability scan |
_scan |
gitleaks detect --source . |
Secret detection in repository |
_changelog |
git-cliff --output CHANGELOG.md |
Generate changelog from conventional commits |
See DEVELOPMENT.md for the full Makefile contract and two-layer delegation pattern.
gitleaks runs on every commit to catch secrets before they enter git history:
repos:
- repo: https://github.com/gitleaks/gitleaks
rev: "" # container manages version
hooks:
- id: gitleaksThese run via make scan in CI pipelines. They are not configured as pre-commit hooks due to execution time:
trivy fs .-- full filesystem vulnerability scanningtrivy image <image>-- container image scanning (when applicable)
trivyandgitleaksrun as part ofmake scan, which is separate frommake security. Themake securitytarget runs language-specific scanners (bandit, tfsec, etc.), whilemake scanruns universal scanners.git-cliffruns as part ofmake changelog, which is a standalone target invoked on-demand. It is not included inmake check.gitleaksis one of the few tools that runs both locally (pre-commit) and in CI. The local hook catches secrets immediately; CI provides a final safety net.- Findings at any severity level cause a non-zero exit code. Do not suppress findings without explicit justification in
.trivyignoreor.gitleaks.tomlallowlist. - Both trivy and gitleaks produce JSON output in CI for artifact collection and reporting.
- All tools are pre-installed in the dev-toolchain container. Do not install them on the host.