Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

ghapi.page.paged does not respect rate limits

未关闭
#110 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
github, python
领域
api

调研方向

从 ghapi.page.paged 入口点和 ghapi/core.py 中展示的请求流程开始,然后检查引发 HTTP 错误的 fastcore/net.py。重现 search.code 示例,并跟踪速率限制标头和分页行为。当该示例能够在遵守报告的速率限制的同时进行分页,而不会反复收到 HTTP 403 响应时,即表示完成。

由索引模型根据 Issue 内容生成。

描述

Calling it almost always results in HTTP403ForbiddenError: HTTP Error 403: Forbidden

for result in ghapi.page.paged(gh_api.search.code, q=f"filename:component.yaml repo:Ark-kun/pipeline_components"):
    print(len(result["items"]))
opt/conda/lib/python3.7/site-packages/ghapi/core.py in __call__(self, path, verb, headers, route, query, data)
    107             for k,v in route.items(): route[k] = quote(str(route[k]))
    108         res,self.recv_hdrs = urlsend(path, verb, headers=headers or None, debug=self.debug, return_headers=True,
--> 109                                      route=route or None, query=query or None, data=data or None)
    110         if 'X-RateLimit-Remaining' in self.recv_hdrs:
    111             newlim = self.recv_hdrs['X-RateLimit-Remaining']

/opt/conda/lib/python3.7/site-packages/fastcore/net.py in urlsend(url, verb, headers, route, query, data, json_data, return_json, return_headers, debug)
    210         return urlread(req, decode=False, return_json=False, return_headers=return_headers)
    211 
--> 212     return urlread(req, return_json=return_json, return_headers=return_headers)
    213 
    214 # Cell

/opt/conda/lib/python3.7/site-packages/fastcore/net.py in urlread(url, data, headers, decode, return_json, return_headers, timeout, **kwargs)
    111         with urlopen(url, data=data, headers=headers, timeout=timeout, **kwargs) as u: res,hdrs = u.read(),u.headers
    112     except HTTPError as e:
--> 113         if 400 <= e.code < 500: raise ExceptionsHTTP[e.code](e.url, e.hdrs, e.fp) from None
    114         else: raise
    115 

HTTP403ForbiddenError: HTTP Error 403: Forbidden
主要语言
Python
星标
687
派生
69
PR 合并指标
30 天内没有已合并 PR

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

AnswerDotAI/ghapi 的其他 Issue

查看 AnswerDotAI/ghapi 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。