Skip to content

Enable Dependabot version updates (PIN-4) - #685

Open
jhamon wants to merge 1 commit into
mainfrom
security/enable-dependabot
Open

jhamon wants to merge 1 commit into
mainfrom
security/enable-dependabot

Conversation

@jhamon

@jhamon jhamon commented Jul 11, 2026 •

Copy link
Copy Markdown
Collaborator

What

Adds .github/dependabot.yml enabling weekly, grouped Dependabot version updates.

Ecosystems covered: uv (python), cargo (rust), github-actions.

Why

Part of standing up the security fast-patch process (PIN-4). Keeping dependencies close to their latest patched release shrinks the diff and time needed to ship a fix when a security advisory lands. Dependabot security updates (auto patch PRs on advisories) and vulnerability alerts are already enabled on this repo; this adds the routine version-update cadence.

Minor/patch updates are grouped into a single PR per ecosystem to keep review noise low; majors come as individual PRs.

Review notes

Config only — no code changes. First run may open a batch of update PRs; that is expected. Adjust open-pull-requests-limit or schedule if the cadence is too noisy.


Note

Low Risk
CI/dependency automation config only; no application code or runtime behavior changes.

Overview
Introduces .github/dependabot.yml to run weekly Dependabot version updates for uv (Python), Cargo (Rust), and GitHub Actions, complementing existing security alerts and advisory-driven updates (PIN-4).

For uv and Cargo, minor and patch bumps are grouped into one PR per ecosystem (cap 10 open update PRs each). GitHub Actions updates are grouped under a single weekly PR. Major version bumps are not grouped and should still arrive as separate PRs.

Reviewed by Cursor Bugbot for commit e942467. Bugbot is set up for automated code reviews on this repo. Configure here.

Adds .github/dependabot.yml with weekly, grouped dependency updates so we
stay close to patched releases and can fast-patch security advisories.

Part of PIN-4 (security fast-patch process).
jhamon added a commit that referenced this pull request Oct 20, 2026
…ng it (#651)

* fix(validation): reject a non-str where a name or id is required

require_non_empty reached .strip() on whatever it was handed, so an int
raised AttributeError naming strip, and a non-empty list passed the guard
entirely and died inside urllib.parse.quote several frames later. Both are
now a PineconeValueError naming the parameter and the type it received.

The list branch goes with it: no caller in pinecone/ passes a list, and one
that got through could only have been a path parameter on its way to quote.

* fix(assistants,backups): refuse a non-str path parameter instead of coercing it

The assistants surface and backups.list wrapped each interpolation as
quote(str(...)), so an int id or a UUID reached the API as its str data and
named a resource that cannot exist. Every other path-parameter site already
refused. Type-correctness is not value-validation, so refusing here narrows
minimal validation rather than reversing it.

None keeps its documented meaning on backups.list: an omitted index_name
still lists backups across every index.

* test(paths): sweep every path parameter with a value of the wrong type

Drives the three existing operation tables with an int, a bool, a list and a
UUID, asserting a PineconeValueError that names the parameter and the type,
that nothing reaches the wire, and that both lanes word it identically.

Inverts the four tests that pinned coercion on backups.list and the
assistants surface.

* fix(imports): refuse a bulk-import id the URL encoder cannot take

describe_import and cancel_import document id as str | int and stringify an
int. Everything else fell through: a list reached urllib.parse.quote and
raised TypeError, a float died in len(). Both now raise PineconeValueError
naming the type, on all three lanes that build the path.

The documented int coercion is untouched.

* docs(migration): name the non-URL arguments the type guard also refuses

The path-parameter entry scoped the break to names and IDs the SDK
interpolates into a URL. The same guard fronts twelve arguments that never
reach one, so those move from AttributeError to PineconeValueError too and a
caller with an except AttributeError around inference.rerank(query=123) could
not find them in the guide.

* fix(paths): raise PineconeTypeError, not PineconeValueError, for a non-str name or id

Per the #87 decision, an argument rejected because of its type raises
PineconeTypeError; PineconeValueError stays for a right-typed, unusable value.
require_str and the bulk-import id guards now raise PineconeTypeError. Blank
strings still raise PineconeValueError, and the five pre-existing inline type
checks (namespace, vector id, id prefix) keep their class (tracked in #685).

This branch has not been deployed

No deployments
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.

1 participant