Skip to content

fix(deps): update reqwest to 0.13#348

Merged
jdx merged 1 commit into
mainfrom
fix/reqwest-0.13
Apr 11, 2026
Merged

fix(deps): update reqwest to 0.13#348
jdx merged 1 commit into
mainfrom
fix/reqwest-0.13

Conversation

@jdx

@jdx jdx commented Apr 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Updates reqwest from 0.12 to 0.13
  • Fixes feature flag rename: rustls-tls-native-roots-no-providerrustls-native-certs + rustls-no-provider
  • All 400 tests pass

Closes #333

Test plan

  • cargo build succeeds
  • cargo nextest run — 400 passed, 0 failed
  • Verified hyper-rustls ring override still applies

🤖 Generated with Claude Code


Note

Medium Risk
Dependency upgrade changes TLS/certificate verification feature flags and pulls in new platform-specific cert verifier crates, which could affect HTTPS behavior across OSes.

Overview
Updates reqwest from 0.12 to 0.13 and adjusts its TLS feature flags from rustls-tls-native-roots-no-provider to rustls-native-certs + rustls-no-provider.

Refreshes Cargo.lock accordingly, adding new transitive dependencies (notably rustls-platform-verifier and related Android/JNI and Windows target crates) and updating hyper-rustls’s dependency set.

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

reqwest 0.13 renamed TLS feature flags. The old
`rustls-tls-native-roots-no-provider` is now split into
`rustls-native-certs` + `rustls-no-provider`.

Closes #333

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@socket-security

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
License policy violation: cargo webpki-root-certs under CDLA-Permissive-2.0

License: CDLA-Permissive-2.0 - The applicable license policy does not permit this license (5) (webpki-root-certs-1.0.6/Cargo.toml)

License: CDLA-Permissive-2.0 - The applicable license policy does not permit this license (5) (webpki-root-certs-1.0.6/LICENSE)

From: ?cargo/webpki-root-certs@1.0.6

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/webpki-root-certs@1.0.6. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request upgrades the reqwest dependency from version 0.12 to 0.13 and updates the Cargo.lock file accordingly, introducing several new dependencies including rustls-platform-verifier and jni. Feedback suggests that for reqwest 0.13, it is more idiomatic to use the rustls-tls-native-roots feature instead of rustls-native-certs to leverage the more robust system trust store integration provided by the rustls-platform-verifier crate.

Comment thread Cargo.toml
reqwest = { version = "0.12", default-features = false, features = [
"rustls-tls-native-roots-no-provider",
reqwest = { version = "0.13", default-features = false, features = [
"rustls-native-certs",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

In reqwest 0.13, the rustls-tls-native-roots feature is the direct successor to the native roots functionality from 0.12. It now leverages the rustls-platform-verifier crate, which provides more robust integration with system trust stores (especially on Windows and macOS) compared to the older rustls-native-certs crate.

Since your Cargo.lock shows that rustls-platform-verifier is already being included (as it is now a default dependency of the rustls-tls backend in 0.13), switching to rustls-tls-native-roots is more idiomatic for this version and avoids explicitly opting into the legacy crate-based root loading.

Suggested change
"rustls-native-certs",
"rustls-tls-native-roots",

@greptile-apps

greptile-apps Bot commented Apr 11, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Upgrades reqwest from 0.12 to 0.13, replacing the removed rustls-tls-native-roots-no-provider feature with the two equivalent 0.13 features rustls-native-certs (native OS cert store) and rustls-no-provider (caller installs the crypto provider). The ring provider is already explicitly installed in src/main.rs via rustls::crypto::ring::default_provider().install_default(), and the hyper-rustls ring override in Cargo.toml remains in place, keeping aws-lc-rs out of the dependency tree entirely — the Cargo.lock confirms no aws-lc-rs entries.

Confidence Score: 5/5

Safe to merge — clean dependency upgrade with correct feature flag mapping and no regressions.

The feature flag rename is accurate for reqwest 0.13, ring remains the sole crypto provider (aws-lc-rs is absent from the lock), the explicit provider installation in src/main.rs satisfies rustls-no-provider, and the hyper-rustls ring override is intact. All 400 tests pass. No logic changes outside dependency declarations.

No files require special attention.

Important Files Changed

Filename Overview
Cargo.toml Updates reqwest from 0.12 to 0.13 and renames the TLS feature flags from the removed rustls-tls-native-roots-no-provider to the two replacement features rustls-native-certs and rustls-no-provider; hyper-rustls ring override is preserved.
Cargo.lock Lockfile updated to reqwest 0.13.1; rustls uses ring (no aws-lc-rs in tree); hyper-rustls 0.27.7 resolves without ring as a direct dep (ring comes via rustls), consistent with the Cargo.toml override.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[reqwest 0.13] -->|rustls-native-certs| B[Native OS cert store]
    A -->|rustls-no-provider| C[App installs crypto provider]
    C --> D["ring::default_provider().install_default()\nsrc/main.rs"]
    A --> E[hyper-rustls 0.27]
    E -->|features: ring,http1,http2,tls12| F[rustls 0.23 + ring]
    F --> G[No aws-lc-rs in dep tree]
    B --> H[TLS connections verified\nagainst OS trust store]
Loading

Reviews (1): Last reviewed commit: "fix(deps): update reqwest to 0.13" | Re-trigger Greptile

@jdx jdx merged commit e2e8ad3 into main Apr 11, 2026
6 checks passed
@jdx jdx deleted the fix/reqwest-0.13 branch April 11, 2026 13:38
@jdx jdx mentioned this pull request Apr 11, 2026
jdx added a commit that referenced this pull request Apr 12, 2026
## 🤖 New release

* `pitchfork-cli`: 2.5.0 -> 2.6.0

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [2.6.0](v2.5.0...v2.6.0) -
2026-04-12

### Added

- *(proxy)* auto start when visiting the proxied URL
([#347](#347))

### Fixed

- some issues related to sudo supervisor
([#323](#323))
- *(port)* should fail when ready_port is in use
([#350](#350))
- *(deps)* update rcgen to 0.14
([#349](#349))
- *(deps)* update reqwest to 0.13
([#348](#348))
- detect port conflicts on loopback addresses, not just 0.0.0.0
([#345](#345))
- narrow REAPED_STATUSES cfg to non-Linux unix only
([#346](#346))
- *(deps)* update rust crate ratatui to 0.30
([#331](#331))
- *(deps)* update rust crate toml to v1
([#344](#344))
- *(deps)* update rust crate strum to 0.28
([#334](#334))
- *(deps)* update rust crate notify-debouncer-full to 0.7
([#330](#330))
- *(deps)* update rust crate nix to 0.31
([#329](#329))
- *(deps)* update rust crate listeners to 0.5
([#328](#328))
- *(deps)* update rust crate sysinfo to 0.38
([#335](#335))
- *(deps)* update rust crate cron to 0.16
([#324](#324))
- *(deps)* update rust crate crossterm to 0.29
([#325](#325))

### Other

- *(deps)* update rust crate rmcp to v1.4.0
([#327](#327))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk: this PR only bumps the crate version and updates release
notes, with no runtime code changes.
> 
> **Overview**
> Prepares the `pitchfork-cli` **v2.6.0** release by bumping the package
version from `2.5.0` to `2.6.0` in `Cargo.toml`/`Cargo.lock`.
> 
> Updates `CHANGELOG.md` with the `2.6.0` release notes (proxy
auto-start behavior, several fixes, and dependency updates).
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
faea6c5. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
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