Merged
Conversation
Contributor
Author
|
🧪 Testing To try out this version of the SDK: Expires at: Thu, 21 May 2026 00:39:35 GMT |
76e8a10 to
5c445f4
Compare
5c445f4 to
58b8bac
Compare
58b8bac to
e89992d
Compare
e89992d to
297e8cf
Compare
297e8cf to
f3f903e
Compare
f3f903e to
c61678b
Compare
c61678b to
d1a531a
Compare
d1a531a to
6b941f2
Compare
6b941f2 to
43bc853
Compare
Mirrors the TypeScript SDK's verify-user-token.ts so app-proxy-issued
x-whop-user-token JWTs can be verified in Python apps, with the same
key-rotation-friendly semantics (no SDK release needed when keys roll).
- src/whop_sdk/lib/verify_user_token.py (new):
* verify_user_token() — validates against the canonical Whop JWKS at
https://api.whop.com/.well-known/jwks.json by default, with a
module-level cache (12h TTL, 30s cooldown-guarded refetch on kid
miss) mirroring jose's createRemoteJWKSet.
* try_verify_user_token() — returns None on failure instead of raising.
* Accepts a raw token string OR a headers mapping (case-insensitive).
* Options mirror TS: public_key (PEM or JWK JSON static override),
jwks_url (override the endpoint), header_name, app_id.
* Handles legacy kid-less tokens by trying each key in the current
JWKS snapshot.
- src/whop_sdk/lib/__init__.py (new): marks lib/ as a package.
- pyproject.toml: adds optional user-tokens extra
pip install 'whop-sdk[user-tokens]'
which pulls in pyjwt[crypto]>=2.8,<3 for ES256 / ECDSA support.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
43bc853 to
2da2575
Compare
Contributor
Author
Release version edited manuallyThe Pull Request version has been manually set to If you instead want to use the version number |
12c03cc to
1b092f0
Compare
1b092f0 to
1851d3b
Compare
1851d3b to
f0c578f
Compare
121383b to
bccebc7
Compare
`invoices.list()` (resource) requires `company_id: str` (no Omit), but the bare `test_method_list` / `test_raw_response_list` / `test_streaming_response_list` variants (sync + async) call `list()` with no args. Pyright fails with "Argument missing for parameter company_id". Fallout from the recent merge conflict resolution on PR #884 where the test file was taken from codegen but the resource file had `company_id` as required from a different codegen run. Added `company_id="biz_xxxxxxxxxxxxxx"` (matches the pattern used by `test_method_list_with_all_params`) to the six affected list-variant calls. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
bccebc7 to
a99d0aa
Compare
a99d0aa to
22013a3
Compare
22013a3 to
949c4ec
Compare
949c4ec to
9abef32
Compare
9abef32 to
363e0ac
Compare
Contributor
Author
|
🤖 Release is at https://github.com/whopio/whopsdk-python/releases/tag/v0.0.38 🌻 |
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.
Automated Release PR
0.0.38 (2026-04-21)
Full Changelog: v0.0.37...v0.0.38
Features
Bug Fixes
Performance Improvements
This pull request is managed by Stainless's GitHub App.
The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.
For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.
🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions