使用python 2.7脚本,当我尝试从Enterprise Github帐户中的某些组织查询存储库/挂钩时,收到以下错误消息:
{u'documentation_url': u'https://developer.github.com/enterprise/2.12/v3/repos/hooks/#list-hooks', u'message': u'Not Found'
问题是我正在为没有创建这些组织的GitHub用户使用GitHub令牌。
我用我创建的Repo / Hooks(使用我的个人Github Enterprise帐户)与几个测试组织进行了测试,并且在此测试案例中,python脚本有效。
我的意思是,在这个测试案例中,我使用了由GH用户创建的令牌(我的用户还创建了执行测试所用的org / repos / hooks)。
但是,如果我使用另一个令牌来读取/查询其他组织/仓库/挂钩,则会收到上述错误消息。
让我为您展示我的python脚本的摘要,我在其中收到上面发送的错误消息:
错误消息以 print(“ REPO RESPONSE:”,response)
打印import requests
oauth_token = "xxxxxxxxxxxxxxxxxxxxx"
headers = {"Authorization": "token {}".format(oauth_token.rstrip())}
url = "https://ENTERPRISE_GITHUB_DOMAIN/api/v3/organizations?since=100"
all_orgs = paginate_org_and_repos(url, headers)
def main1():
for org_name in all_orgs:
print "Organization Name: ",org_name["login"]
url = "https://ENTERPRISE_GITHUB_DOMAIN/api/v3/orgs/" + org_name["login"] + "/repos?per_page=100"
all_repos_by_org = paginate_org_and_repos(url, headers)
for desc_repo_v1 in all_repos_by_org:
url = "https://ENTERPRISE_GITHUB_DOMAIN/api/v3/repos/" + desc_repo_v1["full_name"] + "/hooks"
response = requests.get(url, auth=(username, oauth_token.rstrip())).json()
print("REPO RESPONSE: ", response)
def paginate_org_and_repos(url, headers):
all_items = []
response = requests.get(url, headers=headers)
response_json = response.json()
for i in response_json:
all_items.append(i)
while "next" in response.links.keys():
response = requests.get(response.links["next"]["url"], headers=headers)
response_json = response.json()
for i in response_json:
all_items.append(i)
return all_items
if __name__ == '__main__':
main1()
我的具体问题是如何创建Github令牌(或具有哪些特定特权)以读取/查询Enterprise GitHub帐户中的所有组织/存储库/挂钩,包括尚未由GitHub创建的组织/存储库/挂钩。令牌的所有者。我的意思是,我想知道如何创建一个 令牌,该令牌可以读取/查询我的Enterprise GitHub帐户中的所有组织,无论是谁创建的。
我认为错误消息的根本原因是我使用的令牌,因为我的脚本可以使用我的个人令牌(以及我的Github创建的orgs / repos / hooks) 帐户)。
另一方面,我不知道要实现它的令牌类型应该是“个人访问令牌”还是“ OAuth应用程序”等?
如果要在我的组织/存储库中进行测试(脚本可以在其中运行),我会使用“个人访问令牌”,但是我不知道这种令牌是否也可以读取/查询Enterprise Github中的所有组织帐户?
我非常感谢您的帮助!
非常感谢!