【问题标题】:Github API v4 GraphQL not returning release by tagName [duplicate]Github API v4 GraphQL 未按 tagName 返回版本 [重复]
【发布时间】:2019-09-15 02:57:18
【问题描述】:

我正在尝试检索特定版本的 Django 的发布信息。但是,发布总是返回一个空响应。在下面的示例中,我试图检索Django's 1.11 release 的信息:

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 查询?我可以使用以下this release 查询在我自己的个人公共存储库上使用相同的查询:

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 有一个支持论坛。我找到了this thread,它发现了同样的问题并且也在那里发布了。

【问题讨论】:

    标签: graphql github-api github-api-v4


    【解决方案1】:

    https://stackoverflow.com/a/35062729/2693385 是这个问题的实际答案。它还把我带到了forum post in Github

    问题在于,当作者创建标签时,它会创建一个“发布点”(UI 中用于发布的临时占位符),而不是发布。为了使它成为一个版本,作者必须通过 UI 或 API 为该版本添加注释。

    forum post in Github 说:

    正如 StackOverflow 的回答所涉及的那样,每个标签都会创建一个发布点,但实际上并没有创建一个发布。当您将发布说明添加到标签时,会创建发布本身。但是,正如您所指出的,没有与之关联的发布的标签仍然会显示在发布选项卡上,尽管样式非常不同。我可以看到这可能会令人困惑。

    我已将您的功能请求记录在我们的内部功能请求列表中。虽然我不能保证任何事情或为此分享时间表,但我可以告诉你,它已与适当的团队分享以供考虑。

    【讨论】:

    • 如果另一个帖子给了您答案,那么您应该将您的问题作为重复项关闭,而不是在此处添加您自己的答案。
    • @DavidG - 好点。我不知道该怎么做,然后查了一下。谢谢。
    猜你喜欢
    • 2018-08-21
    • 2018-03-10
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 2023-03-08
    • 2018-10-01
    • 2019-10-12
    • 1970-01-01
    相关资源
    最近更新 更多