Skip to content
Skillcrew
Menu / Guides

Private registries

Use a private registry over SSH or HTTPS with the Git credentials developers already have.

View as Markdown
On this page

Skillcrew runs the system git and never stores credentials. Anything that works for git clone works for Skillcrew.

SSH

shell
skillcrew init git@github.com:acme/skills.git

Git uses your SSH agent and keys.

HTTPS

Configure a credential helper once, then use an HTTPS URL or the host/owner/repo shorthand:

shell
gh auth setup-git          # GitHub
glab auth setup-git        # GitLab
skillcrew init github.com/acme/skills

Any other credential helper works the same way, including on self-hosted Git servers and Azure DevOps.

Security

URLs with an embedded password (https://user:token@…) are refused, because the URL is stored in plain text in ~/.skillcrew/config.yaml. Use a credential helper instead.

When init cannot authenticate

If skillcrew init fails with could not read Username or Permission denied (publickey), Git has no credentials for the registry:

  1. Set up the SSH key or credential helper above.
  2. Check that git clone <registry> works in a terminal.
  3. Run skillcrew init again.

Background syncs never prompt

Hooks and the timer run non-interactively: Git never prompts for a password. A failed fetch keeps the last fetched registry, so skills keep working:

terminal
$ skillcrew sync
Using the last fetched registry (offline), at 7f396e1a9c2d:
  ! offline: using the last fetched registry (git ls-remote origin -- refs/heads/main: fatal: Could not read from remote repository. …)

skillcrew doctor reports it under the fetch check. Run git -C ~/.skillcrew/registry.git fetch to see the full error, then fix your credentials or network.

Hooks never wait for the network: they start the sync in the background. After a failed fetch, background syncs skip the network for 10 minutes and use the last fetched registry, so session starts on a dead network do not pile up fetches.

Type to search the documentation.