.
This commit is contained in:
@@ -1490,24 +1490,21 @@ const GRASP_RETRY_DELAY: Duration = Duration::from_secs(1);
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct GraspServerResult {
|
||||
pub relay: RelayUrl,
|
||||
pub git_url: String,
|
||||
/// `None` when the server accepted the data, the reason otherwise.
|
||||
pub reason: Option<String>,
|
||||
}
|
||||
|
||||
impl GraspServerResult {
|
||||
fn ok(relay: RelayUrl, git_url: String) -> Self {
|
||||
fn ok(relay: RelayUrl) -> Self {
|
||||
Self {
|
||||
relay,
|
||||
git_url,
|
||||
reason: None,
|
||||
}
|
||||
}
|
||||
|
||||
fn failed(relay: RelayUrl, git_url: String, reason: impl Into<String>) -> Self {
|
||||
fn failed(relay: RelayUrl, reason: impl Into<String>) -> Self {
|
||||
Self {
|
||||
relay,
|
||||
git_url,
|
||||
reason: Some(reason.into()),
|
||||
}
|
||||
}
|
||||
@@ -1709,11 +1706,9 @@ async fn push_staged_to_grasps(
|
||||
|
||||
for relay in servers {
|
||||
let Some(base) = grasp_base_url(relay) else {
|
||||
outcome.servers.push(GraspServerResult::failed(
|
||||
relay.clone(),
|
||||
relay.to_string(),
|
||||
"no domain",
|
||||
));
|
||||
outcome
|
||||
.servers
|
||||
.push(GraspServerResult::failed(relay.clone(), "no domain"));
|
||||
continue;
|
||||
};
|
||||
let git_url = format!("{base}/{owner}/{repo_id}.git");
|
||||
@@ -1794,11 +1789,9 @@ async fn push_staged_to_grasps(
|
||||
log::warn!("grasp push failed: {relay}: {reason}");
|
||||
outcome
|
||||
.servers
|
||||
.push(GraspServerResult::failed(relay.clone(), git_url, reason));
|
||||
.push(GraspServerResult::failed(relay.clone(), reason));
|
||||
}
|
||||
None => outcome
|
||||
.servers
|
||||
.push(GraspServerResult::ok(relay.clone(), git_url)),
|
||||
None => outcome.servers.push(GraspServerResult::ok(relay.clone())),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1956,13 +1949,9 @@ mod tests {
|
||||
fn push_outcome_reports_partial_failures() {
|
||||
let outcome = PushOutcome {
|
||||
servers: vec![
|
||||
GraspServerResult::ok(
|
||||
RelayUrl::parse("wss://gitnostr.com").expect("url"),
|
||||
"https://gitnostr.com/npub1owner/repo.git".to_owned(),
|
||||
),
|
||||
GraspServerResult::ok(RelayUrl::parse("wss://gitnostr.com").expect("url")),
|
||||
GraspServerResult::failed(
|
||||
RelayUrl::parse("wss://relay.ngit.dev").expect("url"),
|
||||
"https://relay.ngit.dev/npub1owner/repo.git".to_owned(),
|
||||
"remote: ERR authorisation failed: No state events in purgatory\nfatal: ...",
|
||||
),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user