GitLab 中的“允许使用 CI_JOB_TOKEN 访问此项目”是否可以在私有存储库之间工作?

rba*_*dar 6 access-token gitlab cicd

我是私人团体(我们部门的团队)的成员。所有底层项目和子组只能是私有的(这就是 GitLab 的工作方式),并且我们都至少拥有对这些项目和子组的报告级别访问权限。不要与每个用户的个人命名空间混淆!

我为我正在处理的一个大型 Django 项目创建了一个包含多个存储库的子组。其中一个存储库(主要的,还包括manage.py用于django-admin配置和运行整个项目的 Django 项目主文件)正在引用其他几个作为子模块(Django 应用程序)。

我正在尝试使用 Kaniko 创建一个构建作业,该作业在主存储库中配置,并使用存储库自己的代码以及所有子模块来完成应用程序。不幸的是,我遇到了身份验证问题

尽管我是子组以及内部存储库的所有者,但克隆子模块显然仍然需要用户名和密码。我的设置不允许我使用添加git config所需的凭据 - 自动生成的 CI 用户和CI_JOB_TOKEN- 我决定研究在以某种方式链接的所有存储库(主存储库 + 子模块)之间共享这些凭据。

在 GitLab Web UI 的 CI/CD 部分中,我有以下选项:

在此输入图像描述

我尝试将项目的路径设置为使用当前存储库作为子模块的主存储库。然而,我得到

The target_project that you are attempting to access does not exist or you don't have permission to perform this action
Run Code Online (Sandbox Code Playgroud)

该项目确实存在(尝试过使用或不使用.git后缀),因此唯一剩下的就是凭证问题。

我可能错过了一个提示,但官方文档并没有说私人仓库不能共享令牌。

rba*_*dar 0

目前我无法找到有关在私有存储库之间共享 CI 作业令牌的任何信息。然而,解决这个问题的一种方法是将私有存储库放入私有组中,并创建一个用作工作令牌的私有令牌。我还没有尝试将这样的令牌命名为gitlab-ci-token但它可以工作。