如何读取/获取使用slack slash命令发送的作业参数以触发gitlab作业



我正试图使用slack slash命令在master分支上触发一个发布作业,该作业已被触发,但我似乎无法获取或读取传递的参数。根据gitlab的文档,我们可以传递参数来运行作业,但没有指定如何读取参数。这是松弛斜线命令:

/gitlab projectX run slack:chatops hello

这是gitlab-ci.yml 的工作

slack:chatops:
stage: chatops
rules:
- if: $CI_PIPELINE_SOURCE == "chat"
script:
- echo "Hello World, job argument: "$1

有人试过使用作业参数吗?

解决方案

我在仔细阅读了Gitlab的ChatOps文档后找到了解决方案,其中有一个CHAT_INPUT变量,它将所有参数作为字符串包含,而上一项工作变成了:

slack:chatops:
stage: chatops
rules:
- if: $CI_PIPELINE_SOURCE == "chat"
script:
- echo "Hello World, job argument: $CHAT_INPUT"

文档中的另一个页面提到了一些可用的变量。https://docs.gitlab.com/ee/ci/chatops/index.html

ChatOps将以下CI/CD变量传递到作业:

  • CHAT_INPUT包含任何其他参数
  • CHAT_CHANNEL设置为在其中触发操作的通道的名称
  • CHAT_USER_ID设置为触发斜杠命令的用户的聊天服务的用户ID

相关内容

  • 没有找到相关文章