Конечная точка GitHub API больше не возвращает результаты для источников рефераловPython

Программы на Python
Ответить
Anonymous
 Конечная точка GitHub API больше не возвращает результаты для источников рефералов

Сообщение Anonymous »

Изменить: на данный момент это известная проблема для конечной точки реферала, поэтому этот вопрос был решен!

При запросе конечной точки источников рефералов на GitHub я получаю только пустой список. Я могу получить данные для других конечных точек в том же репозитории, даже для других конечных точек трафика. Я ожидаю результатов, подобных ответу, показанному в документации, указанной выше.
Я трижды проверил URL-адрес, который использую. Я создал PAT, а организация, в которой я работаю, является менеджером ресурсов. PAT имеет следующие разрешения:
  • Доступ на чтение метаданных
  • Чтение и Запись на действия, администрирование, код, статусы фиксации, настраиваемые свойства для репозиториев, развертываний, обсуждений, проблем, очередей слияния, запросов на извлечение и рабочих процессов.
Я анонимизирую большую часть этой информации, но использую код Python.

Код: Выделить всё

>>> from github import Auth, Github
>>> auth = Auth.Token('MY_TOKEN')
>>> g = Github(auth=auth)
>>> repo = g.get_repo('owner/repo')
>>> contents = repo.get_top_referrers()
>>> contents
[]
>>> repo.get_views_traffic(per="week")
View(uniques=254, count=1905)
Вызов для получения представлений не возвращает детализацию документации. Я также подтвердил, что видел результаты с помощью repo.get_issues().
Если вместо этого я буду использовать запросы

Код: Выделить всё

>>> import requests
>>> url = f'https://api.github.com/repos/{owner}/{repo_name}/traffic/popular/referrers'
>>> params = {}
>>> auth = ('token', 'MY_TOKEN'). # Putting 'Authorization: Bearer MY_TOKEN' in the headers doesn't work, I get a 401
>>> headers = {
'Content-Type': 'application/json',
'Accept': 'application/vnd.github+json',
'X-GitHub-Api-Version': '2022-11-28',
}
>>> response = requests.get(url, params=params, headers=headers, timeout=10)
>>> response

>>> response.json()
[]
Он также возвращает пустой список, когда я пытаюсь использовать cURL. Глядя на заголовки, я вижу HTTP/2 200, поэтому знаю, что прошел проверку подлинности.

Код: Выделить всё

>>> curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer MY_TOKEN" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/OWNER/REPO/traffic/popular/referrers

[

]
Если я попытаюсь перейти по URL-адресу непосредственно в браузере, я получу ошибку авторизации

Код: Выделить всё

{
"message": "Requires authentication",
"documentation_url": "https://docs.github.com/rest",
"status": "401"
}
Он работал примерно до августа, но я не знаю, что случилось, что он перестал успешно возвращать результаты. Мой PAT работает для любого другого вызова API, который я делаю, поэтому я совершенно уверен, что проблема не в этом. Но я не знаю, как устранить дальнейшие неполадки, или мне не хватает разрешений где-то, о чем я не знаю. Владелец репо подтвердил, что у меня есть доступ для записи в моей личной учетной записи.

Подробнее здесь: https://stackoverflow.com/questions/798 ... al-sources
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»