# 1. Set your tokens as environment variables
export MULTIGIT_GITHUB_TOKEN="ghp_your_github_token_here"
export MULTIGIT_GITLAB_TOKEN="glpat_your_gitlab_token_here"
# 2. Run the test script
./RUN_MULTI_REMOTE_TEST.sh# Just run the script - it will prompt you for tokens
./RUN_MULTI_REMOTE_TEST.shGitHub Token:
- Go to: https://github.com/settings/tokens
- Click "Generate new token (classic)"
- Select scopes:
repo,read:user - Generate and copy the token (starts with
ghp_)
GitLab Token:
- Go to: https://gitlab.com/-/profile/personal_access_tokens
- Click "Add new token"
- Select scopes:
api,write_repository - Create and copy the token (starts with
glpat-)
# Add GitHub
./target/release/multigit remote add github TIVerse
# Paste your GitHub token when prompted
# Add GitLab
./target/release/multigit remote add gitlab TIVisionOSS
# Paste your GitLab token when prompted
# Test connections
./target/release/multigit remote test github
./target/release/multigit remote test gitlab
# List remotes
./target/release/multigit remote list
# Dry run (safe)
./target/release/multigit sync --dry-run
# Real push to BOTH remotes
./target/release/multigit push- ✅ Tokens stored securely in OS keyring (never plain text)
- ✅ Both remotes tested for connectivity
- ✅ Dry-run shows what would be pushed
- ✅ Real push sends to GitHub AND GitLab simultaneously
- ✅ You'll see timing for each remote
🚀 Pushing 'master' to 2 remote(s)...
✓ github - pushed in 1250ms
✓ gitlab - pushed in 980ms
📊 Summary: 2 succeeded, 0 failed
- Tokens are stored in OS keyring (Keychain on macOS, Credential Manager on Windows, Secret Service on Linux)
- Config file (.multigit/config.toml) does NOT contain tokens, only usernames
- Tokens never appear in git history or logs
- You can remove remotes anytime with:
multigit remote remove <name>
If GitHub connection fails:
# Check token has correct scopes
./target/release/multigit remote test github
# Update token if needed
./target/release/multigit remote update githubIf GitLab connection fails:
# Check token has correct scopes
./target/release/multigit remote test gitlab
# Update token if needed
./target/release/multigit remote update gitlabRemove and re-add a remote:
./target/release/multigit remote remove github
./target/release/multigit remote add github TIVerseChoose one of the options above and let's test pushing to both remotes! 🚀