π Feature: Multi-Provider Support
Current State
DevSwitch currently supports GitHub and GitLab as Git providers.
Users working with other platforms have to manage their SSH config manually,
which defeats the purpose of DevSwitch.
Proposed Solution
Add support for additional Git providers so users can link profiles to any
platform they use.
Providers to Add
| Provider |
SSH Host |
OAuth Available |
| Bitbucket |
bitbucket.org |
β
Yes |
| Azure DevOps |
ssh.dev.azure.com |
β
Yes |
| Gitea (self-hosted) |
custom host |
β
Yes |
| Sourcehut |
git.sr.ht |
β No |
| Custom / Other |
user-defined host |
β No |
What Needs to Be Done
Core (required for any new provider):
Bitbucket specific:
Azure DevOps specific:
Gitea specific:
Custom Provider:
Tech Notes
- OAuth flow reference: see how GitHub OAuth is implemented in
electron/main.ts and electron/services/
- SSH config generation is in
electron/services/sshConfigService.ts
- Profile type is in
electron/type/profile.ts
- Each provider's OAuth app credentials will need to be added to
.env.example
Good Starting Point
Bitbucket is the easiest to start with β it has a clean OAuth 2.0 flow
and a simple REST API for SSH keys. Recommended as a first PR for this feature.
References
π Feature: Multi-Provider Support
Current State
DevSwitch currently supports GitHub and GitLab as Git providers.
Users working with other platforms have to manage their SSH config manually,
which defeats the purpose of DevSwitch.
Proposed Solution
Add support for additional Git providers so users can link profiles to any
platform they use.
Providers to Add
bitbucket.orgssh.dev.azure.comgit.sr.htWhat Needs to Be Done
Core (required for any new provider):
providerfield to the profile data model (electron/type/profile.ts)(e.g.
bitbucket.org-username,ssh.dev.azure.com-username)Bitbucket specific:
Azure DevOps specific:
ssh.dev.azure.comv3/orgin SSH path)Gitea specific:
Custom Provider:
Tech Notes
electron/main.tsandelectron/services/electron/services/sshConfigService.tselectron/type/profile.ts.env.exampleGood Starting Point
Bitbucket is the easiest to start with β it has a clean OAuth 2.0 flow
and a simple REST API for SSH keys. Recommended as a first PR for this feature.
References