Jenkins构建通知-http请求通知

1,420次阅读
没有评论

使用 HTTP Request 插件,就能在 Jenkins pipeline 中发送 HTTP 请求给第三方系统,这是最通用的 jenkins 与第三方系统集成的方式之一

HTTP Request 插件提供了 httpRequest 步骤,代码示例如下:

steps {
  script {
    // 拼接字符
    head = "\" 构建记录:#${env.BUILD_ID}, 分支:#${},详细信息如下:"s1 ="> 应用名称: <font color=\\\"info\\\">${}</font>"s2 ="> 环境: <font color=\\\"info\\\">${}</font>"s3 ="> 构建状态: <font color=\\\"info\\\"> 构建成功🥳</font>"s4 ="> 提交者: <font color=\\\"info\\\">${}</font>"s5 ="> 提交 ID: <font color=\\\"info\\\">${}</font>"s6 ="> 提交内容: <font color=\\\"info\\\">${}</font>"s7 =">[ 查看详细构建信息]()"def msg ="${head}"+"\n"+"${s1}"+"\n"+"${s2}"+"\n"+"${s3}"+"\n"+"${s4}"+"\n"+"${s5}"+"\n"+"${s6}"+"\n"+"${s7}\""def body ="{\"msgtype\": \"markdown\", \"markdown\": { \"content\": ${msg} } }"
    def response = httpRequest (url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=${paramMap.WEBHOOK_TOKEN}",
        httpMode: "POST",
        contentType: "APPLICATION_JSON_UTF8",
        requestBody: "${body}",
        responseHandle: 'NONE',
        wrapAsMultipart: false
    )
  }
}

httpRequest 步骤返回的 response 对象包含两个字段。

  • content : 响应内容
  • status : 响应码

以下是 httpRequest 步骤支持的参数

  • url: 字符串类型,请求 URL
  • acceptType: 枚举类型,HTTP 请求 Header 的“Accept”的值类型为 NOT_SET.TEXT_HTML、TEXT_PLAIN.APPLICATION_FORM、APPLICATION_JSON、APPLICATION_JSON_UTF8、APPLICATION_TAR、APPLICATION_ZIP、APPLICATION_OCTETSTREAM。
  • authentication : 字符串类型,Username with password 凭证的 ID,采用的是 HTTP Basic 认证方式
  • consoleLogResponseBody : 布尔类型,是否将请求的响应 body 打印出来
  • contentType: 枚举类型,HTTP 请求 Header 的“Content-type”的值类型,与 acceptType 支持的枚举一样
  • customHeaders : HttpRequestNameValuePair 对象数组,HTTP 请求 Header 部分的内容,该对象有 3 个参数
    • name : 字符串类型,Header 名称
    • value : 字符串类型,Header 值。
    • maskValue : 布尔类型,是否隐藏 Header 值。如果设置为 true,则在打印时使用“*”代替。
  • httpMode: 枚举类型,HTTP 方法,有 GET(默认)、HEAD.POST、PUT、DELETE、OPTIONS、PATCH。
  • httpProxy: 字符串类型,HTTP 代理地址
  • ignoreSslErrors : 布尔类型,是否忽略 SSL 错误。
  • requestBody : 字符串类型,请求的 body 内容。
  • timeout : 整型,超时时间,单位为秒。默认值为 0,代表不设置超时时间。
  • validResponseCodes : 字符串类型,代表 HTTP 请求成功的状态码。它支持 3 种格式的值。
    • 单状态值: 比如 200,当收到 200 响应状态码时,表示 HTTP 请求成功。
    • 多状态值: 当响应状态码符合多个状态码中的一个时,代表请求成功。多个状态码之间使用逗号(,)分隔。比如 200,404,500。
    • 范围状态值∶格式为“From : To”。比如 200 : 302,代表收到 200 到 J302 的响应状态码都代表请求成功。
  • validResponseContent : 字符串类型,比如设置它的值为”showme.codes”,那么只有当 HTTP 返回的内容中包含了“showme.codes”时,才代表请求成功。
  • quiet : 布尔类型,是否关闭所有的日志打印,默认值为 false。
  • responseHandle: 枚举类型,获取 HTTP 响应内容的方式。其值可以为
    • NONE: 不读取响应内容。
    • LEAVE_OPEN: 当执行完请求后,并不会返回响应的内容,而是返回一个打开了的 inputStream,由你自己决定该如何读取响应内容。但是在使用完之后,记得调用 input-Stream 的 close ()方法关闭。
    • STRING(默认值)∶将响应内容转换成一个字符串。
  • outputFile: 字符串类型,请求响应内容的输出路径。
正文完
 
评论(没有评论)