continuous-integration - GitLab 自定义 CI 配置路径和合并请求
问题描述
对于我们的一个存储库,我们将 GitLab 中的“自定义 CI 配置路径”设置为远程 gitlab-ci.yml。我们希望这样做以防止开发人员更改 gitlab-ci.yml 文件(因为受保护的文件在 EE Premium 及更高版本中可用)。但除此目的外,自定义 CI 配置路径功能无论如何都应该适用于合并请求。
在 repo group1/repo1
我们设置 .gitlab-ci.yml@group1/repo1-ci
repo1-ci 存储库存在并且当我们推送到配置的分支等时 ci 可以正常工作。
对于合并请求功能,GitLab 告诉我们:
分离的合并请求管道 #123 失败...
未找到项目group1/repo1-ci
或访问被拒绝!
我们将开发人员添加到 repo1-ci repo 作为开发人员,以便能够读取文件。它没有帮助。无论如何,期望是,它不是以用户权限运行的,所以它应该简单地找到 gitlab-ci.yml 文件。
对此有什么想法吗?
解决方案
所以我们的期望是正确的,似乎我们必须在考虑中添加一件重要的事情:
如果用户在 GitLab UI 中使用合并请求功能进行交互,并且您正在为 gitlab-ci.yml 文件使用“自定义 CI 配置路径”,请确保
- 该用户至少需要对该远程文件的读取权限,即使您故意将其移至另一个存储库(例如,在 PREMIUM/ULTIMATE 中使用增强的文件保护或推送/合并保护开发人员角色的分支)
- 用户在正在运行的会话中应用了此权限更改
最后一部分对我们的用户来说失败了,因为它在一天后工作。似乎他们只是从他们打开的合并请求页面继续工作,GitLab 检查此会话的可访问性(使用 cookie、令牌或未通过访问远程 repo/文件而更新的东西)
有用!
推荐阅读
- github - 从 GitHub Actions 更新 GitHub 问题
- javascript - 如何在下一个 js Image 中使用动态链接?
- postgresql - 使用脚本更新 postgres docker 容器中的现有表
- android - 有没有办法让Android按钮按下状态?
- node.js - Mongoose Schema 类型作为 TypeScript 的自定义接口?
- swift - 在有问题的对象正在取消初始化时使用无主(不安全)引用是否可靠?
- c# - 如何将 C# 文本框的文本自动转换为网站中的 Div 文本框
- r - 单列中的模糊匹配字符串并记录可能的匹配
- css - 如何在 Apache Web 服务器上使用 otf 字体文件?
- string - 使用字符串交换排序