Skip to content

fix(deps): clear pnpm audit on main (unfixable deepmerge advisory) - #636

Merged
don-petry merged 1 commit into
mainfrom
fix/dependency-audit-deepmerge
Nov 5, 2026
Merged

don-petry merged 1 commit into
mainfrom
fix/dependency-audit-deepmerge

Conversation

@don-petry

@don-petry don-petry commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Clears the pnpm audit failure in dependency-audit on main (run 41763096687), ahead of the org ruleset requiring dependency-audit / Audit gate (combsmith/.github#1470, #1406).

Advisory Severity State on main Action
GHSA-gcqx-w48m-w2h4 deepmerge 4.2.0–4.3.1 low 4.3.1 via @expo/config (SDK 55) and jest-config 29 Ignored in pnpm-workspace.yaml audit.ignore with a re-evaluation trigger. No patched deepmerge exists on npm (4.3.1 is latest; GitHub lists no patched version), so no upgrade or override can fix it. Only @expo/config 58 drops it, which is an Expo SDK major upgrade.
GHSA-g3hv-75wg-m249 minimatch moderate no longer matches None. The advisory range is now >=7.0.0 <11.0.1; the lockfile resolves only minimatch 3.1.5 and 11.0.4 (the existing minimatch@>=9.0.0 <11.0.1 override covers 9.x/10.x). Local pnpm audit no longer reports it.

deepmerge here merges developer-controlled app/jest config at build and test time, not runtime input.

govulncheck (not fixed here)

The govulncheck job on main is a tool crash, not a finding: panic: unexpected expr: *ast.KeyValueExpr in golang.org/x/tools@v0.29.0/go/ssa while building SSA for ./apps/api. The shared reusable pins govulncheck@v1.1.4 and installs Go stable (now 1.27.3) with GOTOOLCHAIN=local. Reproduced locally with v1.1.4 + Go 1.27.3 targeting linux/amd64; govulncheck v1.9.0 on the same toolchain reports No vulnerabilities found. for apps/api. The fix belongs in combsmith/.github dependency-audit-reusable.yml, so Audit gate on this PR will stay red until that lands.

Local checks

  • pnpm install --frozen-lockfile, pnpm run lint, pnpm run typecheck, pnpm run test: pass
  • pnpm audit --audit-level low: exit 0 (1 low (1 ignored) | 3 high (3 ignored))
  • go vet, go build, go test ./... in apps/api: pass

🤖 Generated with Claude Code

View guided diff Turn on auto-fix

pnpm audit on main fails on GHSA-gcqx-w48m-w2h4 (deepmerge 4.2.0-4.3.1,
low). No patched deepmerge is published (4.3.1 is latest), so no upgrade
or override can clear it. It reaches the lockfile only via @expo/config
(SDK 55) and jest-config 29, which merge developer-controlled config at
build/test time. Ignore it with a re-evaluation trigger, matching the
existing image-size/braces/zod entries.

The minimatch advisory (GHSA-g3hv-75wg-m249) in the same run no longer
matches: its range is now >=7.0.0 <11.0.1, and the lockfile resolves
only minimatch 3.1.5 and 11.0.4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@don-petry
don-petry requested a review from a team as a code owner November 4, 2026 21:23
@don-petry don-petry added the dev-lead:hands-off Exclude from dev-lead agent automation label Nov 4, 2026
@don-petry

Copy link
Copy Markdown
Contributor Author

@donpetry-bot please review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-04T21:24:58.678138Z 7d5e967 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Explain Change →

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

Parsing errors: 1
Validation error: Invalid input: expected string, received object at "reviews.path_filters[3]"
Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

No actionable comments were generated in the recent review.

Summary

Summary by CodeRabbit

  • Documentation
    • Added details about the deepmerge security advisory, including affected dependency paths and suppression conditions.
  • Chores
    • Updated the dependency audit ignore list to include the advisory.

The workspace configuration documents the deepmerge advisory, its dependency paths, and conditions for reevaluating the suppression. It adds GHSA-gcqx-w48m-w2h4 to the audit ignore list.

Changes: Deepmerge audit suppression

Layer / File(s) Summary
Document and suppress the advisory
pnpm-workspace.yaml
Comments describe the advisory, affected versions, dependency paths, and conditions for reevaluating the suppression. The audit ignore list now includes GHSA-gcqx-w48m-w2h4.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Possibly related PRs

  • combsmith/broodly#634: This PR also changes the audit ignore list in pnpm-workspace.yaml and discusses the same deepmerge advisory.
Merge Risk: Minimal · up to 7d5e9

The change only suppresses the documented unfixable advisory; it does not alter runtime dependencies or application behavior.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly identifies the main change: clearing the pnpm audit failure by handling an unfixable deepmerge advisory.
Description check Passed The description directly explains the audit advisory, the ignore configuration, affected dependencies, validation results, and the separate govulncheck workflow issue.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Share
Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 1fb54048-060a-4d01-8df9-edc86f3b9355
Commits

Reviewing files that changed from the base of the PR and between e1aa5da and 7d5e967.

Files selected for processing: 1
  • pnpm-workspace.yaml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

@don-petry

don-petry commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor Author
Superseded — dev-lead is now withholding action under the `needs-human-review` label. Click to expand the prior `dev-lead:hands-off` hold notice.

dev-lead is withholding action on this item.

It is labeled dev-lead:hands-off (deliberately kept off-limits to dev-lead (e.g. changes to the dev-lead automation itself)), so dev-lead will not pick it up while that label is present. This notice is posted once so the withhold is visible rather than looking like a stalled run.

To re-enable automated pickup: remove the dev-lead:hands-off label.

@donpetry-bot

Copy link
Copy Markdown
Contributor

@don-petry I'm on it — starting a fresh review now. Results will appear in a few minutes.

@sonarqubecloud

This comment has been minimized.

@donpetry-bot

Copy link
Copy Markdown
Contributor

Automated review — escalated to human

The automated review cascade escalated this PR to a human reviewer at review cycle 0/3 (risk: HIGH, reviewed commit 7d5e9678e1421347addd93588d2946224b2b41a8).

Why: the cascade could neither approve the PR nor auto-request fixes, so it requested human review via CODEOWNERS and set the needs-human-review label. A human should review the PR, or remove the needs-human-review label to re-engage the automated cascade.

Reviewer summary: This PR adds GHSA-gcqx-w48m-w2h4 (deepmerge 4.2.0-4.3.1, low severity) to audit.ignore in pnpm-workspace.yaml, with a clear comment and a trigger for re-checking it. The change adds no code, secrets, workflows or new dependencies, and the stated reason (deepmerge only merges developer-controlled config at build and test time) is believable. The org rubric still rates any suppression of a security-scanner finding as HIGH, and gate 2 fails: dependency-audit / govulncheck and dependency-audit / Audit gate are failing at head and CodeRabbit was still running. A human should own the decision to accept this advisory. The main claims could not be checked here because the lockfile, npm registry and advisory data were not available.

This note is updated in place on re-escalation; it is not re-posted.

@don-petry

Copy link
Copy Markdown
Contributor Author

dev-lead is withholding action on this item.

It is labeled needs-human-review (flagged for human review — this label is applied by automation as well as by people, so an item can become held without anyone noticing), so dev-lead will not pick it up while that label is present. This notice is posted once so the withhold is visible rather than looking like a stalled run.

To re-enable automated pickup: remove the needs-human-review label.

@don-petry
don-petry merged commit c68638c into main Nov 5, 2026
47 of 49 checks passed
@don-petry
don-petry deleted the fix/dependency-audit-deepmerge branch November 5, 2026 00:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dev-lead:hands-off Exclude from dev-lead agent automation needs-human-review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants