Skip to content

Commit 3a822f9

Browse files
committed
fix(deps): add 7-day stabilization delay and cover all Dockerfile tool versions
Supply chain policy: Renovate minimumReleaseAge set to 7 days. New releases must age before PRs are opened, reducing exposure to compromised releases caught within the first week. Renovate now tracks all Dockerfile ARG versions: - TRIVY_VERSION, GRYPE_VERSION, SYFT_VERSION, GITLEAKS_VERSION (previously only OPENGREP, ACTIONLINT, ZIZMOR were tracked) Dependabot config updated with supply chain policy documentation.
1 parent d9a01ca commit 3a822f9

2 files changed

Lines changed: 41 additions & 19 deletions

File tree

.github/dependabot.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# Dependabot configuration for automated dependency updates
22
# Groups updates by semantic version level (major, minor, patch) to reduce PR noise
33
# See: https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
4+
#
5+
# SUPPLY CHAIN POLICY: Weekly schedule provides natural delay. Dependabot lacks
6+
# minimumReleaseAge (Renovate has this for tool versions). Manual review required
7+
# before merging — check release age and community reports for new versions.
8+
# Ref: Trivy supply chain attack GHSA-69fq-xp46-6x23, March 2026.
49

510
version: 2
611
updates:

renovate.yaml

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# Renovate configuration for dependencies Dependabot can't track.
22
# Dependabot handles: GitHub Actions SHAs, npm, pip, Dockerfile FROM.
3-
# Renovate handles: image tags in Python source, tool versions in shell scripts.
3+
# Renovate handles: image tags in Python source, tool versions in shell scripts/Dockerfiles.
4+
#
5+
# SUPPLY CHAIN POLICY: All updates are delayed 7 days after release.
6+
# This provides a stabilization window to catch compromised releases
7+
# (ref: Trivy supply chain attack GHSA-69fq-xp46-6x23, March 2026).
48

59
extends:
610
- config:recommended
@@ -21,53 +25,66 @@ schedule:
2125

2226
timezone: America/New_York
2327

28+
# 7-day stabilization window — do not propose updates until a release
29+
# has been published for at least 7 days. Reduces exposure to supply
30+
# chain attacks that are caught and reverted within the first week.
31+
minimumReleaseAge: 7 days
32+
2433
# ──────────────────────────────────────────────────
2534
# Regex managers — match version strings in non-standard files
2635
# ──────────────────────────────────────────────────
2736

2837
regexManagers:
2938

30-
# Official container image tags pinned in argus/containers.py
31-
# e.g. "aquasec/trivy:0.58.0" → detects trivy, checks Docker Hub
39+
# Container image tags pinned in argus/containers.py
40+
# e.g. "aquasec/trivy:0.69.3" → detects trivy, checks Docker Hub/GHCR
3241
- description: Container image tags in argus/containers.py
3342
fileMatch:
3443
- argus/containers\.py
3544
matchStrings:
3645
- '"(?<depName>[a-z0-9./-]+):(?<currentValue>[^"]+)"'
3746
datasourceTemplate: docker
3847

39-
# Tool versions pinned as shell variables in composite actions
40-
# e.g. OPENGREP_VERSION=1.18.0, ZIZMOR_VERSION=1.23.1
41-
- description: Tool versions pinned in GitHub Actions (TOOL_VERSION= pattern)
48+
# Tool versions pinned as ARG in Dockerfiles
49+
# e.g. ARG TRIVY_VERSION=0.69.3
50+
- description: Tool versions in Dockerfiles (ARG pattern)
4251
fileMatch:
43-
- \.github/actions/.+/action\.yml
52+
- docker/Dockerfile\..+
4453
matchStrings:
45-
- (?<depName>OPENGREP)_VERSION[=:]\s*['"]?(?<currentValue>[\d.]+)['"]?
46-
- (?<depName>ACTIONLINT)_VERSION[=:]\s*['"]?(?<currentValue>[\d.]+)['"]?
47-
- (?<depName>ZIZMOR)_VERSION[=:]\s*['"]?(?<currentValue>[\d.]+)['"]?
54+
- ARG (?<depName>TRIVY)_VERSION=(?<currentValue>[\d.]+)
55+
- ARG (?<depName>GRYPE)_VERSION=(?<currentValue>[\d.]+)
56+
- ARG (?<depName>SYFT)_VERSION=(?<currentValue>[\d.]+)
57+
- ARG (?<depName>GITLEAKS)_VERSION=(?<currentValue>[\d.]+)
58+
- ARG (?<depName>ACTIONLINT)_VERSION=(?<currentValue>[\d.]+)
59+
- ARG (?<depName>OPENGREP)_VERSION=(?<currentValue>[\d.]+)
60+
- ARG (?<depName>ZIZMOR)_VERSION=(?<currentValue>[\d.]+)
4861
datasourceTemplate: github-releases
4962
lookupNameTemplate: >-
50-
{{#if (equals depName 'OPENGREP')}}opengrep/opengrep{{/if}}
63+
{{#if (equals depName 'TRIVY')}}aquasecurity/trivy{{/if}}
64+
{{#if (equals depName 'GRYPE')}}anchore/grype{{/if}}
65+
{{#if (equals depName 'SYFT')}}anchore/syft{{/if}}
66+
{{#if (equals depName 'GITLEAKS')}}gitleaks/gitleaks{{/if}}
5167
{{#if (equals depName 'ACTIONLINT')}}rhysd/actionlint{{/if}}
68+
{{#if (equals depName 'OPENGREP')}}opengrep/opengrep{{/if}}
5269
{{#if (equals depName 'ZIZMOR')}}woodruffw/zizmor{{/if}}
5370
54-
# Tool versions in custom Dockerfiles (ARG pattern)
55-
# e.g. ARG OPENGREP_VERSION=1.18.0
56-
- description: Tool versions in custom Dockerfiles
71+
# Tool versions pinned as shell variables in composite actions
72+
# e.g. OPENGREP_VERSION=1.18.0
73+
- description: Tool versions pinned in GitHub Actions (TOOL_VERSION= pattern)
5774
fileMatch:
58-
- docker/Dockerfile\..+
75+
- \.github/actions/.+/action\.yml
5976
matchStrings:
60-
- ARG (?<depName>OPENGREP)_VERSION=(?<currentValue>[\d.]+)
61-
- ARG (?<depName>ACTIONLINT)_VERSION=(?<currentValue>[\d.]+)
62-
- ARG (?<depName>ZIZMOR)_VERSION=(?<currentValue>[\d.]+)
77+
- (?<depName>OPENGREP)_VERSION[=:]\s*['"]?(?<currentValue>[\d.]+)['"]?
78+
- (?<depName>ACTIONLINT)_VERSION[=:]\s*['"]?(?<currentValue>[\d.]+)['"]?
79+
- (?<depName>ZIZMOR)_VERSION[=:]\s*['"]?(?<currentValue>[\d.]+)['"]?
6380
datasourceTemplate: github-releases
6481
lookupNameTemplate: >-
6582
{{#if (equals depName 'OPENGREP')}}opengrep/opengrep{{/if}}
6683
{{#if (equals depName 'ACTIONLINT')}}rhysd/actionlint{{/if}}
6784
{{#if (equals depName 'ZIZMOR')}}woodruffw/zizmor{{/if}}
6885
6986
# ──────────────────────────────────────────────────
70-
# Grouping — reduce PR noise
87+
# Grouping and policies
7188
# ──────────────────────────────────────────────────
7289

7390
packageRules:

0 commit comments

Comments
 (0)