Source code for repo_splitter.github_tools.connect
from git import Repo, Remote
from github.Repository import Repository
from github import Github
[docs]def connect_local_repo_to_github_repo(local_repo: Repo, github_repo: Repository, token: str) -> Remote:
url = _github_authenticated_url(github_repo, token)
origin = local_repo.create_remote('origin', url)
return origin
def _github_authenticated_url(github_repo: Repository, token: str) -> str:
username = _username_from_token(token)
return github_repo.clone_url.replace('github.com', f'{username}:{token}@github.com')
def _username_from_token(token: str) -> str:
ghub = Github(token)
user = ghub.get_user()
username = user.login
return username