Github API v4 GraphQL не возвращает выпуск по tagName

Я пытаюсь получить информацию о выпуске конкретной версии 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. Я нашел эту ветку, которая идентифицирует ту же проблему, и тоже разместил там.

1 ответ

/questions/19948449/poluchit-relizyi-pustyimi-v-github-api/19948457#19948457 - фактический ответ на этот вопрос. Это также привело меня к сообщению на форуме в Github.

Проблема в том, что когда автор создает тег, он создает "точку выпуска" (временный заполнитель в пользовательском интерфейсе для выпусков), но не выпуск. Чтобы он стал выпуском, автору нужно было бы добавить примечания к выпуску через пользовательский интерфейс или API.

Сообщение на форуме в Github говорит:

В соответствии с этим ответом Stackru каждый тег создает точку выпуска, но на самом деле не создает выпуск. Сами выпуски создаются, когда вы добавляете примечания к выпуску в тег. Однако, как вы отметили, теги, с которыми не связан выпуск, все равно отображаются на вкладке выпусков, хотя и в совершенно другом стиле. Я понимаю, как это может сбивать с толку.

Я зарегистрировал ваш запрос функции в нашем внутреннем списке запросов функции. Хотя я не могу ничего гарантировать или сообщить график для этого, я могу сказать вам, что он был передан на рассмотрение соответствующим командам.

Другие вопросы по тегам