首页 > 解决方案 > 通过 Slack 命令触发 Jenkins 作业 - 403_client_error

问题描述

我正在尝试做一件我相信的非常简单的事情 - 从 slack 中的斜杠命令触发 Jenkins 作业。我想输入/dumpslack,这应该会触发特定的詹金斯工作。我正在使用Slack Slash 命令来实现这一点,并且设置非常简单 - 输入命令,输入 URL,选择 POST/GET 方法。

我尝试了两种方法 - 首先是按照本教程使用构建授权令牌根插件- 在这种情况下,我配置了 Slack 斜杠命令以在 URL 上发出 GET 请求:http://jenkins_url:8080/job/db-dump-setup/build?token=MY_TOKEN- 如果我将 URL 放到我的浏览器中,则触发作业,如果我运行/dump命令,松弛响应:

slackbot [3:41 PM]
Darn - that slash command didn't work (error message: `403_client_error`). Manage the command at text.

我尝试的第二种方法是遵循本教程。在这种情况下,我在 Jenkins 中创建了新用户并获得了 API 令牌。从我的终端运行此命令时:curl -X POST http://USER:TOKEN@slack_url:8080/job/db-dump-setup/build,作业再次被触发,但是当使用相同的 URL 配置 Slack 斜杠命令并发出 POST 请求时,我得到相同的错误: 403_client_error

我试图用谷歌搜索这个特定的错误,但没有发现任何有用的信息,也没有更多关于错误的详细信息或任何可以帮助我进一步排除故障的日志。

任何人都会遇到类似的事情并且知道我该如何解决这个问题?

标签: jenkinsslack

解决方案


我能够解决这个问题,所以在其他人遇到这种情况时回答我自己的问题。为了使第一个案例工作(使用 GET 请求),我必须在 Jenkins 中启用“允许匿名读取访问”,在 Manage Jenkins -> Configure Global Security 中按照下面的屏幕截图。

在此处输入图像描述


推荐阅读