GitHub API调用中无法获取私密Gists的问题
解决GitHub API获取私密Gists的问题
我之前也踩过这个坑!其实这不是令牌的问题,是GitHub API的默认行为在搞鬼:当你携带认证令牌调用/gists端点时,它默认只会返回你自己的公开Gists,私密Gists不会被包含进来——哪怕你的令牌已经有Gists读写权限。
要同时获取自己的公开和私密Gists,只需要在请求参数里加上visibility: 'all'就行。修改你的代码如下:
url = "https://api.github.com/gists" with Get( url, headers={"Accept": accept}, params={ "since": since, "per_page": per_page, "page": page, "visibility": "all" # 新增这个关键参数 }, auth=("token", token) ) as response: return response
简单说下原因:GitHub API的/gists端点在认证状态下,visibility参数的默认值是public,显式设置为all后,就会返回你所有的Gists(包括私密的)。你之前测试排除了参数和请求头的问题,恰恰是漏掉了这个控制可见性的参数。
额外补充下:如果之后只想单独获取私密Gists,把visibility设为secret就可以了,按需调整就行。
内容的提问来源于stack exchange,提问作者Jonathan1609
相关产品推荐
相关产品推荐

