使用“$CI_JOB_TOKEN”“包含”私有项目文件

2023-12-09

到目前为止我得到的是,可以通过以下方式进行身份验证Personal Access Token and include外部 CI 脚本,但更简洁的方法是使用$CI_JOB_TOKEN因为它更安全、更受限制。我正在研究是否可以通过这种方式完成 -

include 'https://gitlab-ci-token:${CI_JOB_TOKEN}@raw-file-url'

我尝试在虚拟脚本作业中以这种格式卷曲,但无法获取文件。

显然,可以使用文件 API 和 $CI_JOB_TOKEN 导入外部脚本(https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2346/diffs),但我正在研究是否include功能也支持这一点。任何有关如何实现这一目标的建议都将受到赞赏。


很遗憾,CI_JOB_TOKEN范围非常有限。截至今天(GitLab 11.0),您只能用它做两件事:

  • 使用 GitLab 容器 (Docker) 注册表进行身份验证
  • 进行身份验证以触发多项目管道(仅限 EE)

参考:

  • https://docs.gitlab.com/ce/ci/variables/
  • https://docs.gitlab.com/ee/ci/variables/

So you cannot use CI_JOB_TOKEN从另一个存储库下载文件,既不通过原始端点(/raw/<ref>/<path>) 也不是 API。

很遗憾,部署密钥也没有帮助——它们仅适用于 SSH。

我想出的唯一可行的解​​决方案是使用单独的用户:

  • 创建一个新用户Reporter role.
  • 创建个人访问令牌(/profile/personal_access_tokens)对于该用户api and 读存储库 rights.
  • 将此令牌添加为秘密变量在项目 CI/CD 设置中。称之为例如BUILD_USER_TOKEN.
  • Use $BUILD_USER_TOKEN在 CI 脚本中访问 API 或项目文件。

这是一个巨大的 hack,我真的希望看到 GitLab 做出CI_JOB_TOKEN具有指定资源权限的一流只读 (?) 令牌。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用“$CI_JOB_TOKEN”“包含”私有项目文件 的相关文章

随机推荐

  • 如何在z3py中连接正则表达式?

    我想构造一个正则表达式 例如a b c z3中有一个函数re 可以将3个正则表达式连接在一起 所以我可以构造a b c 如下所示 assert str in re aabbc re re str to re a re str to re b
  • 适用于阿拉伯语、中文和希腊语的 Google TTS API

    我正在尝试从 google TTS API 下载 mp3 文件 这是代码 try String path http translate google com translate tts tl en q hello this is the n
  • Google Analytics API 错误 403:“用户无权访问个人资料”

    我一直在尝试学习如何使用Google Analytics API来获取网站流量数据 我不断遇到错误 提示用户无权访问该配置文件 我将服务帐户中的电子邮件地址添加到用户中 并尝试将其设置为有权访问所有配置文件的用户和管理员 但都不起作用 这是
  • 如何在 golang 结构中声明可为 null 的 json 字段?

    我通常喜欢在结构中使用原始数据类型的指针 这样当我 json Marshal 它们时 nil字段总是被翻译为 field null在 json 字符串中 但这将使创建新的结构实例变得困难 因为我无法使用文字 例如 type Book str
  • 如何在 Windows 启动时最小化应用程序 - Visual Basic

    这段代码有什么问题 我无法在启动时关闭我的应用程序 如果我改变me close 它实现了另一个值 但是对于me close 事实并非如此 我是编码和 Visual Basic 新手 Dim oktoclose As Boolean Priv
  • Twig:允许 HTML,但转义脚本

    我正在调查一个可能的XSS我的应用程序的攻击向量 我拥有的 FormType 带有单个textarea场地 通常该字段可以包含html tags Twig呈现插入数据的模板 我使用该表单插入以下内容 b Some valid HTML te
  • 在 session_destroy() 之后保留会话变量

    从我的 logout php
  • 以编程方式检索流畅配置,无需实例化 DbContext

    我有一个 DbContext 派生类 其成员实体类是使用 Fluent API 配置的 我想以编程方式检索这些配置和关系 执行此操作的代码已经就位 我将其移植到 T4 模板以进行代码生成 虽然大多数代码生成都使用反射 但流畅的配置需要实例化
  • Python - 转发带附件的 IMAP 电子邮件(imaplib、smtplib)

    我在转发带有附件的邮件时遇到问题 有人能指出我正确的方向吗 我猜它在 Fetch 语句中 但我不确定 import sys import uuid import re import smtplib import email address
  • RMI:按值传递还是按引用传递?

    我很难找到这个问题的明确答案 所以我想我应该在这里用我自己的具体例子来问 我正在创建一个多人垄断游戏 实际的垄断代码在服务器上运行 而客户端本质上是一个访问和控制该代码的 GUI 垄断游戏是由一个叫做 银行 的类控制的 假设我在客户端的 m
  • 将变量从 node.js 传递到 html

    我正在尝试将变量从 node js 传递到我的 HTML 文件 app get main function req res var name hello res render dirname views layouts main html
  • 试图获取非对象的属性

    这个脚本效果很好 我在脚本的顶部调用它 但是 如果未被禁止的用户进入该网站 他们会得到 Notice Trying to get property of non object in index php on line 20 功能 Check
  • 有没有办法在没有JFrame的情况下获取键盘事件?

    我想让我的程序在用户按下某个快捷方式时取消隐藏主窗口 有没有办法获取全局关键事件 而不仅仅是焦点位于应用程序框架内时发生的事件 这可能会做你想做的事 请注意 此代码正在检查 Ctr F 击键 我使用此代码从应用程序中的任何内容打开查找对话框
  • 如何创建每个单元格分为 4 个三角形的热图?

    我想将一个单元格分成一个单独的热图 具有多个颜色代码 Each square is divided into 4 triangles and each triangle has its own numerical value color c
  • 如何在直方图中绘制字典中的键和值

    我需要用以下字典绘制直方图 x 5 289 8 341 1 1565 4 655 2 1337 9 226 7 399 3 967 6 405 我需要首先将键从 1 到 9 排序 然后将这些值绘制在直方图中 显示最大概率为 1 0 我已经尝
  • 垂直旋转 JTextField

    我见过很多询问如何以任意角度旋转 JLabel 或图像的问题 我需要做的就是将文本字段旋转 90 度 但我还没有找到专门针对该角度的更简单的方法 我以为我正确复制了答案 但我的文本字段没有旋转 这是我正在做的 SSCCE import ja
  • 如何判断进程是否在用户界面进程中?

    如何从进程中获取它是 UI 用户界面 进程还是非 ui 进程的信息 我所说的 UI 进程是指 Finder Dock 系统 UI 服务器或任何其他具有 UI 界面且由 Window Server 使用的 Mac 应用程序 我想从 Proce
  • 尝试发送 Android 图像时应用程序崩溃

    我在尝试将图像从我的应用程序发送到服务器时遇到问题 我知道它在哪里崩溃 这些是我的文件 RestClient java package edu gvsu cis masl camerademo import android util Log
  • 嵌套跨度上未禁用 CSS 直通

    CSS ol margin 0 30px li margin 15px 0 li done text decoration line through li done span text decoration none background
  • 使用“$CI_JOB_TOKEN”“包含”私有项目文件

    到目前为止我得到的是 可以通过以下方式进行身份验证Personal Access Token and include外部 CI 脚本 但更简洁的方法是使用 CI JOB TOKEN因为它更安全 更受限制 我正在研究是否可以通过这种方式完成