Skip to content

Conversation

@lilpit
Copy link

@lilpit lilpit commented Jan 30, 2026

Add support for SSH URLs in the plugin_marketplaces parameter, enabling users to install plugins from private Git repositories that require SSH authentication. This is particularly useful for private GitHub/GitLab repositories where HTTPS would require access tokens.

Changes:

  • Added SSH_URL_REGEX pattern to validate git@host:path/repo.git format
  • Updated validateMarketplaceInput() to accept both HTTPS and SSH URLs
  • HTTP URLs remain rejected (only HTTPS and SSH are supported for security)
  • SSH URLs bypass URL constructor validation as they're not HTTP-compatible

Testing:

  • Added 16 new test cases covering SSH URL validation
  • Tests cover GitHub, GitLab, and custom hostnames
  • Tests verify rejection of invalid SSH formats (missing .git, wrong separator, etc.)
  • Tests verify mixed marketplace support (HTTPS + SSH + local paths)
  • Tests confirm HTTP URLs are properly rejected

Documentation:

  • Updated action.yml with SSH format description and example
  • Updated base-action/action.yml with SSH format description and example
  • Updated docs/usage.md with SSH support information

Supported formats:

Example usage:
plugin_marketplaces: | https://github.com/public/marketplace.git git@github.com:private/marketplace.git ./local-plugins/marketplace

This change is backward compatible - existing HTTPS URLs continue to work.

…itories

Add support for SSH URLs in the plugin_marketplaces parameter, enabling
users to install plugins from private Git repositories that require SSH
authentication. This is particularly useful for private GitHub/GitLab
repositories where HTTPS would require access tokens.

Changes:
- Added SSH_URL_REGEX pattern to validate git@host:path/repo.git format
- Updated validateMarketplaceInput() to accept both HTTPS and SSH URLs
- HTTP URLs remain rejected (only HTTPS and SSH are supported for security)
- SSH URLs bypass URL constructor validation as they're not HTTP-compatible

Testing:
- Added 16 new test cases covering SSH URL validation
- Tests cover GitHub, GitLab, and custom hostnames
- Tests verify rejection of invalid SSH formats (missing .git, wrong separator, etc.)
- Tests verify mixed marketplace support (HTTPS + SSH + local paths)
- Tests confirm HTTP URLs are properly rejected

Documentation:
- Updated action.yml with SSH format description and example
- Updated base-action/action.yml with SSH format description and example
- Updated docs/usage.md with SSH support information

Supported formats:
- HTTPS: https://github.com/user/repo.git
- SSH: git@github.com:user/repo.git
- Local paths: ./path, /absolute/path, ../relative/path

Example usage:
  plugin_marketplaces: |
    https://github.com/public/marketplace.git
    git@github.com:private/marketplace.git
    ./local-plugins/marketplace

This change is backward compatible - existing HTTPS URLs continue to work.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant