Я работаю над сценарием для постоянного сохранения GitLab Issues (в моем случае требования) в виде файлов Markdown в репозитории с тегами и в виде скомпилированного документа требований в PDF через GitLab CI.Кроме того, сценарию необходимо загрузить все подключенные источники (изображения, диаграммы, файлы PDF и т. Д.), Чтобы они также могли иметь контроль версий.
Сценарий написан на Python 3.6 и использует python-gitlab для использования GitLab API v4 .
После запроса текста с описанием проблемы он сканирует URL-адреса изображений этой формы: ![...](/uploads/<hash>/<filename>.<ext>)
.Каждый относительный путь дополняется URL-адресом хоста GitLab и передается на urllib.urlretrieve
.
При выполнении запроса я получаю ошибки HTTP 401, потому что я не аутентифицирован.
for image in images:
downloadURL = URL + image
imagePath = "" + image
print(" downloading '{fromURL}' to '{toPath}'".format(fromURL=downloadURL, toPath=imagePath))
try:
urlretrieve(downloadURL, imagePath)
except HTTPError as ex:
print(ex)
except FileNotFoundError as ex:
print(ex)
GitLab использует аутентификацию через токены.Как я могу использовать этот метод аутентификации с urllib
?
Например, когда я использую Insomnia для выполнения запросов JSON непосредственно к API GitLabs, я использую HTTP-заголовок Private-Token
для аутентификации.Могу ли я добавить этот заголовок к вызову urllib
?