【问题标题】:How to pass the additional parameter of slash command to jenkins job如何将斜杠命令的附加参数传递给詹金斯作业
【发布时间】:2017-08-05 20:41:40
【问题描述】:

假设我想创建一个斜杠命令,可以灵活地将组件定义为将用于部署的标签名称。

例如:/dev-deploy comments v1.0.0

我已经添加了斜杠命令并在

中设置了参数化的 URL

http://host/buildByToken/buildWithParameters?job=dev-deployment&token=test

所有其他命令数据都存在于 JSON 对象中,我如何访问该数据并将其作为参数传递给触发构建时执行的 shell 脚本。

【问题讨论】:

    标签: jenkins continuous-deployment slack


    【解决方案1】:

    来自 Slack 的斜杠命令正在向您的 URL 发送一个 POST 请求。此请求包含一个名为text 的属性,在您的示例中为“cmets v1.0.0”。要提取标签,您需要对其进行解析。

    我建议使用一些简单的脚本(例如 PHP)来接收 POST 请求,对其进行解析(也许还要进行一些安全检查),然后使用 shell 命令启动作业。

    我不确定您指的是什么 JSON 对象。斜杠命令不发送任何 JSON。那么,也许您的问题缺少一些重要信息?如果有请补充。

    这是一个 POST 请求示例(来自official Slack documentation):

    token=gIkuvaNzQIHg97ATvDxqgjtO
    team_id=T0001
    team_domain=example
    enterprise_id=E0001
    enterprise_name=Globular%20Construct%20Inc
    channel_id=C2147483705
    channel_name=test
    user_id=U2147483697
    user_name=Steve
    command=/weather
    text=94070
    response_url=https://hooks.slack.com/commands/1234/5678
    

    【讨论】:

    • 好吧,我想通了编写节点 js 中间件来将发布数据解析为 qs 到我的 Jenkins 构建 URL。
    • 酷。您遵循我建议的相同方法的接缝。如果您同意,请考虑将此答案标记为“完整”,以便我们结束此问题。
    • 当然,我所指的 JSON 对象是 POST 数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多