🥇 export from upstream (cd2f702)

This commit is contained in:
2026-05-23 20:02:00 +02:00
parent 7c0a5244cf
commit d39d0ac7de
+16 -1
View File
@@ -275,7 +275,7 @@ pub fn extract_git_remote_hosts(git_remote_output: &str) -> Vec<String> {
hosts.insert(host.to_string());
}
} else if url.contains('@') && url.contains(':') {
// git@host:path format
// user@host:path format (e.g. git@github.com:user/repo.git)
let after_at = match url.find('@') {
Some(at) => &url[at + 1..],
None => continue,
@@ -288,6 +288,14 @@ pub fn extract_git_remote_hosts(git_remote_output: &str) -> Vec<String> {
if !host.is_empty() {
hosts.insert(host.to_string());
}
} else if url.contains(':') && !url.contains('/') || url.find(':') < url.find('/') {
// SCP-style without user: host:path (e.g. git.g4b.org:user/repo.git)
if let Some(colon) = url.find(':') {
let host = url[..colon].trim();
if !host.is_empty() && !host.contains(' ') {
hosts.insert(host.to_string());
}
}
}
}
@@ -1250,6 +1258,13 @@ https\thttps://gitlab.com/user/repo.git (push)
assert!(hosts.is_empty());
}
#[test]
fn extract_hostnames_scp_without_user() {
let output = "origin\tgit.g4b.org:g4borg/sandcage.git (fetch)\norigin\tgit.g4b.org:g4borg/sandcage.git (push)\n";
let hosts = extract_git_remote_hosts(output);
assert_eq!(hosts, vec!["git.g4b.org"]);
}
// -- Task 7: build_ssh_discovery tests --
#[test]