Providers

Provider status

Provider Status Notes
GitHub Tested Stable, daily use
GitLab Tested Stable, including self-hosted
Forgejo / Gitea Tested Stable
Bitbucket Beta API fallback implemented, needs more testing
Radicle Beta Experimental, peer-to-peer

Bitbucket and Radicle support is functional but has not been extensively tested in production. If you encounter a bug, please open an issue - contributions and bug reports are welcome.


GitHub

CLI: gh (docs)

# Install
sudo pacman -S github-cli  # Arch
brew install gh             # macOS

# Authenticate
repos-manager github login

# Sync
repos-manager github sync

Fetches repos from your account and all organizations you belong to.

GitLab

CLI: glab (docs)

# Install
sudo pacman -S glab  # Arch
brew install glab    # macOS

# Self-hosted
repos-manager gitlab sync --host gitlab.company.com

Supports pagination for large instances. Works with GitLab.com and self-hosted.

Forgejo / Gitea

CLI: tea (docs) Extra runtime deps: curl, yq

# Install tea for authentication
sudo pacman -S tea curl yq   # Arch
brew install tea curl yq     # macOS

# Authenticate once per instance
tea login add
# or
repos-manager forgejo login

# Self-hosted
repos-manager forgejo sync --host git.example.com

How listing works

tea repo list only returns the authenticated user's own repositories and does not enumerate organizations, so repos-manager talks to the Forgejo REST API directly instead. It reads the per-host URL and token from ~/.config/tea/config.yml, then paginates three endpoints and merges the results:

  • /api/v1/user/repos for your personal repos
  • /api/v1/user/orgs for the organizations you belong to
  • /api/v1/orgs/{org}/repos for every such organization

tea itself is still the recommended way to create the login entry, but it is not called during sync. The config file is the source of truth for credentials.

If no tea login matches a configured host, the host is skipped with a warning and the sync continues with the next one. If curl or yq is missing, sync aborts with a clear message telling you which package to install.

Bitbucket

CLI: bitbucket or API fallback (docs)

If the bitbucket CLI is not installed, repos-manager falls back to the Bitbucket REST API with app password authentication.

# Authenticate (creates ~/.config/repos-manager/bitbucket-creds)
repos-manager bitbucket login

# Sync
repos-manager bitbucket sync

Create an app password at bitbucket.org/account/settings/app-passwords with Repositories: Read scope.

Radicle

CLI: rad (docs)

Radicle is a sovereign peer-to-peer code forge. repos-manager lists tracked repos from your local Radicle node.

# Install rad from https://radicle.xyz
# Authenticate
repos-manager radicle login

# Sync
repos-manager radicle sync