Skip to content

Weekly: Promote nightly to main (2026-08-17) - #1255

Open
github-actions[bot] wants to merge 60 commits into
mainfrom
nightly
Open

Weekly: Promote nightly to main (2026-08-17)#1255
github-actions[bot] wants to merge 60 commits into
mainfrom
nightly

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

🚀 Weekly Nightly to Main Promotion

Date: 2026-08-17
Trigger: Scheduled weekly promotion
Commits: 60 commits to promote
Changes: 46 files changed, 1484 insertions(+), 908 deletions(-)


Commits Being Promoted

Showing first 50 of 60 commits:

13ec1487 chore(docker): update GeoLite2-Country.mmdb checksum (#1254)
3e0cf116 chore(docker): update GeoLite2-Country.mmdb checksum
7db4e989 chore(deps): update dependency aquasecurity/trivy to v0.74.0 (#1252)
3e9dd35c chore(deps): update dependency aquasecurity/trivy to v0.74.0
b9384e96 chore(deps): update module github.com/klauspost/compress to v1.19.2 (#1251)
fcdbb0ba chore(deps): update module github.com/klauspost/compress to v1.19.2
7cf1da59 fix(security): patch vulnerable transitive dependency in bundled CrowdSec and Caddy binaries
6a84ab8a chore(deps): update actions/upload-artifact action to v7 (#1250)
b32e0992 fix(security): make origin check visible to static analysis at every WS upgrade call site
e1f5eef1 fix: restore nosemgrep suppressions for shared WS upgrader origin check
438b2c8c chore: drop last stale nosemgrep suppression on shared WS upgrader
ad246fe7 chore: drop stale nosemgrep suppressions on shared WS upgrader
334d0a08 fix: revert nightly SBOM format from CycloneDX to SPDX-JSON
2865177d chore(deps): update actions/upload-artifact action to v7
d6bceaa9 chore(deps): update go-non-major (#1249)
da8d13cc docs: mark Semgrep Renovate follow-up resolved
035387ed docs: finalize Semgrep CI plan, QA report, and manual test tracking
9dc2be4e chore(deps): track pinned Semgrep image in Renovate
3257028e fix: correct jq escaping bug in PR Trivy findings renderer
7c6fb04f docs: document Semgrep CI scan in SECURITY.md and ARCHITECTURE.md
2fbecf07 feat(security): add pinned Semgrep SAST scan to CI, mirroring local pre-commit/pre-push scan
a0aa9415 fix(security): patch vulnerable transitive dependency in bundled CrowdSec binaries
6bf066f8 feat(security): add opt-in SARIF output mode to local Semgrep script and add CI parity guard
939ddb78 chore(deps): update go-non-major
c510085f chore: bump electron-to-chromium to 1.5.406
ac26ef64 chore: bump Go toolchain to 1.26.6 and update golang.org/x deps
f3c6e467 chore(deps): update github-actions-non-major (#1248)
d252a929 chore(deps): update github-actions-non-major
0778efc4 chore(deps): update baseline-browser-mapping to v2.11.14
7a6caf78 chore(deps): update logrus to v1.10.0
e82c1617 chore(deps): update logrus to v1.10.0 and add golang.org/x/sys v0.13.0
07f4cc01 chore(deps): update module golang.org/x/net to v0.58.0 (#1247)
673044dc chore(deps): update module golang.org/x/net to v0.58.0
d54ad479 chore(deps): update dependency anchore/syft to v1.51.0 (#1246)
d370fed6 chore(deps): update dependency anchore/syft to v1.51.0
4eccb0ce chore(deps): update dependency github/codeql-cli-binaries to v2.26.3 (#1245)
ddc209b5 fix: retry grype installer against transient GitHub failures
99f7ba98 fix: add attribution section to settings.json for commit and PR tracking
b6af07c4 fix: extend renovate syft version tracking to sbom-action input and new fallback scripts
47b8dc9b chore(deps): update dependency github/codeql-cli-binaries to v2.26.3
ea52229f fix: add pinned-Syft fallback for transient SBOM generation failures
6fa8fa40 chore(deps): update @oxc-project/types and @rolldown bindings to version 1.2.4
9fd0c770 chore(deps): update @napi-rs/wasm-runtime to v1.2.3 and other dependencies to v1.2.4
a51ae855 chore(deps): update golang.org/x/net to v0.58.0
975be9c5 chore(deps): update dependency @testing-library/user-event to ^14.6.4 (#1244)
d89ad49a chore(deps): update dependency @testing-library/user-event to ^14.6.4
d89288cc chore(deps): update module golang.org/x/crypto to v0.55.0 (#1243)
ae56a670 chore(deps): update module golang.org/x/crypto to v0.55.0
6436226f fix: avoid npm-check-updates crash on multi-entry overrides update
e1c6f49d chore(deps): update npm dependencies

...and 10 more commits


Pre-Merge Checklist

  • All status checks pass
  • No critical security issues identified
  • Changelog is up-to-date (auto-generated via workflow)
  • Version bump is appropriate (if applicable)

⚠️ Merge Instructions — CRITICAL

You MUST use "Create a merge commit" — NOT squash or rebase.

Squash merging collapses all feat:/fix: commits into a single bullet-list body.
The auto-versioning workflow cannot parse these bullets, so minor version bumps are
silently skipped and release notes only show the weekly PR title instead of real changes.

Once all checks pass:

  1. Review the commit summary above
  2. Approve if changes look correct
  3. Merge → click the dropdown arrow → select "Create a merge commit"

This PR was automatically created by the Weekly Nightly Promotion workflow.

renovate Bot and others added 30 commits August 10, 2026 21:06
Root: @axe-core/playwright ^4.12.1 -> ^4.13.0, overrides.smol-toml
^1.7.1 -> ^1.8.0. Frontend: knip ^6.32.1 -> ^6.32.2.
ncu throws an unhandled "Overlapping edit" rejection (upstream bug)
when --dep overrides is asked to rewrite more than one entry of
package.json in a single pass. Update overrides packages one at a
time instead.
anchore/sbom-action resolves its pinned syft release tag against the
GitHub API at job runtime; a transient upstream 5xx there fails the
step even though the pin is a valid release. supply-chain-pr.yml,
supply-chain-verify.yml, and docker-build.yml previously had no
resilience against this. Apply the same continue-on-error + verified
pinned-Syft-binary fallback that nightly-build.yml already used, so
all four SBOM generation steps degrade gracefully instead of failing
the job outright.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ew fallback scripts

The custom syft regex manager only watched nightly-build.yml and the security-scan skill script, so Renovate never picked up the syft-version: input consumed by anchore/sbom-action across all four workflows, nor the new SYFT_VERSION bash fallback added to supply-chain-pr.yml, supply-chain-verify.yml, and docker-build.yml. Widen file coverage to all four workflows and add a matchString for the syft-version: field so both pins stay renovate-tracked.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Wrap the direct Grype install.sh download in a bounded retry loop
with backoff so a single transient GitHub failure (503s, rate
limiting) during that step doesn't fail the supply-chain-pr job.
Pinned version and install target are unchanged; install.sh's own
internal verification is untouched.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
renovate Bot and others added 28 commits August 13, 2026 16:32
…and add CI parity guard

Adds a backward-compatible SEMGREP_SARIF_OUTPUT hook to
semgrep-scan.sh so CI can reuse the exact same rule configs,
exclusions, and severity gate as the local pre-commit/pre-push scan
instead of duplicating them in workflow YAML. Every existing call
site (lefthook pre-commit, security-full, make security-local) never
sets this var, so behavior is byte-identical to before.

Adds scripts/ci/check-semgrep-parity.sh, a structural guard that
verifies the upcoming Semgrep CI workflow keeps delegating to this
script rather than reintroducing an inline semgrep invocation.

Also extracts the branch-list assertion helpers shared between
check-codeql-parity.sh and check-semgrep-parity.sh into
scripts/ci/lib/workflow-yaml-asserts.sh (no behavior change).
…dSec binaries

Pin golang.org/x/mod to the fixed release in the crowdsec-builder Docker
stage, following the same explicit go-get-then-tidy pattern already used
for the other transitive CVE patches in that stage. go mod tidy's MVS
resolution otherwise lands on an older, vulnerable version even though
Charon's own backend already depends on the fixed release.

Verified locally: `docker build --target crowdsec-builder` compiles clean
and `go version -m` on both /usr/local/bin/crowdsec and cscli confirms the
patched module version is embedded in the resulting binaries.
…re-commit/pre-push scan

Adds .github/workflows/semgrep.yml, running Semgrep inside the
official semgrep/semgrep:1.173.0 container image (pinned by tag +
digest), triggered on pull_request/push to [main, nightly,
development], workflow_dispatch, and a weekly schedule.

The job delegates to scripts/pre-commit-hooks/semgrep-scan.sh for
both a non-blocking SARIF-producing pass (uploaded to the GitHub
Security tab) and a hard-fail gate pass, so CI reproduces the exact
same rule configs/exclusions/severity gate as the local scan instead
of maintaining a second, duplicated invocation. The parity guard from
the previous commit runs first to structurally verify this stays
true.

Mirrors codeql.yml's trigger/concurrency/permissions shape and
security-pr.yml's SARIF-then-gate step split, reusing the same
pinned actions/checkout, codeql-action/upload-sarif, and
upload-artifact SHAs already in use elsewhere in this repo.
Adds Semgrep to SECURITY.md's Automated Scanning table and describes
the new semgrep.yml workflow under Scanning Workflows. Updates
ARCHITECTURE.md's tech-stack table, CI Jobs list, and Container
Scanning components list to include Semgrep alongside the existing
Trivy/CodeQL/Grype coverage.
The "Diagnose unsuppressed PR Trivy blockers" step's per-finding jq
program was double-escaping double quotes (\") inside an already
single-quoted bash string, so bash passed literal backslashes through
to jq and the program failed to compile ("unexpected INVALID_CHARACTER").
The step's pass/fail gate was unaffected (it reads FINDINGS_COUNT from a
separate, correctly-escaped jq call), but the per-finding detail lines
always fell back to "unable to render parsed findings".

Also widened the package-name capture regex to include `/`, since Go
module paths (e.g. golang.org/x/mod) were being truncated at the first
slash.

Verified by replaying the actual SARIF shape from the failed run
(PR #1249) through both the old and new jq programs locally.
Add a custom regex manager so Renovate opens update PRs for the
semgrep/semgrep container image pinned in .github/workflows/semgrep.yml,
matching this repo's existing pattern for other pinned image digests.
Record the final plan revisions and QA verification results from the
Semgrep CI rollout, and track the two known CI-only follow-ups
(timeout tuning, Renovate coverage) as a manual test plan to verify
once the workflow runs for real.
Grype v0.110.0 (the default pulled by anchore/scan-action@v7.4.0, no
grype-version pin set) cannot parse CycloneDX spec 1.7 as emitted by
syft v1.51.0, causing verify-nightly-supply-chain to fail with
"sbom format not recognized". Switch SBOM generation (primary and
pinned-Syft fallback) and its jq validation back to SPDX-JSON, which
the pinned Grype version parses correctly.
hecate_ws_handler.go and stats_handler.go both use the shared upgrader
in logs_ws.go, which already enforces CheckOrigin. Replace the
nosemgrep comments with a plain note pointing at the real check,
matching cerberus_logs_ws.go.
cerberus_logs_ws.go already had the explanatory comment but still
carried the nosemgrep tag from before the shared upgrader's
CheckOrigin was added. Matches the cleanup already applied to
hecate_ws_handler.go and stats_handler.go.
Reverts the prior cleanup that dropped the inline nosemgrep tags.
Semgrep's OSS engine can't do cross-file analysis to see that the
shared upgrader (logs_ws.go) already has CheckOrigin configured, so
without the suppression it flags every call site independently and
blocks CI. Keep the explanatory comment plus the suppression.
…WS upgrade call site

Semgrep's SARIF output still records nosemgrep-suppressed findings
(for audit purposes), and GitHub code scanning wasn't auto-dismissing
those instances, so alerts stayed open despite CI passing. Semgrep's
OSS engine can't do cross-file analysis to see the shared upgrader's
CheckOrigin from a different file.

Add upgradeWebSocket(c) in logs_ws.go, next to the CheckOrigin-configured
upgrader, and route every handler through it instead of calling
upgrader.Upgrade directly. The actual Upgrade call now lives in the
same file as the origin check, so the rule no longer fires and no
suppression is needed anywhere.
…dSec and Caddy binaries

Pins the dependency to its fixed release in both build stages, same
pattern used for the existing golang.org/x/crypto patch, and adds a
Renovate customManager entry to track future bumps.
Automated checksum update for GeoLite2-Country.mmdb database.

Old: b4f624e1411c28701d724503b8d15ed4997de70cb6ea05d6f11bf572ea552240
New: 8cc00bbcd9734df804acc36196c84abe65c2ef4beb4294c2bf4d25ac356db933

Auto-generated by: .github/workflows/update-geolite2.yml
@github-actions github-actions Bot added automated Automatically generated by CI/CD weekly-promotion Weekly promotion from nightly to main labels Aug 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated Automatically generated by CI/CD weekly-promotion Weekly promotion from nightly to main

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant