首页 > 解决方案 > PyGitHub 问题 get_comments()

问题描述

我想获得所有 Github 问题的所有评论。我在这里阅读了指南:https ://buildmedia.readthedocs.org/media/pdf/pygithub/stable/pygithub.pdf

按照脚本:

from github import Github

g = Github(base_url="https://github.com/api/v3", login_or_token="XXX")
r = g.get_repo("ORG/REPO")
i = r.get_issues(state='open')
c = i.get_comments()

for issue in c:
    print(issue)

但我得到了以下标准输出:

AttributeError:“PaginatedList”对象没有属性“get_comments”

我希望看到由收集的每个“问题”的每条评论for

标签: pythongithub-apipygithub

解决方案


您正在尝试使用未包含在PaginatedList. 欲了解更多信息:链接

要从问题中获取评论,您需要从单个问题中提取所有评论,并为每个问题继续这样做。这条线不是没有实现c = i.get_comments()。我找到了这个问题,它可以解决您正在寻找的行为:link

另外,我想在您的代码中指出几件事:

  1. g = Github(base_url="https://github.com/api/v3", login_or_token="XXX") 此 GitHub 实例适用于具有自定义域的 Github Enterprise。您的 URL 缺少域名。URL 应采用以下格式:https://github.xxx.com/api/v3. 如果您没有企业帐户,您可以使用您的登录名/密码或令牌创建一个实例。参考

  2. 您是否尝试从特定组织或所有存储库中获取评论?我问是因为r = g.get_repo("ORG/REPO")返回来自组织的请求。要改为指定所有存储库,请使用g.get_repo("repositories). 另外请注意,请求限制为 5000 个请求,您需要使用 Link Header 指定更多。参考

  3. 您当前的代码在未解决的问题中指定了注释,并且也不考虑已关闭的问题。要返回所有问题中的所有评论,包括打开和关闭的问题;i = r.get_issues(state='all') 参考


推荐阅读