Skip to content

Feature request: support SSH shorthand for private repos (e.g. owner/repo/path) #328

@sergioazos

Description

@sergioazos

Problem

When installing packages from private repositories, the shorthand syntax fails even when SSH is properly configured:

# ❌ fails for private repos — APM tries HTTPS even with SSH configured
apm install Azos-Seguros/my-private-repo/skills/my-skill

# Error: not accessible or doesn't exist

The only workaround today is to use the verbose object format in apm.yml:

dependencies:
  apm:
  - git: git@github.com:Azos-Seguros/my-private-repo.git
    path: skills/my-skill

This works, but it's a much worse developer experience compared to the simple shorthand.

Expected behavior

APM should detect that the user has SSH configured for GitHub (via ~/.ssh/config or ssh-agent) and fall back to SSH when HTTPS authentication fails for the shorthand format:

# ✅ should work when SSH is configured
apm install Azos-Seguros/my-private-repo/skills/my-skill

Alternatively, a flag could help:

apm install Azos-Seguros/my-private-repo/skills/my-skill --ssh

Why it matters

Many teams and organizations use SSH exclusively for GitHub authentication (no PAT tokens). Requiring the object format in apm.yml for every private package defeats the simplicity that makes APM compelling — especially when onboarding teams that already have SSH set up.

Environment

  • APM version: 0.8.0
  • OS: macOS
  • Auth: SSH via keyring (git operations protocol: ssh), no GITHUB_CLI_PAT / GITHUB_TOKEN set
  • ssh -T git@github.com authenticates successfully

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions