feat(purl): adopt socketdev typed batch params - #99
Open
lelia wants to merge 1 commit into
Open
Conversation
socketdev 3.4.0 typed batch params
socketdev 3.4.0 typed batch paramssocketdev 3.4.2 typed batch params
lelia
marked this pull request as ready for review
August 5, 2026 20:54
lelia
force-pushed
the
lelia/purl-typed-params-ce-360
branch
from
August 6, 2026 02:28
cc0c2f9 to
5e801c7
Compare
|
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.
|
The core-tool-watch scoring call opted into the batch purl API's fail-closed semantics via stringly-typed query-string kwargs (poll="true", timeoutSec="120", alerts="true") -- an undocumented SDK passthrough. socketdev 3.4.2 promoted these to first-class typed params; migrate to the supported surface. Behavior unchanged (still fail-closed). Floor pinned at socketdev>=3.5.0, which additionally bounds the SDK's runtime dependency ranges and hardens PyPI install verification. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lelia
force-pushed
the
lelia/purl-typed-params-ce-360
branch
from
August 6, 2026 04:21
5e801c7 to
2820504
Compare
socketdev 3.4.2 typed batch params
Contributor
Author
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 2820504. Configure here.
lelia
added a commit
that referenced
this pull request
Aug 6, 2026
Constraint + lock only; the core-tool-watch typed-params migration remains in #99, which rebases on this. Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
socketdev typed batch params
Contributor
Author
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 2820504. Configure here.
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.
What & why
The
core-tool-watchscoring call inscripts/check_core_tools.pyopted into the batch purl API's fail-closed semantics via stringly-typed query-string kwargs (poll="true",timeoutSec="120",alerts="true") — an undocumented SDK passthrough.socketdev(Python SDK) v3.4.2+ promoted these to first-class typed params, so this migrates to the supported surface.Changes
scripts/check_core_tools.py:poll="true"→poll=True,timeoutSec="120"→timeout_sec=120,alerts="true"→alerts=True. Behavior unchanged (still fail-closed).pyproject.toml:socketdev>=3.3.0→socketdev>=3.5.0. Typed params landed in 3.4.2 (on 3.3.0,timeout_secwould be sent as a literaltimeout_secquery param, silently losing thetimeoutSecfail-closed bound); 3.5.0 additionally bounds the SDK's runtime dependency ranges and hardens PyPI install verification.uv.lock: regenerated — socketdev3.3.0→3.5.0.Validation (against the published
3.5.0wheel)uv sync --locked --extra dev).analyze_purlsthrough the real SDK transport: the call producesPOST orgs/<slug>/purl?license=false&poll=true&timeoutSec=120&alerts=truewith the expected components body — typed params map to the exact query params the server expects.notFoundrows survive the SDK's dedupe hardening and map tostatus=not_found(fail-closed semantics intact).check_core_tools.py --mode watchend-to-end run against live GitHub APIs works.Note: core-tool-watch's scan env installs from main's
uv.lock, so the typed params take effect there once this merges.Refs CE-360
Note
Medium Risk
Touches supply-chain guard scoring for pinned core tools; risk is mitigated by intentional behavior parity and a dependency bump with a documented wire-level mapping requirement.
Overview
Core-tool-watch now uses the socketdev SDK’s first-class batch PURL parameters instead of undocumented string query passthroughs. In
analyze_purls,poll="true",timeoutSec="120", andalerts="true"becomepoll=True,timeout_sec=120, andalerts=True— same fail-closed batch semantics (bounded poll, syntheticpendingScan/notFoundrows).The
socketdevfloor moves from>=3.3.0to>=3.5.0inpyproject.tomlso typed params (from 3.4.2+) map correctly to API query names liketimeoutSec;uv.lockis updated to 3.5.0.Reviewed by Cursor Bugbot for commit 2820504. Configure here.