Repository navigation
chore(deps): update aiohttp, multidict, PyJWT, and required yarl security floors - #4127
dependabot[bot] wants to merge 5 commits into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Castiron custom codeEvaluated main: Trusted main policy: ✅ No new custom-code files detected. 0 mixed files remain; 0 existing customizations changed. Compared A changed generated baseline means this report cannot reliably identify which handwritten lines changed. Inspect the custom-code diffDownload the exact patch produced by this run (requires repository access): gh run download 40424732548 --repo openai/openai-python \
--name castiron-custom-code-40424732548-1 --dir /tmp/castiron-custom-code-40424732548-1
git apply --stat /tmp/castiron-custom-code-40424732548-1/custom-code.patch
cat /tmp/castiron-custom-code-40424732548-1/custom-code.patchOr reproduce it from an SDK checkout containing the vendored reporter: git fetch --no-tags origin a3f430241c4a2e3e25bf79cc7d0148e51795a292 dff32147ace9320bb2fafeddc05819883b10ec13
python3 scripts/castiron/custom_code_report.py report \
--base a3f430241c4a2e3e25bf79cc7d0148e51795a292 \
--head dff32147ace9320bb2fafeddc05819883b10ec13 --target-branch main --fetch --require-head-hash --public \
--out /tmp/castiron-custom-code-dff32147ace9
cat /tmp/castiron-custom-code-dff32147ace9/custom-code.patchThis is the current full custom patch for mixed files, not an attribution of only the handwritten lines changed by this PR. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1b9bcf031f
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
1b9bcf0 to
6157b25
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6157b25a82
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
6157b25 to
3ede68c
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3ede68ca15
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
797970b to
ac2530e
Compare
… updates --- updated-dependencies: - dependency-name: aiohttp dependency-version: 3.14.4 dependency-type: direct:production dependency-group: python-security - dependency-name: multidict dependency-version: 6.9.1 dependency-type: indirect dependency-group: python-security - dependency-name: pyjwt dependency-version: 2.15.0 dependency-type: indirect dependency-group: python-security ... Signed-off-by: dependabot[bot] <support@github.com>
ac2530e to
51b992f
Compare
markstuart-oai
left a comment
There was a problem hiding this comment.
Reviewed 2fe1c2ed889751871a4951be5e1ed26857c8b6ec. No blocking findings. The aiohttp extra carries the updated aiohttp, multidict and yarl floors, while PyJWT remains a contributor dependency constraint. Python support is unchanged. The query regression covers repeated parameters, literal plus and percent characters, Unicode, and empty values.
Source review and an independent pass verified the four releases against official PyPI metadata, including all 472 locked artifact URLs, sizes and SHA-256 hashes. No candidate tests, builds or installs ran here. Hosted CI and the required human SDK CODEOWNER review remain separate gates.
…abot-security-4127
jbeckwith-oai
left a comment
There was a problem hiding this comment.
Approved at dff3214 after compatibility-focused static review and an independent second pass. The aiohttp extra publishes consistent aiohttp/multidict/yarl floors; PyJWT remains a development constraint. Supported Python minimums are preserved. The query regression covers repeated, blank, Unicode and percent-encoded values through the public client. No blocking SDK compatibility issue found.
This does not guarantee compatibility for unrelated applications sharing the environment: the documented aiohttp server form-field limit and PyJWT malformed-input/cache behavior changes remain upstream changes to assess for those applications. Hosted build, lint, Python 3.10/3.14, HTTPX2, lock freshness and OkTest pass; browser-demo types was cancelled, not passed. No candidate code, tests, builds or installs ran locally.
The security-update checker on main expects dependency-group entries to be requirement strings and crashes on the browser-demo group's include-group entry, blocking openai#4127. Replace that alias with `playwright==1.63.0`, the exact requirement already declared by provider-browser. The final change is one line in pyproject.toml. Package versions, the resolved dependency graph, and uv.lock remain unchanged. Validation: Python policy check, focused dependency-policy tests, and CI. This must land on main first because openai#4127's security gate executes the checker from the immutable base commit.
Update aiohttp 3.14.3 → 3.14.4, multidict 6.7.1 → 6.9.1, PyJWT 2.14.0 → 2.15.0, and yarl 1.24.2 → 1.25.1. aiohttp 3.14.4 requires yarl>=1.25.1 upstream. Publish the aiohttp-extra minimums so downstream installers cannot select the replaced releases; retain the PyJWT development constraint, public hashed artifacts, and release-please marker.
Compatibility validation covers supported Python versions, synchronous and asynchronous TLS/redirect behavior, streaming, wheel metadata, and preservation of repeated, blank, Unicode, and percent-encoded query values through the public aiohttp client. Local focused metadata/transport checks: 243 passed, 112 skipped. All required CI checks pass on dff3214, including Python 3.10/3.14, HTTPX2, build, lint, security scanning, and the trusted dependency-security gate. The additional browser-demo job is still installing Chromium.
Prerequisite #4185 has merged. This branch is refreshed against main, retaining the previously merged Griffe 2.3.0 update and limiting dependency version changes to aiohttp, multidict, PyJWT, and yarl.
Upstream behavior changes to consider for applications sharing these dependencies: aiohttp adds a default 1,000-field limit when its server parses URL-encoded forms (configurable via client_max_fields); yarl corrects query decoding; PyJWT tightens malformed-input handling and changes JWKS cache object reuse. This SDK does not use aiohttp's form server or PyJWT at runtime. SDK API symbols and the Python minimum are unchanged.
Original Dependabot release notes
Bumps the python-security group with 3 updates in the / directory: aiohttp, multidict and pyjwt.
Updates
aiohttpfrom 3.14.3 to 3.14.4Updates
multidictfrom 6.7.1 to 6.9.1Release notes
Sourced from multidict's releases.
... (truncated)
Changelog
Sourced from multidict's changelog.
... (truncated)
Commits
0a1770cRelease 6.9.1 (#1504)d220522Upload release assets one at a time to avoid the secondary rate limit (#1503)30cd596Stop a GIL-releasing del from segfaulting the standard C extension build ...d1c331aRecheck the reader gate after taking the retired list (#1502)b37f07cAllocate deferred decrefs in fixed-size blocks (#1501)563f667Run CodSpeed benchmarks on Python 3.14 and loop the smallest ones (#1498)157c87cCancel superseded CI runs on pull requests (#1500)d43adfeDrop -I from the ASan test command so PYTHONMALLOC takes effect (#1499)2a68472Stop items() iteration from reading a freed entry in CIMultiDict (#1496)cd528d6Rename GHSA-54p9-h82j-f925 changelog fragment to the merged commit (#1495)Updates
pyjwtfrom 2.14.0 to 2.15.0Release notes
Sourced from pyjwt's releases.
Changelog
Sourced from pyjwt's changelog.