GitHub推荐来源API端点返回空列表,请求排查方案
GitHub推荐来源API返回空列表问题排查
问题描述
调用GitHub的推荐来源端点时,仅返回空列表,但同一仓库的其他端点(包括其他流量类端点)均可正常获取数据,预期能得到文档所示的返回结果。该功能在八月左右还能正常使用,目前未知失效原因。
PAT权限说明
使用的PAT由组织资源管理员创建,权限如下:
- 元数据:只读权限
- actions、管理、代码、提交状态、仓库自定义属性、部署、讨论、议题、合并队列、拉取请求及工作流:读写权限
测试场景及结果
1. PyGitHub库调用
>>> from github import Auth, Github >>> auth = Auth.Token('MY_TOKEN') >>> g = Github(auth=auth) >>> repo = g.get_repo('owner/repo') >>> contents = repo.get_top_referrers() >>> contents [] >>> repo.get_views_traffic(per="week") View(uniques=254, count=1905)
- 访问量接口仅返回汇总数据,无细分内容
repo.get_issues()可正常返回结果
2. requests库调用
>>> import requests >>> url = f'https://api.github.com/repos/{owner}/{repo_name}/traffic/popular/referrers' >>> params = {} >>> # 注:将'Authorization: Bearer MY_TOKEN'放入headers会返回401,改用auth参数 >>> auth = ('token', 'MY_TOKEN') >>> headers = { 'Content-Type': 'application/json', 'Accept': 'application/vnd.github+json', 'X-GitHub-Api-Version': '2022-11-28', } >>> response = requests.get(url, params=params, headers=headers, auth=auth, timeout=10) >>> response <Response [200]> >>> response.json() []
3. cURL调用
>>> curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer MY_TOKEN" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/traffic/popular/referrers [ ]
- 响应状态为
HTTP/2 200,认证成功 - 返回结果为空列表
4. 浏览器直接访问
返回401认证错误:
{ "message": "Requires authentication", "documentation_url": "https://docs.github.com/rest", "status": "401" }
已确认事项
- API URL已反复核对无误
- PAT可正常调用其他所有API接口
- 仓库所有者确认个人账号具备仓库写入权限
需求
寻求进一步排查方向或权限问题的确认。
内容的提问来源于stack exchange,提问作者mjpeterson
相关产品推荐
相关产品推荐

