gpt4 book ai didi

GitLab CI 从其他存储库读取文件

转载 作者:行者123 更新时间:2023-12-03 23:36:22 27 4
gpt4 key购买 nike

在我的设置中,GitLab 中有两个存储库,其中一个有一个版本文件,另一个需要命名由其 CI/CD 管道生成的工件。

现在,我只是克隆整个其他存储库以访问该 VERSION文件。我尝试使用 git archive只拉VERSION文件,但 CI_JOB_TOKEN不适用于 SSH 访问 Remote (来自我的测试),并且执行 curl到原始文件路径不起作用,因为它位于私有(private) GitLab 实例上。

有一个更好的方法吗?

最佳答案

我有同样的问题并通过使用访问 token 解决了它。转至 用户设置 > 访问 token 并创建一个:

Generate access token

使用它,您可以通过 gitlab-api 从所有存储库中提取文件.

wget --header "PRIVATE-TOKEN: <your_token>" http://mygitlab.com/api/v4/projects/<project_id>/repository/files/path%2Fto%2Ffile/raw?ref=master

要在 GitLab CI 中提取该文件,您可以将访问 token 设置为环境变量。转至 > 设置 > CI > 环境变量 并添加 GITLAB_TOKEN使用您的访问 token :

add ci environment variable

您现在可以在 CI 脚本中使用该环境变量通过 wget 下载该文件。或 curl若你宁可。
wget --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" http://mygitlab.com/api/v4/projects/<project_id>/repository/files/path%2Fto%2Ffile/raw?ref=master

或者
curl --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" http://mygitlab.com/api/v4/projects/<project_id>/repository/files/path%2Fto%2Ffile/raw?ref=master

关于GitLab CI 从其他存储库读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54811710/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com