Skip to main content

Github Desktop Multi account switcher

Project description

pyGitSwitch

GitHub Desktop Multi-account switcher

-----------------------------------------------------

➤ Why :

https://github.com/desktop/desktop/issues/3707 Since GitHub Desktop doesn't natively support multiple accounts.

So users often have to log out and log back into their work and personnel accounts and re-add the repos they're working on.

This aims to solve that problem by keeping a copy Roaming\Github Desktop for each user and then renaming the folder when asked and rename the folder back when switching to a new user. (records kept track using ~/gitswitch.json file)

-----------------------------------------------------

➤ How :

  • Make user login with each account in setup (init) process.
  • rename .gitconfig and GitHub Desktop folder with username at the end.
  • When the switch method is called rename the user folder to GitHub Desktop and copy over the .gitconfuser file to .gitconf.
  • update the ~/gitswitch.json with the current user details.

-----------------------------------------------------

➤ FAQ

  • Q: Does this work on Linux / macOS ?
Answer No, this script only supports windows for now. Feel free to open a pull request if you have a patch for Linux / macOS
  • Q: How do you use this?
Answer Check the installation section below.

-----------------------------------------------------

➤ Installation

Python

  • With Python >= 3.6
pip install pyGitSwitch

or install the latest development branch using

pip install git+https://github.com/AnvithLobo/pygitswitch

Windows

  • Windows Standalone exe

Download the exe from releases (TBD) and add the exe and add the containing folder to your PATH

https://stackoverflow.com/questions/44272416/how-to-add-a-folder-to-path-environment-variable-in-windows-10

-----------------------------------------------------

Init

  • Run gitswitch init (First run only)
$ gitswitch init --help
usage: gitswitch init [-h] [-c USERNAME] [-u USERNAME [USERNAME ...]]

options:
  -h, --help            show this help message and exit
  -c USERNAME, --current-user USERNAME
                        Store current user login as (do not delete current user)
  -u USERNAME [USERNAME ...], --users USERNAME [USERNAME ...]
                        all usernames separated by space
$ gitswitch init -c user1 -u user2 user3
$ gitswitch init -u user1 user2

-----------------------------------------------------

Switch

  • Run account switcher
$ gitswitch switch --help
gitswitch switch [-h] [-u USERNAME] [-d]

options:
  -h, --help            show this help message and exit
  -u USERNAME, --user USERNAME
                        username / userid to switch to
  -d, --do-not-start-github
                        Do NOT Start github after switching account
$ gitswitch

Stopping Github Process...

Select Account  (Current User: User1)
----------------------------------------

1. User1
2. User2
3. User3

 Enter Your Choice (1-3) : 3
---------------


Switching account to user : User3

Done

just running gitswitch without any arguments will trigger the switch command by default


  • Non-interactive mode
$ gitswitch switch -u User2

Switching account to user : User2

Done
$ gitswitch switch -u 1

Stopping Github Process...

Switching account to user : User1

Done

-----------------------------------------------------

Add User/s

  • Add more users.
$ gitswitch adduser -h
usage: gitswitch adduser [-h] USERNAME [USERNAME ...]

positional arguments:
  USERNAME

options:
  -h, --help  show this help message and exit
$ gitswitch adduser user4 user5
$ gitswitch adduser user6

-----------------------------------------------------

Delete User/s

  • Delete user/s.
$ gitswitch deluser -h
usage: gitswitch deluser [-h] USERNAME [USERNAME ...]

positional arguments:
  USERNAME

options:
  -h, --help  show this help message and exit
$ gitswitch deluser user2 user5
$ gitswitch deluser user1

-----------------------------------------------------

List User/s

  • List user/s.
$ gitswitch showusers

----------------------------------
| ID | User Name  | Current User |
----------------------------------
|  1 | User1      | ✓️            |
|  2 | User2      | X            |
|  3 | User3      | X            |
----------------------------------

-----------------------------------------------------

➤ ToDo:

  • ...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyGitSwitch-0.4.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyGitSwitch-0.4.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file pyGitSwitch-0.4.0.tar.gz.

File metadata

  • Download URL: pyGitSwitch-0.4.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for pyGitSwitch-0.4.0.tar.gz
Algorithm Hash digest
SHA256 fe1a07dc481099684f9f62999105023d038c405d849c9968723a63afc3b357e8
MD5 984c89aca640d3d0a999b8f7a5e5ab5d
BLAKE2b-256 0bb15ff6d79e38c28fd0a3edd9697a26d59136867fd8430c5a3b47fc86c00494

See more details on using hashes here.

File details

Details for the file pyGitSwitch-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: pyGitSwitch-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for pyGitSwitch-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 73190041ab5bbe169cd30887bae5fe8992b89fd1ae88164235040691b2544566
MD5 11fc892b58f6054ccf05a777dca94a46
BLAKE2b-256 bae2d92179d53ed55318e2ace87a9a33248c66038803ff2de136deff8fab0ee3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page