improve reliability of util::codeberg::get_latest_release

This commit is contained in:
2025-05-13 09:40:18 +01:00
parent e7470bd694
commit ef0b6de6ba
+6 -7
View File
@@ -31,18 +31,17 @@ struct Asset {
browser_download_url: String, browser_download_url: String,
} }
pub fn get_latest_release() -> Option<Release> { pub fn get_latest_release() -> Result<Release, Box<dyn std::error::Error>> {
let request_url = format!("{CODEBERG_ENDPOINT_ROOT}/repos/futile/gta-tools/releases/latest"); let request_url = format!("{CODEBERG_ENDPOINT_ROOT}/repos/futile/gta-tools/releases/latest");
let client = ClientBuilder::default() let client = ClientBuilder::default()
.user_agent(APP_USER_AGENT) .user_agent(APP_USER_AGENT)
.build_blocking() .build_blocking()?;
.unwrap(); let response = client.request(Request::get(request_url))?;
let response = client.request(Request::get(request_url)).unwrap(); let json = response.json::<LatestRelease>()?;
let json = response.json::<LatestRelease>().ok()?;
let tag_name = json.tag_name; let tag_name = json.tag_name;
let browser_download_url = &json.assets[0].browser_download_url; let browser_download_url = &json.assets[0].browser_download_url;
Some(Release { Ok(Release {
version: Version::parse(&tag_name).ok()?, version: Version::parse(&tag_name)?,
download_url: browser_download_url.to_owned(), download_url: browser_download_url.to_owned(),
}) })
} }