我正在尝试获取组织的所有存储库列表,包括私有存储库。 (或者更具体地说,某个用户可以访问的所有私有存储库。)
要求组织的信息(https://api.github.com/orgs/acme?access_token=[...]
)表明确实存在大量私有存储库:
...
"public_repos": 5,
"total_private_repos": 68,
"owned_private_repos": 68,
...
(我以前使用的访问令牌generated using the API用于username / passwd。)
但无论我试图列出回购......
https://api.github.com/orgs/acme/repos&access_token=[...]
... GitHub API只返回5个公共存储库。 (Documentation says type=all
是默认值。也尝试添加参数type=private
;没有区别。)
知道我做错了吗?
实际上生成访问令牌的用户具有Push&只能访问组织的一些私有存储库,但这些都不会出现在我获得的列表中(只有5个公共存储库)。
答案 0 :(得分:18)
你正在做的一切都很好。但是,在创建OAuth令牌进行身份验证时,请确保您正在定义正确的scopes。每个范围都定义了一组特定的允许操作(您可以读/写的信息),因此您应该检查是否正在创建具有repo
范围的令牌。
答案 1 :(得分:2)
# Get Github Repo Names
"""
>>>> pip install PyGithub
>>>> Reference Link: https://pypi.org/project/PyGithub/
>>>> Getting the access token.
Go to github <settings>.
Go to <Developer Settings>.
Go to <Personal access tokens>.
Click on <Generate new token> button.
Add a note.
Check all the setting in that page.
Click on <Generate token> button.
Copy the access token and paste in below code.
>>>>
>>>>
>>>>
>>>>
"""
from github import Github
access_token = ''
g = Github(access_token)
repo_list = [i for i in g.get_user().get_repos()]
for i in repo_list:
repo_name = str(i).replace('Repository(full_name="', '')
repo_name = str(repo_name).replace('")', '')
print('https://www.github.com/' + repo_name)
答案 2 :(得分:0)
还应注意,如果您要从组织访问私有存储库,则根据设置,所有者需要对OAuth应用程序进行授权。
https://help.github.com/articles/authorizing-oauth-apps/
对于具有OAuth App访问限制的组织,您可以请求组织管理员批准该应用程序在该组织中使用。如果该组织未批准该应用程序,则该应用程序将只能访问组织的公共资源。如果您是组织管理员,则可以自己批准该应用程序。
对于没有OAuth应用访问权限限制的组织,该应用将自动被授权访问该组织的资源。因此,您应注意批准使用哪些OAuth应用访问您的个人信息帐户资源以及任何组织资源。
答案 3 :(得分:0)
您的网址需要一个?不是&。应该是这样:
https://api.github.com/orgs/acme/repos?access_token=your_access_token
答案 4 :(得分:0)
username = "Your_org"
token = "your_TOKEN"
request = requests.get('https://api.github.com/orgs/'+username+'/repos?per_page=1000', auth=(username, token))