我正在编写一个脚本,以将 GitLab 问题(在我的情况下是要求)作为 Markdown 文件持久保存在带有标签的存储库中,并通过 GitLab CI 作为 PDF 中的已编译需求文档。此外,脚本需要下载所有附加的资源(图像、图表、PDF 文件等),因此它们也可以进行版本控制。
该脚本是用 Python 3.6 编写的,并使用python-gitlab来使用GitLab API v4。
请求问题描述文本后,会扫描该格式的图像 URL:![...](/uploads/<hash>/<filename>.<ext>)
. 每个相对路径都以 GitLab 的主机 URL 为前缀,并移交给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直接向 GitLabs API 执行 JSON 请求时,我使用Private-Token
HTTP 标头进行身份验证。我可以将此标头添加到urllib
通话中吗?