You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gitlab流水线是否支持动态用户输入?合并请求触发时能否弹出输入框?

GitLab流水线与合并请求中获取用户输入的方案

一、流水线中动态获取用户输入

GitLab支持通过手动作业(Manual Jobs)结合流水线变量实现动态获取用户输入,完全适配你的业务场景,具体流程如下:

  • 先配置一个自动执行的作业,调用GET API获取transport id列表并输出到流水线日志,供用户查看可选ID。
  • 创建一个手动触发的作业,在配置里定义可输入的变量(比如TRANSPORT_ID),用户触发该作业时,GitLab会弹出输入框,支持手动输入或选择预设选项。
  • 在手动作业中,使用用户输入的TRANSPORT_ID调用导入API完成操作。

示例CI配置片段:

stages:
  - fetch-transports
  - import-object

fetch_transports:
  stage: fetch-transports
  script:
    # 调用API获取并打印transport id及描述
    - curl -s "https://your-api-domain/transports" | jq '.[] | {id: .transport_id, desc: .description}'

import_object:
  stage: import-object
  when: manual
  variables:
    TRANSPORT_ID:
      description: "请输入或选择目标transport ID(可参考fetch_transports作业日志)"
      value: ""
      options:
        # 若有固定常用ID可在此列出,动态ID可让用户手动输入
        - "transport-1001"
        - "transport-2002"
  script:
    # 使用用户输入的ID调用导入API
    - curl -X POST "https://your-api-domain/import" -H "Content-Type: application/json" -d '{"transport_id": "'"$TRANSPORT_ID"'"}'

二、合并请求触发时获取用户输入

GitLab没有合并请求触发流水线时直接弹出输入窗口的原生功能,但可以通过两种间接方式实现:

  • 利用合并请求备注:要求用户在合并请求中添加指定格式的备注(比如transport-id: xxx),流水线初始作业解析备注内容提取ID,再执行后续导入操作。
  • 结合手动作业:合并请求触发流水线后,先自动执行获取transport列表的作业,随后暂停在手动导入作业,引导用户在流水线界面输入ID后继续执行。

三、补充说明

  • 若要实现动态选项列表(即从API拉取的transport id自动作为可选值),GitLab原生不支持直接配置,但可通过自定义脚本生成CI配置,或提前调用GitLab CI/CD API将选项注入流水线变量。
  • 手动作业的输入内容会被记录在流水线变量中,可追溯输入历史。

内容的提问来源于stack exchange,提问作者Mani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:03:18