如何通过PyGithub获取GitHub组织所有用户?遍历PaginatedList遇异常
问题解决:通过仓库获取组织后遍历成员报404错误
问题原因
通过repo.organization获取的Organization对象是部分初始化的轻量对象,仅包含仓库关联的基础组织信息(如名称、ID),但缺少完整的API请求上下文。当调用get_members()时,PyGitHub生成的请求无法正确访问组织成员接口,导致返回404 Not Found。而直接用g.get_organization("ORG")获取的是完整初始化的组织对象,具备正确的API访问上下文,因此能正常调用成员接口。
解决方法
从仓库获取组织的login名称后,重新调用g.get_organization()获取完整的组织对象,再遍历成员:
python3 -c 'import os; from github import Github; g = Github(os.environ["TOKEN"]); repo = g.get_repo("ORG/REPO"); # 从仓库的组织对象中提取login名,重新获取完整组织对象 organization = g.get_organization(repo.organization.login); members = organization.get_members(); for member in members: print(member);'
验证说明
这个方法既满足“通过仓库获取组织”的需求,又能正常遍历组织成员。本质是用仓库关联的组织标识,重新拉取具备完整API权限的组织实例,避免轻量对象的接口调用限制。
内容的提问来源于stack exchange,提问作者mazix
相关产品推荐
相关产品推荐

