Skip to content

Commit 1adb385

Browse files
fix(update): Properly handle errors when getting latest CLI version (#2370)
The current code suppresses any API errors that occur when trying to get the latest CLI version. This is probably ideal behavior in the update nagger, but likely not in the `sentry-cli update` command. This change also fixes a `clippy::unnecessary_wraps` lint. Ref #2357
1 parent 0d69e74 commit 1adb385

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

src/commands/update.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::env;
22

3-
use anyhow::{bail, Result};
3+
use anyhow::{bail, Context, Result};
44
use clap::{Arg, ArgAction, ArgMatches, Command};
55

66
use crate::utils::update::{assert_updatable, can_update_sentrycli, get_latest_sentrycli_release};
@@ -29,7 +29,8 @@ pub fn execute(matches: &ArgMatches) -> Result<()> {
2929
assert_updatable()?;
3030

3131
let exe = env::current_exe()?;
32-
let update = get_latest_sentrycli_release()?;
32+
let update = get_latest_sentrycli_release()
33+
.with_context(|| "Error getting latest Sentry CLI version.")?;
3334
if !update.have_version_info() {
3435
bail!("Could not get the latest release version.");
3536
}

src/utils/update.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ impl LastUpdateCheck {
115115
}
116116
}
117117

118+
#[derive(Default)]
118119
pub struct SentryCliUpdateInfo {
119120
latest_release: Option<SentryCliRelease>,
120121
}
@@ -176,11 +177,10 @@ impl SentryCliUpdateInfo {
176177
}
177178
}
178179

179-
#[expect(clippy::unnecessary_wraps)]
180180
pub fn get_latest_sentrycli_release() -> Result<SentryCliUpdateInfo> {
181181
let api = Api::current();
182182
Ok(SentryCliUpdateInfo {
183-
latest_release: api.get_latest_sentrycli_release().unwrap_or_default(),
183+
latest_release: api.get_latest_sentrycli_release()?,
184184
})
185185
}
186186

@@ -224,7 +224,8 @@ fn update_nagger_impl() -> Result<()> {
224224

225225
if check.should_run_check() {
226226
info!("Running update nagger update check");
227-
let ui = get_latest_sentrycli_release()?;
227+
// Error getting latest version in update nagger should not crash the CLI
228+
let ui = get_latest_sentrycli_release().unwrap_or_default();
228229
if ui.have_version_info() {
229230
check.update_for_info(&ui);
230231
let mut f = fs::File::create(&path)?;

0 commit comments

Comments
 (0)