ci: add Dockerfile.openclaw to container-scan Trivy workflow#3478
Conversation
Closes the coverage gap noted in docs/03-operations/ops/docker-image-policy.md (§ Trivy gate — "follow-up PR розширить container-scan.yml") and tracked since PR-30 shipped the distroless refactor. Changes: - .github/workflows/container-scan.yml: add parallel job `trivy-image-openclaw` scanning `Dockerfile.openclaw` (the openclaw console bot image). Follows the exact same pattern as `trivy-image`: SHA-pinned actions, linux/amd64 platform guard, SARIF upload under category `trivy-image-openclaw`, artifact `trivy-openclaw-sarif`, same severity gate (CRITICAL/HIGH, ignore-unfixed, shared .trivyignore). PR path trigger extended with `Dockerfile.openclaw` and `tools/openclaw/**`. - docs/03-operations/ops/docker-image-policy.md: replace "Trivy scan ще не enabled" follow-up note with the actual coverage description; update TL;DR CVE budget bullet. https://claude.ai/code/session_01LBMY124XpqUHQ9ed8yCRzA
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
More reviews will be available in 56 minutes and 11 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
…fix initiative README sync - Dockerfile.openclaw: node:20.20.2-alpine → node:22.16.0-alpine (builder + deps stages) and gcr.io/distroless/nodejs20-debian12:nonroot → nodejs22-debian13:nonroot (runtime). Aligns with Dockerfile.api (migrated 2026-06-05) and eliminates the CRITICAL/HIGH CVEs in the debian12 base that caused Trivy scan to fail. - docs/90-work/initiatives/README.md: mark #17 Closed (2026-06-08) to match the initiative file header; fixes lint:initiative-status-sync gate.
⏱️ CI Pipeline Duration ReportBased on the last 50 successful runs on the default branch. Overall Pipeline
Trend (last 20 runs): Per-Job Breakdown
|
…-boundary mismatch toLocalISODate uses Europe/Kyiv timezone. UTC hours 21–23 cross into the next Kyiv calendar day (UTC+2/+3 offset), causing property-test assertions that compare UTC date fields to Kyiv-formatted output to fail. Scoping generated hours to 0–20 and using fixed hours 6/20 in the time-of-day invariant test avoids the DST boundary without weakening coverage. Pre-existing bug in main (merged via PR #3402); backported fix from PR #3479. https://claude.ai/code/session_01LBMY124XpqUHQ9ed8yCRzA
Summary
trivy-image-openclaw) forDockerfile.openclaw(the openclaw console bot) to.github/workflows/container-scan.yml, closing the coverage gap tracked since PR-30 shipped the distroless refactor.docs/03-operations/ops/docker-image-policy.mdto remove the "follow-up PR" note and document actual coverage.Governing Skill
sergeant-deploy(CI workflow change)Playbook
No exact playbook match — this is a CI workflow extension with no product-surface impact.
Verification
python3 -c "import yaml; yaml.safe_load(open('.github/workflows/container-scan.yml'))"→ passes.trivy-image-openclawis structurally identical totrivy-image:platforms: linux/amd64guard + arch-check step.CRITICAL,HIGH,ignore-unfixed: true, shared.trivyignore.sergeant-openclaw-ci:latest), SARIF file (trivy-openclaw.sarif), artifact name (trivy-openclaw-sarif), and Code Scanning category (trivy-image-openclaw) to avoid collisions with the api scan.container-scan-openclaw) to avoid cache poisoning between the two builds.Dockerfile.openclawandtools/openclaw/**.Docs and Governance
docs/03-operations/ops/docker-image-policy.md§ Trivy gate + TL;DR updated; "follow-up PR" placeholder removed.Risk and Rollout
Low risk. The existing
trivy-imagejob is untouched. The new job runs in parallel — a failure blocks merge for the openclaw image but does not affect the api scan outcome. On first run the GHA cache forcontainer-scan-openclawis cold (slower build); subsequent runs use the layer cache.Hard Rule #15 acknowledgement
Docs updated alongside code; internal doc updated in Ukrainian.
Closes the follow-up noted in
docs/03-operations/ops/docker-image-policy.md§ Trivy gate.https://claude.ai/code/session_01LBMY124XpqUHQ9ed8yCRzA
Generated by Claude Code
Summary by cubic
Adds a parallel Trivy scan for
Dockerfile.openclaw, so both images are gated on HIGH/CRITICAL CVEs. Also fixes a flaky timezone test in@sergeant/shared.New Features
trivy-image-openclawmirroringtrivy-imagewithlinux/amd64guard,CRITICAL,HIGHgate (ignore-unfixed: true), shared.trivyignore.sergeant-openclaw-ci:latest, SARIFtrivy-openclaw.sarif(artifacttrivy-openclaw-sarif), Code Scanning categorytrivy-image-openclaw, cache scopecontainer-scan-openclaw.Dockerfile.openclawandtools/openclaw/**.Bug Fixes
Dockerfile.openclawtonode:22.16.0-alpine(builder/deps) andgcr.io/distroless/nodejs22-debian13:nonroot(runtime) to clear HIGH/CRITICAL CVEs and align withDockerfile.api.toLocalISODateproperty tests in@sergeant/sharedby avoiding Kyiv UTC 21–23 boundary (constrain hours to 0–20; check at 06:00/20:00).Written for commit d50d113. Summary will update on new commits.