fix bug that not support ssh urls

This commit is contained in:
Yucieee 2025-11-18 10:44:36 +08:00
parent a223125abc
commit 8a6988d1b7
2 changed files with 27 additions and 1 deletions

View file

@ -152,7 +152,13 @@ else
if [[ -e "$ssh_config" ]]; then
domain_resolv=$(ssh_resolve "$domain")
if [[ -n "$domain_resolv" ]]; then
domain="$domain_resolv"
# Don't use ssh.* subdomains for web URLs (e.g., ssh.github.com)
if [[ $domain != ssh.* && $domain_resolv == ssh.* ]]; then
# Keep the original domain instead of using ssh.* subdomain
:
else
domain="$domain_resolv"
fi
fi
fi
fi

View file

@ -356,6 +356,26 @@ setup() {
assert_output "https://override.zero.com/user/repo"
}
@test "sshconfig: ssh subdomain endpoints should not be used for web URLs" {
# When SSH config maps github.com -> ssh.github.com (for SSH over HTTPS port 443),
# the web URL should still use github.com, not ssh.github.com
# See: https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port
create_ssh_sandbox
# Add github.com -> ssh.github.com mapping to SSH config
echo "
Host github.com
HostName ssh.github.com
Port 443
User git
" >> $ssh_config
git remote set-url origin "git@github.com:rails/rails.git"
run ../git-open
# Should use github.com for web URL, NOT ssh.github.com
assert_output "https://github.com/rails/rails/tree/master"
}
##
## Bitbucket
##