想要检查存储库是否存在以及它是否为 public (gitpython)
Want to check if repository exists and if it's public (gitpython)
使用 Python 和 GitPython,以及来自不同用户的 git 个存储库列表,我需要检查存储库是否存在以及它是否 public。
考虑到这一点并考虑 GitHub,如果它要求输入用户名和密码,我知道存储库不在我的标准范围内。因此,我可以忽略它。
import git
class User():
def __init__(self, a, b, c):
self.name = a
self.git_user = b
self.git_repos = c
user = User('John', 'john1234', 'fake_one')
try:
git.Repo.clone_from(f'https://github.com/{user.git_user}/' + \
f'{user.git_repos}.git', f'temp/{user.name}/')
except git.exc.GitError:
print(f'ERROR! {user.name}: {user.git_user}/{user.git_repos} does not exist')
此代码有效,到目前为止,当未找到 public 存储库时,我输入了任何用户名和相应的密码(包括空密码)。有没有办法忽略(通过发送空字符串)或捕获(某些异常?) username/password 东西?
请注意,如果我可以检查 (public) 存储库是否存在,我可以使用此信息来防止不适当的 'clone'...
我已经弄明白了,感谢 Lacho Tomov 在这个问题中的回答:Git push requires username and password
具有所需行为的代码是:
import git
class User():
def __init__(self, a, b, c):
self.name = a
self.git_user = b
self.git_repos = c
user = User('John', 'john1234', 'fake_one')
try:
git.Repo.clone_from(f'https://null:null@github.com/{user.git_user}/' + \
f'{user.git_repos}.git', f'temp/{user.name}/')
except git.exc.GitError:
print(f'ERROR! {user.name}: {user.git_user}/{user.git_repos} does not exist')
请注意 https://null:null@github.com/{user.git_user}/
中的 null
可能是其他字符串(但不是空的)。
如果有人有更多 pythonic/proper 的方法,请随意更新此答案。
使用 Python 和 GitPython,以及来自不同用户的 git 个存储库列表,我需要检查存储库是否存在以及它是否 public。
考虑到这一点并考虑 GitHub,如果它要求输入用户名和密码,我知道存储库不在我的标准范围内。因此,我可以忽略它。
import git
class User():
def __init__(self, a, b, c):
self.name = a
self.git_user = b
self.git_repos = c
user = User('John', 'john1234', 'fake_one')
try:
git.Repo.clone_from(f'https://github.com/{user.git_user}/' + \
f'{user.git_repos}.git', f'temp/{user.name}/')
except git.exc.GitError:
print(f'ERROR! {user.name}: {user.git_user}/{user.git_repos} does not exist')
此代码有效,到目前为止,当未找到 public 存储库时,我输入了任何用户名和相应的密码(包括空密码)。有没有办法忽略(通过发送空字符串)或捕获(某些异常?) username/password 东西?
请注意,如果我可以检查 (public) 存储库是否存在,我可以使用此信息来防止不适当的 'clone'...
我已经弄明白了,感谢 Lacho Tomov 在这个问题中的回答:Git push requires username and password
具有所需行为的代码是:
import git
class User():
def __init__(self, a, b, c):
self.name = a
self.git_user = b
self.git_repos = c
user = User('John', 'john1234', 'fake_one')
try:
git.Repo.clone_from(f'https://null:null@github.com/{user.git_user}/' + \
f'{user.git_repos}.git', f'temp/{user.name}/')
except git.exc.GitError:
print(f'ERROR! {user.name}: {user.git_user}/{user.git_repos} does not exist')
请注意 https://null:null@github.com/{user.git_user}/
中的 null
可能是其他字符串(但不是空的)。
如果有人有更多 pythonic/proper 的方法,请随意更新此答案。