Skip to content

chore: promote develop to main#1113

Merged
GrammaTonic merged 33 commits intomainfrom
develop
Mar 1, 2026
Merged

chore: promote develop to main#1113
GrammaTonic merged 33 commits intomainfrom
develop

Conversation

@GrammaTonic
Copy link
Owner

Summary

Squash-merge promotion of developmain.

Changes included

Checklist

  • All CI checks passing on develop
  • No merge conflicts
  • Branch is up to date with main

GrammaTonic and others added 30 commits February 27, 2026 19:24
…-update

chore(base-image): migrate questing to resolute across dockerfiles and docs
Squash merge: bump GitHub Actions runner to 2.331.0 and align docs/scripts.
)

* fix: move CODE_SCANNING_FIXES.md to docs/ to resolve documentation structure CI failure (#1098)

* Initial plan

* fix: move CODE_SCANNING_FIXES.md to docs/ to fix documentation structure check

Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com>

* fix: update relative links in CODE_SCANNING_FIXES.md after moving to docs/

Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com>

* Initial plan

---------

Co-authored-by: Syam Sampatsing <gt@grammatonic.nl>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com>
…packages to latest (#1100)

- Node.js: 24.11.1 -> 24.14.0 (LTS Krypton)
- npm: 11.6.4 -> 11.11.0
- Go: 1.25.7 -> 1.26.0 (Chrome-Go runner)
- Playwright: 1.55.1 -> 1.58.2
- @playwright/test: 1.55.1 -> 1.58.2
- Cypress: 13.15.0 -> 15.11.0
- tar: 7.5.6 -> 7.5.9
- brace-expansion: 2.0.2 -> 5.0.4
- @isaacs/brace-expansion: 5.0.0 -> 5.0.1
- glob: 13.0.0 -> 13.0.6
- minimatch: 10.1.1 -> 10.2.4
- diff: 8.0.2 -> 8.0.3

Updated all three Dockerfiles and all documentation references.
…ix CVEs (#1101)

* fix(docker): patch nested node-gyp and @tufjs/models sub-modules to fix CVEs

Fixes 4 HIGH severity CVEs found in Trivy scan of the standard runner image:

- CVE-2025-64756 (glob@10.4.5 in node-gyp nested modules) - Command Injection
  Fixed: glob 10.4.5 to 10.5.0 (NODE_GYP_GLOB_VERSION)

- CVE-2026-26996 (minimatch@9.0.5) - ReDoS via consecutive wildcards
- CVE-2026-27903 (minimatch@9.0.5) - ReDoS via GLOBSTAR backtracking
- CVE-2026-27904 (minimatch@9.0.5) - ReDoS via nested extglobs
  Fixed: minimatch 9.0.5 to 9.0.7 (NESTED_MINIMATCH_VERSION) in both
    node-gyp/node_modules/ and @tufjs/models/node_modules/

Root cause: existing patching replaced top-level npm/node_modules/ but
missed deeply-nested sub-modules under node-gyp and @tufjs/models.

All three Dockerfiles (standard, chrome, chrome-go) updated with:
- Two new ARG variables (NODE_GYP_GLOB_VERSION, NESTED_MINIMATCH_VERSION)
- Extended nested-patch step after top-level patching to replace
  vulnerable packages in node-gyp/node_modules/ and
  @tufjs/models/node_modules/ using the same runner-bundled node binary

* fix(docker): run nested npm install before replacing npm modules

The nested patch npm install was running after top-level module replacement,
causing the runner-bundled npm to crash with:
  npm error Class extends value undefined is not a constructor or null

Fix: both npm installs (top-level and nested) now run against the original
unmodified npm before any rm/cp operations are performed.
Replace broken aquasecurity/trivy-action@master (floating ref pointing to
a broken commit) with pinned stable release 0.34.1 in all workflow files.

The master ref was failing because setup-trivy attempted to fetch
refs/heads/main from aquasecurity/trivy which does not exist, causing
trivy setup to fail and SARIF files to never be generated, resulting in
upload-sarif errors.

Also add continue-on-error: true to SARIF upload steps to prevent
cascading failures if a scan does not produce output.

Files updated:
- .github/workflows/ci-cd.yml (4 instances)
- .github/workflows/release.yml (3 instances)
- .github/workflows/security-advisories.yml (6 instances)
- .github/workflows/maintenance.yml (1 instance)
All trivy-action versions bundle broken setup-trivy@e6c2c5e which fails
to fetch aquasecurity/trivy refs/heads/main. Fix: wget trivy binary
directly from GitHub releases and set skip-setup-trivy: true on all
trivy-action steps across 5 workflow files.
fix(ci): remove broken manual trivy wget install steps
The manual wget steps downloading trivy v0.69.1 from GitHub releases
were failing with exit code 8 (HTTP error). The trivy-action built-in
setup-trivy also fails on cold cache with 'could not find remote ref
refs/heads/main' when cloning aquasecurity/trivy.

Fix: use the Aqua Security apt repository to install trivy, which is
reliably available and more stable than release URL downloads.

Affected workflow files:
- .github/workflows/ci-cd.yml (4 security scan jobs)
- .github/workflows/seed-trivy-sarif.yml (2 jobs)
- .github/workflows/release.yml (1 job)
- .github/workflows/security-advisories.yml (1 job)
- .github/workflows/maintenance.yml (1 job)
- Update Home.md latest updates section to v2.4.0 (2026-03-01)
- Add Chrome-Go column to versions table
- Update all component versions: Node.js 24.14.0, npm 11.11.0, Chrome 146.0.7680.31, Playwright 1.58.2, Cypress 15.11.0, Go 1.26.0, Runner v2.331.0
- Add ubuntu:resolute base image row
- Fix populate-wiki.sh to push/pull master instead of main
* perf: optimize ci-cd pipeline for speed and cost

- Add paths filter to push trigger (skips docs-only commit builds)
- Conditional multi-arch: arm64 only on main, amd64-only on feature/develop
- Pin tonistiigi/binfmt version in setup-qemu-action
- QEMU skipped on amd64-only builds (if: guard + removed from chrome jobs)
- Remove QEMU from build-chrome and build-chrome-go (amd64-only jobs)
- Strip redundant buildcache from cache-to in all three build jobs
- Merge dual tag+digest artifact uploads into single upload per build job
- Remove setup-buildx-action from all three provision-* jobs

* style: fix yamllint trailing-spaces and missing newline errors

Strip trailing whitespace from security-advisories.yml, maintenance.yml,
and dependabot-rebase.yml. Add missing newline at end of
docker/docker-compose.chrome-go.yml. All 34 pre-existing yamllint errors
resolved so the Lint and Validate job passes cleanly.
Squash merge: security workflow optimizations (composite Trivy action, pinned actions, SARIF categories, staggered schedules, jq CRITICAL detection, heredoc fixes)
@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request promotes the develop branch to main, integrating recent performance optimizations for the CI/CD pipeline and critical security enhancements. The merge brings the main branch up to date with the latest stable features and fixes, ensuring improved efficiency and security posture.

Highlights

  • CI/CD Pipeline Optimization: Incorporated changes from PR perf: optimize CI/CD pipeline for speed and cost #1111, focusing on performance and cost efficiency. This includes yamllint fixes, trailing whitespace cleanup, and addressing a missing newline in docker-compose.chrome-go.yml.
  • Critical Security & Workflow Enhancements: Integrated updates from PR fix(security): critical and high priority workflow optimizations #1112, which introduced a composite install-trivy action, pinned versions for TruffleHog and ShellCheck, ensured unique SARIF categories, staggered Monday schedules, scoped advisory caches, implemented jq-based CRITICAL detection in release.yml, and fixed heredoc bugs.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • .github/actions/install-trivy/action.yml
    • Added a new composite GitHub Action to standardize Trivy installation via apt, replacing duplicated inline scripts across workflows.
  • docker/docker-compose.chrome-go.yml
    • Removed a superfluous newline character at the end of the file.
  • scripts/populate-wiki.sh
    • Updated git pull and git push commands to target the master branch instead of main for wiki repository operations.
  • wiki-content/Home.md
    • Updated the 'Latest Updates' section to announce Release v2.4.0, detailing new image versions, base image (ubuntu:resolute), updated browser stack components (Chrome, Playwright, Cypress, Node.js, npm), Go toolchain version, GitHub Actions Runner version, and security overrides.
    • Modified the 'Current Versions' table to include the 'Chrome-Go Runner' column and updated all listed component versions to reflect the v2.4.0 release.
Ignored Files
  • Ignored by pattern: .github/workflows/** (6)
    • .github/workflows/ci-cd.yml
    • .github/workflows/dependabot-rebase.yml
    • .github/workflows/maintenance.yml
    • .github/workflows/release.yml
    • .github/workflows/security-advisories.yml
    • .github/workflows/seed-trivy-sarif.yml
Activity
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request promotes the develop branch to main, incorporating several updates and fixes. The changes include a new composite action for Trivy installation, branch name corrections in a script, and documentation updates for a new release. My review focuses on improving the robustness of the new CI action script.

Comment on lines +11 to +18
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key \
| gpg --dearmor \
| sudo tee /usr/share/keyrings/trivy.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main" \
| sudo tee /etc/apt/sources.list.d/trivy.list
sudo apt-get update -qq
sudo apt-get install -y trivy
trivy --version

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For improved robustness, it's a good practice to include set -e and set -o pipefail at the beginning of your shell scripts. set -e will cause the script to exit immediately if a command exits with a non-zero status. set -o pipefail will cause a pipeline to return the exit status of the last command in the pipe that exited with a non-zero status, which is useful for chains of commands like wget | gpg | tee.

        set -e
        set -o pipefail
        wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key \
          | gpg --dearmor \
          | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null
        echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main" \
          | sudo tee /etc/apt/sources.list.d/trivy.list
        sudo apt-get update -qq
        sudo apt-get install -y trivy
        trivy --version

@GrammaTonic GrammaTonic merged commit c83d393 into main Mar 1, 2026
98 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants