From 0ae112f97614ccdeaaf2271c5568d3e22d5d143f Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Tue, 31 Mar 2020 17:23:20 -0400 Subject: [PATCH] commitstatus: return an error if we fail to set a status --- ofborg/src/commitstatus.rs | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/ofborg/src/commitstatus.rs b/ofborg/src/commitstatus.rs index f5c4818..422ccd3 100644 --- a/ofborg/src/commitstatus.rs +++ b/ofborg/src/commitstatus.rs @@ -36,18 +36,25 @@ impl<'a> CommitStatus<'a> { self.url = url.unwrap_or_else(|| String::from("")) } - pub fn set_with_description(&mut self, description: &str, state: hubcaps::statuses::State) { + pub fn set_with_description( + &mut self, + description: &str, + state: hubcaps::statuses::State, + ) -> Result<(), CommitStatusError> { self.set_description(description.to_owned()); - self.set(state); + self.set(state) } pub fn set_description(&mut self, description: String) { self.description = description; } - pub fn set(&self, state: hubcaps::statuses::State) { + pub fn set(&self, state: hubcaps::statuses::State) -> Result<(), CommitStatusError> { let desc = if self.description.len() >= 140 { - eprintln!("Warning: description is over 140 char; truncating: {:?}", &self.description); + eprintln!( + "Warning: description is over 140 char; truncating: {:?}", + &self.description + ); self.description.chars().take(140).collect() } else { self.description.clone() @@ -62,6 +69,11 @@ impl<'a> CommitStatus<'a> { .target_url(self.url.clone()) .build(), ) - .expect("Failed to mark final status on commit"); + .map(|_| ()) + .map_err(|e| CommitStatusError::HubcapsError(e)) } } + +pub enum CommitStatusError { + HubcapsError(hubcaps::Error), +}