From b27cee69f89a08cc8e97de705212440239e6049b Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Thu, 7 Aug 2025 08:46:45 +0100 Subject: refactor: abstract `is_grasp_server_clone_url` so we can use it elsehwere --- src/lib/repo_ref.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/lib') diff --git a/src/lib/repo_ref.rs b/src/lib/repo_ref.rs index 5e857e9..b2bd381 100644 --- a/src/lib/repo_ref.rs +++ b/src/lib/repo_ref.rs @@ -326,12 +326,7 @@ impl RepoRef { // returns false if already present so didn't need adding pub fn add_grasp_server(&mut self, clone_url: &str) -> Result { - if !clone_url.starts_with("http") { - bail!("invalid grasp server clone url"); - } - extract_npub(clone_url) - .context("invalid grasp server clone url. does not contain valid npub")?; - if !(clone_url.ends_with(".git") || clone_url.ends_with(".git/")) { + if !is_grasp_server_clone_url(clone_url) { bail!("invalid grasp server clone url. does not end with .git"); } @@ -739,7 +734,6 @@ pub fn extract_npub(s: &str) -> Result<&str> { } } -// this should be called is_grasp_server_in_list pub fn is_grasp_server_in_list(url: &str, grasp_servers: &[String]) -> bool { if !grasp_servers.is_empty() { if let Ok(url) = normalize_grasp_server_url(url) { @@ -758,6 +752,12 @@ pub fn is_grasp_server_in_list(url: &str, grasp_servers: &[String]) -> bool { } } +pub fn is_grasp_server_clone_url(url: &str) -> bool { + extract_npub(url).is_ok() + && (url.ends_with(".git") || url.ends_with(".git/")) + && url.starts_with("http") +} + pub fn format_grasp_server_url_as_relay_url(url: &str) -> Result { let grasp_server_url = normalize_grasp_server_url(url)?; if grasp_server_url.contains("http://") { -- cgit v1.2.3