+8

GitHub, GitLab, Bitbucket: support for multiple accounts

Lachlan Sleight 3 years ago updated by Luke Stevenson 1 year ago 9

Perhaps my use-case is pretty specific, but I have multiple GitHub accounts that I use for very different purposes. Because both accounts have private repositories, if I want to switch between the two accounts, I need to go into preferences, remove the current GitHub account, add the new account (generating a new OAuth token) and then continue making commits etc.

It would be very convenient to be able to have multiple accounts with the OAuth tokens / credentials saved, so that I could quickly switch between them. They don't need to both be active simultaneously. Ideally they could also be associated with specific repositories, so that if I open repo A, SmartGit automatically switches over to GitHub account A, and if I switch to repo B, SmartGit switches over to the corresponding GitHub account B.

I'm not sure how many other people need this sort of thing, but it would help me out a bunch, and I imagine it wouldn't be super complicated to implement...

Yeah I tried that but it kept asking for username/password every time I pushed, which ended up being more of a hassle than just changing hosting accounts.

That's unexpected, if "credential.github.com.useHttpPath" is configured. Can you please check Preferences, Authentication see to whether SmartGit actually stores multiple passwords, one per repository?

+1

Oops sorry I never replied to this, a whole bunch of stuff came up and it slipped my mind.

As an update, the problem I'm having (not sure if this was happening back then or not, but it is now) is that when I input my username/password, it says that the credentials are incorrect (perhaps because I have 2FA set up on my GitHub account? I don't get this error on my other GitHub account that doesn't have 2FA). Setting up a personal access token doesn't help.

In my mind, a nice workaround feature would be:

If there are multiple github.com hosting providers set up with OAuth, the first time a repo needs access the user gets presented with a popup window where they have to select which OAuth token to use. If the operation is successful, that selection is then cached in association with the repo in question. If not, they get the popup again, and if the popup is closed, then it just proceeds with the operation without any authentication. This could also be an option in the Repository -> Settings panel perhaps?

Authentication on GitHub using Username/passwords from SmartGit will no longer works after August 13th 2021 which means that this workaround will no longer works. We will need a more permanent solution for being able to switch between GitHub accounts from SmartGit. See reference:

https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/

Yep - this has been stressing me out since I first heard about the change on GitHub's end. I'm probably going to just have to stop using SmartGit for one set of repos until multi-account support comes in some form. :(

(weird that I only just got the email notification about your comment now!)

If you can use Git command line, then you can also use SmartGit. Did you try my above suggestion?

"That's unexpected, if "credential.github.com.useHttpPath" is configured. Can you please check Preferences, Authentication see to whether SmartGit actually stores multiple passwords, one per repository?"

Still a feature I would love to see happening: multiple AOth authentications, and when calling the browser to log in into e.g. Atlassian Bitbucket accounts, I want to be able to choose which browser logs me in so that I can keep company and private accounts separate.

How this has not yet been implemented is a mystery.
For SmartGIT to really be embraced as the GIT client of choice, it really needs to be able to manage multiple accounts on the same platforms. Making users manually write tweaks into config files is not a good enough a solution.