При запросе конечной точки источников рефералов на GitHub я получаю только пустой список. Я могу получить данные для других конечных точек в том же репозитории, даже для других конечных точек трафика. Я ожидаю результатов, подобных ответу, показанному в документации, указанной выше.
Я трижды проверил URL-адрес, который использую. Я создал PAT, а организация, в которой я работаю, является менеджером ресурсов. PAT имеет следующие разрешения:
- Доступ на чтение метаданных
- Чтение и Запись на действия, администрирование, код, статусы фиксации, настраиваемые свойства для репозиториев, развертываний, обсуждений, проблем, очередей слияния, запросов на извлечение и рабочих процессов.
Код: Выделить всё
>>> 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)
Если вместо этого я буду использовать запросы
Код: Выделить всё
>>> 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 -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
[
]
Код: Выделить всё
{
"message": "Requires authentication",
"documentation_url": "https://docs.github.com/rest",
"status": "401"
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... al-sources
Мобильная версия