Skip to content

Commit 22edc65

Browse files
authored
fix(bundler/cli): set user-agent when fetching build tools (#14408)
1 parent 9a19226 commit 22edc65

File tree

3 files changed

+44
-27
lines changed

3 files changed

+44
-27
lines changed

.changes/bundler-user-agent.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
tauri-bundler: patch:enhance
3+
tauri-cli: patch:enhance
4+
---
5+
6+
Set user-agent in bundler and cli http requests when fetching build tools.

crates/tauri-bundler/src/utils/http_utils.rs

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ use sha2::Digest;
1414
use url::Url;
1515
use zip::ZipArchive;
1616

17+
const BUNDLER_USER_AGENT: &str = concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION"),);
18+
1719
fn generate_github_mirror_url_from_template(github_url: &str) -> Option<String> {
1820
std::env::var("TAURI_BUNDLER_TOOLS_GITHUB_MIRROR_TEMPLATE")
1921
.ok()
@@ -47,30 +49,37 @@ fn generate_github_alternative_url(url: &str) -> Option<(ureq::Agent, String)> {
4749

4850
generate_github_mirror_url_from_template(url)
4951
.or_else(|| generate_github_mirror_url_from_base(url))
50-
.map(|alt_url| (ureq::agent(), alt_url))
52+
.map(|alt_url| {
53+
(
54+
ureq::Agent::config_builder()
55+
.user_agent(BUNDLER_USER_AGENT)
56+
.build()
57+
.into(),
58+
alt_url,
59+
)
60+
})
5161
}
5262

5363
fn create_agent_and_url(url: &str) -> (ureq::Agent, String) {
5464
generate_github_alternative_url(url).unwrap_or((base_ureq_agent(), url.to_owned()))
5565
}
5666

5767
pub(crate) fn base_ureq_agent() -> ureq::Agent {
68+
#[allow(unused_mut)]
69+
let mut config_builder = ureq::Agent::config_builder()
70+
.user_agent(BUNDLER_USER_AGENT)
71+
.proxy(ureq::Proxy::try_from_env());
72+
5873
#[cfg(feature = "platform-certs")]
59-
let agent: ureq::Agent = ureq::Agent::config_builder()
60-
.tls_config(
74+
{
75+
config_builder = config_builder.tls_config(
6176
ureq::tls::TlsConfig::builder()
6277
.root_certs(ureq::tls::RootCerts::PlatformVerifier)
6378
.build(),
64-
)
65-
.proxy(ureq::Proxy::try_from_env())
66-
.build()
67-
.into();
68-
#[cfg(not(feature = "platform-certs"))]
69-
let agent: ureq::Agent = ureq::Agent::config_builder()
70-
.proxy(ureq::Proxy::try_from_env())
71-
.build()
72-
.into();
73-
agent
79+
);
80+
}
81+
82+
config_builder.build().into()
7483
}
7584

7685
#[allow(dead_code)]

crates/tauri-cli/src/helpers/http.rs

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,25 @@
22
// SPDX-License-Identifier: Apache-2.0
33
// SPDX-License-Identifier: MIT
44

5-
use ureq::{http::Response, Body};
5+
use ureq::{http::Response, Agent, Body};
6+
7+
const CLI_USER_AGENT: &str = concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION"),);
68

79
pub fn get(url: &str) -> Result<Response<Body>, ureq::Error> {
10+
#[allow(unused_mut)]
11+
let mut config_builder = ureq::Agent::config_builder()
12+
.user_agent(CLI_USER_AGENT)
13+
.proxy(ureq::Proxy::try_from_env());
14+
815
#[cfg(feature = "platform-certs")]
916
{
10-
let agent = ureq::Agent::config_builder()
11-
.tls_config(
12-
ureq::tls::TlsConfig::builder()
13-
.root_certs(ureq::tls::RootCerts::PlatformVerifier)
14-
.build(),
15-
)
16-
.build()
17-
.new_agent();
18-
agent.get(url).call()
19-
}
20-
#[cfg(not(feature = "platform-certs"))]
21-
{
22-
ureq::get(url).call()
17+
config_builder = config_builder.tls_config(
18+
ureq::tls::TlsConfig::builder()
19+
.root_certs(ureq::tls::RootCerts::PlatformVerifier)
20+
.build(),
21+
);
2322
}
23+
24+
let agent: Agent = config_builder.build().into();
25+
agent.get(url).call()
2426
}

0 commit comments

Comments
 (0)