What's Changed
Environment Variable Substitution in INI Config
Support ${VAR} and ${VAR:-default} syntax in INI configuration files (#532, closes #362).
Keep secrets out of version-controlled config files:
[global]
smtp-password = ${SMTP_PASS}
[job-run "backup"]
image = ${BACKUP_IMAGE:-postgres:15}
command = pg_dump ${DB_NAME:-mydb}${VAR}— replaced if defined and non-empty; kept literal if undefined (typos visible)${VAR:-default}— uses default when undefined or empty$VAR(no braces) — not substituted, keeping cron expressions and shell commands safe
Thanks to @nut-neek for describing their use case.
Dependencies
- Bump OpenTelemetry modules to v1.42.0 (#533)
- Bump
step-security/harden-runnerto v2.16.0 (#533) - Bump
aquasecurity/trivy-actionto v0.35.0 (#532) - Bump
google.golang.org/grpcto v1.79.3 (#531)
Full Changelog: v0.21.5...v0.22.0
Verification
All binaries include SLSA Level 3 provenance attestations.
Verify binary provenance
slsa-verifier verify-artifact ofelia-linux-amd64 \
--provenance-path ofelia-linux-amd64.intoto.jsonl \
--source-uri github.com/netresearch/ofeliaVerify checksums signature
cosign verify-blob \
--certificate checksums.txt.pem \
--signature checksums.txt.sig \
--certificate-identity "https://github.com/netresearch/ofelia/.github/workflows/release-slsa.yml@refs/tags/v0.22.0" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
checksums.txt