通过GitLab API下载dotenv作业工件



我正在尝试从与分支feature/tests-update相关的最新作业中下载名为release.env的dotenv工件,但API返回404错误。

API文档:https://docs.gitlab.com/14.8/ee/api/job_artifacts.html#download-a-single-artifact-file-by-job-id

请求的例子:

curl -v --get --header "PRIVATE-TOKEN: <TOKEN>" --data-urlencode "job=create-release" "https://<gitlab-host>/api/v4/projects/2/jobs/artifacts/feature%2Ftests-update/raw/release%2Eenv"

GitLab community .

不幸的是,artifacts:reports:dotenv工件没有由API公开。只有工件存档中的文件(例如在artifacts:paths:中)才能从这个端点检索。

但是,您可以从UI下载dotenv报告。

据我所知,这似乎是工作API中的一个疏忽。

您可以看到作业API在其工件中列出了文件名为.env.gz的dotenv报告:

...
'artifacts': [{'file_type': 'trace',
'size': 9954,
'filename': 'job.log',
'file_format': None},
{'file_type': 'dotenv',
'size': 66,
'filename': '.env.gz',
'file_format': 'gzip'}],
...

但是,即使您使用文件名.env.gz,似乎您也无法从API下载此文件。

作为一种解决方法,您可以将release.env文件添加到artifacts:paths:,并以您描述的方式检索它。

最新更新