我正在尝试检索特定版本的 Django 的发布信息。但是,发布总是返回一个空响应。在下面的示例中,我试图检索Django 的 1.11 版本的信息:
import os
import requests
GITHUB_ACCESS_TOKEN = os.environ['GITHUB_ACCESS_TOKEN']
def get_release_information():
query = '''
{
repository(owner: "django", name: "django") {
release(tagName: "1.11") {
name
tagName
createdAt
}
}
}
'''
response = requests.post(
url='https://api.github.com/graphql',
json={'query': query},
headers={'Authorization': f'token {GITHUB_ACCESS_TOKEN}'}
)
pprint(response.json())
以上返回:
{
"data": {
"repository": {
"release": null
}
}
}
我是否误解了如何执行 GraphQL 查询?我可以使用以下针对此版本的查询在我自己的个人公共存储库上使用相同的查询:
query = '''
{
repository(owner: "michaeljohnbarr", name: "django-timezone-utils") {
release(tagName: "0.13") {
name
tagName
createdAt
}
}
}
'''
我的个人存储库返回以下结果:
{
"data": {
"repository": {
"release": {
"name": "Version 0.13",
"tagName": "0.13",
"createdAt": "2018-09-26T00:01:20Z"
}
}
}
}
Github API v4 GraphQL 库对 2 个公共存储库的处理方式对我来说没有任何意义。我正在使用的 Github 访问令牌对所有内容具有完全权限;我检查了所有可能的权限和子权限。
更新: (2019-09-14) Github 的 GraphQL API 有一个支持论坛。我发现这个线程确定了相同的问题并且也在那里发布。