【问题标题】:How to trigger a downstream pipeline of a protect branch in Gitlab with keyword 'trigger'如何在 Gitlab 中使用关键字“触发器”触发保护分支的下游管道
【发布时间】:2022-07-22 00:23:20
【问题描述】:

错误说它没有权限。 问题是如何在上游管道/项目中使用管道令牌。 (我知道使用'curl'脚本可以设置令牌,但现在我只想使用关键字'trigger')谢谢!

@VonC 感谢您的回复。 这是 yaml 中的工作。 “触发器”用于启动下游管道。 但是由于它们不同,并且下游管道针对主管道运行,因此触发管道的人应该是下游项目的维护者。否则,作业将无法运行,并提示'无权限触发下游管道'。


trigger-test
  stage: test
  trigger:
    project: myprj/downstream-test
    branch: master
  allow_failure: true
  only:
    - master

【问题讨论】:

  • 您能否使用您当前的 gitlab-ci yaml 代码以及您看到的确切错误消息(复制粘贴)来编辑问题?

标签: triggers gitlab token pipeline


【解决方案1】:

是的,目前这是 Gitlab CI 中的一个重大安全问题,相关链接:

解决方法不是那么令人满意,但它有效:

  1. 在“下游”存储库中设置所需的分支保护
  2. 创建管道触发器(其实这是一个token,名字是 误导)在“下游”项目中:设置 -> CI/CD -> 管道触发器。
  3. 作为管理员 - 将此令牌定位为组 CI/CD 变量(或在将触发“下游”项目的项目中)- 组设置 -> CI/CD -> 变量。
  4. 在您的管道中使用它:
      curl -X POST \
        --form token=$YOU_TRIGGER_TOKEN_VARIABLE \
        --form ref=target_branch \
        "$CI_API_V4_URL/projects/55/trigger/pipeline"

【讨论】:

    猜你喜欢
    • 2021-08-02
    • 2021-02-24
    • 1970-01-01
    • 2020-02-23
    • 2021-03-16
    • 2020-09-20
    • 2018-06-12
    • 2021-11-15
    • 2021-05-27
    相关资源
    最近更新 更多