GitLab非主分支CI作业中组访问令牌不可见问题
问题
我在自托管的GitLab CE实例上,用**组访问令牌(GAT)**从一个私有仓库下载制品到另一个仓库,并在构建步骤中使用。两个仓库同属一个组,我只是普通用户(非管理员)。
运行器配置为Windows Server 2016机器上的shell执行器,使用PowerShell(因此代码中采用"$($VARIABLE)"语法),无虚拟机、WSL等环境。
操作流程
CI执行时,通过前置脚本将名为
CI_GROUP_TOKEN的GAT写入token.txt:.setup_token: before_script: # 因为私有仓库间使用CI_JOB_TOKEN失败(原因未知),改用组访问令牌CI_GROUP_TOKEN - git config --system core.longpaths true - echo "CI_GROUP_TOKEN = $($CI_GROUP_TOKEN)" - echo $CI_GROUP_TOKEN > token.txt该令牌拥有完整
api权限,角色为Developer(后续尝试提升为Maintainer,结果无变化)。通过CMake的
file(STRINGS)函数读取令牌:file( STRINGS "${CMAKE_SOURCE_DIR}/token.txt" TOKEN LIMIT_COUNT 1 )令牌用于CMake的
FetchContent_MakeAvailable()调用中的curl请求,请求头已正确设置为PRIVATE-TOKEN: <token.txt中的值>。
异常现象
main分支(默认受保护分支)的作业执行正常debug分支的作业执行失败
排查情况
- 生成的REST API请求URL,在本地用同一令牌、个人访问令牌或已登录的Web浏览器均可正常访问
- 提升令牌权限至Maintainer,问题依旧
- 未在GitLab官方文档中找到相关解决方案
内容的提问来源于stack exchange,提问作者rbaleksandar
相关产品推荐
相关产品推荐

