Bump pyjwt from 2.14.0 to 2.15.0 #851

Open
dependabot[bot] opened 12:32pm on October 6, 2026 wants to merge 1 commit into chaoss/grimoirelab main from
dependabot/pip/pyjwt-2.15.0

Pull Request Overview

  • Opened on October 6, 2026
  • Status Open
  • Commit count 1 with first commit October 6, 2026

Total Delta

0 Total Diff Delta

Open Days

Open 27 weekdays

Test Delta

0 Diff Delta in Test Files
Breakdown by Phase

How long has this pull request spent in each phase of its lifecycle?

Data pending calculation for pull request

Author avatar

Bump pyjwt from 2.14.0 to 2.15.0

Bumps pyjwt from 2.14.0 to 2.15.0.

Release notes

Sourced from pyjwt's releases.



2.15.0


See the 2.15.0 changelog for complete release details.


Changelog

Sourced from pyjwt's changelog.




v2.15.0 <https://github.com/jpadilla/pyjwt/compare/2.14.0...2.15.0>


Security




- Wrap recursion errors from deeply nested JWT payloads in DecodeError
instead of exposing a raw RecursionError.

Added




- Support Python 3.15 by @kytta in [#1202](https://github.com/jpadilla/pyjwt/issues/1202) &amp;lt;https://github.com/jpadilla/pyjwt/pull/1202&amp;gt;

Changed



  • JWKSetCache now stores the parsed PyJWKSet rather than the raw JWKS
    payload, so a cache hit no longer re-parses every key. JWKSetCache.put()
    accepts either form and raises PyJWKSetError for anything else. As a
    result, PyJWKClient.get_jwk_set() returns the same PyJWKSet instance
    for as long as it stays cached, rather than a freshly built one per call in
    #1208 &lt;https://github.com/jpadilla/pyjwt/pull/1208&amp;gt;


  • PyJWKClient.fetch_data() now raises
    PyJWKClientError(&quot;The JWKS endpoint did not return a JSON object&quot;) when
    the endpoint response is not a JSON object, instead of returning it for
    get_jwk_set() to reject. Callers reaching the JWKS through
    get_jwk_set() see the same error as before in
    #1208 &lt;https://github.com/jpadilla/pyjwt/pull/1208&amp;gt;


Fixed




- Return cached PyJWKSet values from PyJWKClient.get_jwk_set() instead
of raising PyJWKClientError(&amp;quot;The JWKS endpoint did not return a JSON
object&amp;quot;)
. JWKSetCache.put() documents PyJWKSet as the cached value,
so callers pre-populating the cache to avoid a network round-trip could not
read it back in [#914](https://github.com/jpadilla/pyjwt/issues/914) &amp;lt;https://github.com/jpadilla/pyjwt/issues/914&amp;gt;__ and
[#1208](https://github.com/jpadilla/pyjwt/issues/1208) &amp;lt;https://github.com/jpadilla/pyjwt/pull/1208&amp;gt;__
- PyJWKClient.get_jwk_set() now caches the key set it returns, so a
fetch_data() override that filters or transforms the JWKS is no longer
undone by the next cache hit in
[#1208](https://github.com/jpadilla/pyjwt/issues/1208) &amp;lt;https://github.com/jpadilla/pyjwt/pull/1208&amp;gt;__
- Raise the documented PyJWTError subclass instead of leaking a
TypeError when the exp, nbf, or iat claim decodes to a
non-numeric, non-string value such as a list, dict, or null.
- Reject OKP JWK private keys when their public x component does not
match the private d component.
- Treat malformed JWK Set members as unusable keys rather than letting
AttributeError or TypeError escape PyJWKSet. A member that is not
&lt;/tr&gt;&lt;/table&gt;
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>

<ul>
<li><a href="https://github.com/jpadilla/pyjwt/commit/1d41a6478e1562e68ff667fcd703356acf085f68&quot;&gt;&lt;code&gt;1d41a64&lt;/code&gt;&lt;/a> chore: prepare 2.15.0 release</li>
<li><a href="https://github.com/jpadilla/pyjwt/commit/9bc06658f875b9b40091539140bbbdc4639161c3&quot;&gt;&lt;code&gt;9bc0665&lt;/code&gt;&lt;/a> fix: make recursive payload tests deterministic</li>
<li><a href="https://github.com/jpadilla/pyjwt/commit/5fde08a6cf906aa7698de2d6391d88b73006b17b&quot;&gt;&lt;code&gt;5fde08a&lt;/code&gt;&lt;/a> fix: normalize recursive JWT payload errors</li>
<li><a href="https://github.com/jpadilla/pyjwt/commit/171062d2d734315272a901100aa4b109f2fc3c19&quot;&gt;&lt;code&gt;171062d&lt;/code&gt;&lt;/a> utils: mention bytes in force_bytes type error (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1173&quot;&gt;#1173&lt;/a&gt;)&lt;/li>
<li><a href="https://github.com/jpadilla/pyjwt/commit/c9d4d5375bf464ef363506fed9eb6e7f33217ab6&quot;&gt;&lt;code&gt;c9d4d53&lt;/code&gt;&lt;/a> docs/conf: drop duplicate 'and' from read() docstring (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1174&quot;&gt;#1174&lt;/a&gt;)&lt;/li>
<li><a href="https://github.com/jpadilla/pyjwt/commit/2763752196113e1473b0ed7905aa6034aedfbe53&quot;&gt;&lt;code&gt;2763752&lt;/code&gt;&lt;/a> Add support for Python 3.15 (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1202&quot;&gt;#1202&lt;/a&gt;)&lt;/li>
<li><a href="https://github.com/jpadilla/pyjwt/commit/4adcd02722f5011c60079d3978dfc167b9a8eaa5&quot;&gt;&lt;code&gt;4adcd02&lt;/code&gt;&lt;/a> Catch http.client.HTTPException in PyJWKClient.fetch_data (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1201&quot;&gt;#1201&lt;/a&gt;)&lt;/li>
<li><a href="https://github.com/jpadilla/pyjwt/commit/9e501d993b4d3e7dba14bdb1722b1d993ac75097&quot;&gt;&lt;code&gt;9e501d9&lt;/code&gt;&lt;/a> fix: correct docstring typo in _validate_jti (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1179&quot;&gt;#1179&lt;/a&gt;)&lt;/li>
<li><a href="https://github.com/jpadilla/pyjwt/commit/4047c44d51950ffda15f40054508d3f17c43b1e2&quot;&gt;&lt;code&gt;4047c44&lt;/code&gt;&lt;/a> docs: clarify JWK certificate member handling (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1212&quot;&gt;#1212&lt;/a&gt;)&lt;/li>
<li><a href="https://github.com/jpadilla/pyjwt/commit/f4e2b59f543cc82d46d9d69922bba59e804216b9&quot;&gt;&lt;code&gt;f4e2b59&lt;/code&gt;&lt;/a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1210&quot;&gt;#1210&lt;/a&gt;)&lt;/li>
<li>Additional commits viewable in <a href="https://github.com/jpadilla/pyjwt/compare/2.14.0...2.15.0&quot;&gt;compare view</a></li>
</ul>
</details>

<br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/chaoss/grimoirelab/network/alerts).

No comments have been left on this PR.