Multi-provider setup
Three profiles on one machine: work GitHub, work GitLab, personal Azure DevOps. Switch with one command.
Why three profiles?
Each profile is a bundle of:
- Commit identity — author email used in hub commits.
- Remote(s) — hub URLs plus provider kind and push mode.
- Install settings — mirror dirs.
You want a separate profile per identity so commits to your work hub are tagged with your work email, and personal pushes use your personal email.
1. First profile: work GitHub (wizard)
quay profile add -i
Answer:
- Name:
work-github - Email:
you@corp.example - Hub URL:
git@github.com:my-org/skills-hub.git - Provider:
github(auto-detected) - Push mode:
pr - Activate: yes
Confirm:
quay profile current # → work-github
quay profile show
2. Second profile: work GitLab (explicit flags)
quay profile add work-gitlab \
--email you@corp.example \
--remote main=git@gitlab.com:my-org/skills-hub.git \
--provider gitlab \
--push-mode pr \
--default
--default marks main as the profile's default remote.
3. Third profile: personal Azure DevOps (TOML)
Useful pattern for committable configs. Drop this in ~/code/quay-profiles/personal-azure.toml:
name = "personal-azure"
email = "me@personal.example"
[[remotes]]
name = "main"
url = "https://dev.azure.com/myorg/skills/_git/skills-hub"
provider = "azuredevops"
push_mode = "pr"
default = true
Add it:
quay profile add personal-azure --from-toml ~/code/quay-profiles/personal-azure.toml
Stdin works too — handy for scripted bootstrap:
cat ~/code/quay-profiles/personal-azure.toml | quay profile add personal-azure --from-toml -
4. Switch profiles
Interactive picker:
quay profile use -i
Direct:
quay profile use work-gitlab
quay profile current # → work-gitlab
For a one-shot override without persisting:
quay --profile personal-azure push early-returns
# or
QUAY_PROFILE=personal-azure quay push early-returns
5. Push the same skill to all three
Author once, publish thrice:
quay profile use work-github
quay push early-returns
quay profile use work-gitlab
quay push early-returns
quay profile use personal-azure
quay push early-returns
Each push records to ~/.config/quay/push-log.json with the active profile + remote URL.
6. Verify
quay profile list
Expect three entries with the active one starred. quay search early-returns (run under any profile) returns hits across that profile's remotes.
Next
- Per-provider deep-dives: GitHub, GitLab, Azure DevOps, Bitbucket.
- Recipe: Multi-org profiles.