Harden dependency review checks across PR types#224
Merged
Conversation
The e2e job is skipped on PRs that can't access repository secrets (forks and Dependabot). Because it's skipped via a job-level `if`, its matrix never expands, so the required e2e-* check contexts are never created and branch protection waits on them indefinitely, blocking merge. Add an e2e-bypass job whose `if` is the exact negation of the e2e job's run condition. It emits the same e2e-* check names with a passing status for fork/Dependabot PRs, satisfying branch protection without running the real tests. The two jobs are mutually exclusive and exhaustive: every PR runs exactly one. Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
|
🚀 Preview package published! Install with: pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple socketsecurity==2.4.5.dev1Docker image: |
e2e-* checks on fork + Dependabot PRs
The Socket Firewall enterprise smoke job is the most meaningful supply-chain check for maintainer-added dependencies, but it can't be required directly: it's conditional (per-manifest, and free-vs-enterprise per author), so on most PRs it's legitimately skipped -- and a required check whose job is skipped sits at "Expected -- Waiting for status" forever, blocking merge (the same trap that stranded Dependabot PRs on the e2e-* checks). Add a dependency-review-gate job that always runs and collapses every smoke job into one pass/fail signal: it fails iff any job that ran ended in failure or was cancelled; success and skipped both pass. This is the single check intended to be marked required later -- it satisfies Dependabot/fork PRs (which run Firewall-free) and maintainer PRs (Firewall-enterprise) alike, and turns a Socket Firewall BLOCK into a merge-blocking failure instead of a non-required job nobody is forced to run. Scaffolding only: the gate is not yet added to branch protection's required checks (deferred until it's merged to main and observed reporting). Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
e2e-* checks on fork + Dependabot PRs
Eric Hibbs (flowstate)
approved these changes
Jun 3, 2026
Follows the 2.4.4 release (SDK >=3.2.0) by picking up socketdev 3.2.1. Regenerates uv.lock to the published 3.2.1 release; no CLI logic changes. Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two related fixes to make the hardened dependency-review / e2e CI work correctly as required checks across Dependabot, fork, and maintainer PRs — without leaving any class of PR permanently stuck.
1. Report
e2e-*checks on fork and Dependabot PRs (e2e-test.yml)The
e2ejob is skipped on PRs that lack repository secrets (forks and Dependabot). Because it's skipped via a job-levelif, its matrix never expands, so thee2e-*check contexts are never created and required checks wait on them indefinitely (Expected — Waiting for status to be reported), permanently blocking merge.Adds an
e2e-bypassjob whoseifis the exact negation of thee2ejob's run condition. It emits the samee2e-*check names (scan,sarif,reachability,gitlab,json,pypi) with a passing status for fork/Dependabot PRs. The two jobs are mutually exclusive and exhaustive: every PR runs exactly one, never both, never neither. Push andworkflow_dispatchcontinue to run the real suite.2. Add
dependency-review-gateaggregator check (dependency-review.yml)The Socket Firewall enterprise smoke job is the most meaningful supply-chain check for maintainer-added dependencies, but it can't be marked required directly: it's conditional (per-manifest, and free-vs-enterprise per author), so on most PRs it's legitimately skipped — and a required-but-skipped check hits the same "waiting forever" trap.
Adds a
dependency-review-gatejob that always runs (if: always()) and collapses every smoke job into one pass/fail signal: it fails iff any job that ran ended infailure/cancelled;successandskippedboth pass. This is the single check intended to be required later — it satisfies Dependabot/fork PRs (Firewall-free) and maintainer PRs (Firewall-enterprise) alike, and turns a Socket Firewall block into a merge-blocking failure instead of a non-required job nobody is forced to run.Scaffolding only: the gate is not yet added to branch protection's required checks — that's deferred until it's merged to
mainand observed reporting (otherwise other open PRs would get stuck on it).Also in this PR: release 2.4.5 (bundled)
Cutting the release from this branch, so it also carries:
2.4.5(pyproject.toml,socketsecurity/__init__.py)socketdev>=3.2.1(was>=3.2.0from Bump required SDK version to>=3.2.0#222 / v2.4.4);uv.lockregenerated to the published 3.2.1CHANGELOG.md2.4.5 entryNo CLI logic changes in the bump.