Describe your idea
Add support for SSH protocol Git URLs with custom ports in --custom-source, for example:
ssh://git@host:port/owner/repo.git
Currently, --custom-source supports scp-like SSH syntax such as:
git@github.com:org/repo.git
but does not support the explicit ssh:// URL form with a custom port.
Why is this needed?
Some self-hosted Git servers expose SSH on a non-standard port. In those environments, users need to provide the port directly in the Git URL when installing custom modules.
Without this support, users must rely on SSH config aliases as a workaround, which is less convenient for documentation, automation, CI, and shared installation commands.
How should it work?
--custom-source should accept valid SSH protocol Git URLs with optional custom ports, preserving the original clone URL so Git can clone it correctly:
npx bmad-method install --custom-source ssh://git@host:port/owner/repo.git
Expected parsing behavior:
{
"type": "url",
"cloneUrl": "ssh://git@host:port/owner/repo.git",
"cacheKey": "host:port/owner/repo",
"displayName": "owner/repo",
"isValid": true
}
This should be covered by a regression test in test/test-parse-source-urls.js.
PR
I can contribute an update. The change would update CustomModuleManager.parseSource() to handle ssh://user@host[:port]/path/repo.git URLs.
Additional context
The current parser handles:
git@host:owner/repo.git
http://...
https://...
but ssh://... URLs currently fall through as invalid.
Describe your idea
Add support for SSH protocol Git URLs with custom ports in
--custom-source, for example:Currently,
--custom-sourcesupports scp-like SSH syntax such as:but does not support the explicit
ssh://URL form with a custom port.Why is this needed?
Some self-hosted Git servers expose SSH on a non-standard port. In those environments, users need to provide the port directly in the Git URL when installing custom modules.
Without this support, users must rely on SSH config aliases as a workaround, which is less convenient for documentation, automation, CI, and shared installation commands.
How should it work?
--custom-sourceshould accept valid SSH protocol Git URLs with optional custom ports, preserving the original clone URL so Git can clone it correctly:Expected parsing behavior:
{ "type": "url", "cloneUrl": "ssh://git@host:port/owner/repo.git", "cacheKey": "host:port/owner/repo", "displayName": "owner/repo", "isValid": true }This should be covered by a regression test in
test/test-parse-source-urls.js.PR
I can contribute an update. The change would update
CustomModuleManager.parseSource()to handlessh://user@host[:port]/path/repo.gitURLs.Additional context
The current parser handles:
but
ssh://...URLs currently fall through as invalid.