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