- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要配置 Jenkins 以在我们的 Slack channel #builds 上发送通知。
我在 Slack 中配置了 Jenkins CI 集成。结果,我有一个 token “abcdefgh666”,当我展开“设置说明”时,我可以看到我们的团队域是“mysuperteam”。我们使用 URL http://mysuperteam.slack.com 连接到 slack
我被困在第 3 步。在 Slack doc ,截图如下:
但是在我们的 Jenkins 版本中, View 看起来像:
显然,测试连接按钮总是返回一个失败。在 Jenkins 日志中,我有很多次:
Mar 30, 2017 2:14:38 PM WARNING jenkins.plugins.slack.StandardSlackService publish
Error posting to Slack
java.lang.IllegalStateException: Target host is null
at org.apache.http.util.Asserts.notNull(Asserts.java:46)
at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
at jenkins.plugins.slack.StandardSlackService.publish(StandardSlackService.java:126)
at jenkins.plugins.slack.SlackNotifier$DescriptorImpl.doTestConnection(SlackNotifier.java:510)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:335)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:175)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:108)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:236)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:236)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
最佳答案
将“baseUrl”留空,
并在测试前通过“TestConnection”保存。
关于 Jenkins /松弛集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43120798/
我有一个盒子,上面有一个溢出卷轴。当你到达盒子的尽头时;我想触发一个事件(滚动到页面的下一部分)。 下面的代码有效,但是,我希望其中有一些“松弛”。因此它不需要在您到达框的末尾时直接触发,而仅在您坚持
有时当我尝试打开一个松弛模式时,它会在生产中给出一个 expired_trigger_id 错误。我如何调试并找出它发生的原因?我在 js 中使用 slack bolt 来创建聊天机器人。 最佳答案
我的问题很简单,我认为创建这个程序只需要几个小时。但是现在我整天都在研究它,试图弄清楚我可能做错了什么。 我想做的就是使用他们的 postMessage api 将消息发布到 slack .我已经能够
A 有一个脚本可以完美地将消息发送到松弛 channel 。该脚本放置在具有以下 curl 版本的测试服务器上: curl --version curl 7.15.5 (x86_64-redhat-l
我使用 node.js 构建我的 Slack 机器人。我使用了@slack/client。它工作正常。现在我有一个通过 slack message builder 获得的 JSON 格式的数据。像这样
看起来没有选项可以将包含表格的消息发布到 slack。我正在尝试使用文本格式构建表格。在下面的示例中,文本未对齐,因为第一行包含文本 ROW1,第二行包含文本 ROW。有没有办法在 ROW 之后添加空
我正在使用 slack_nagios.pl 脚本。 Ubuntu 14.05 和 Nagios 4.4.5 https://raw.githubusercontent.com/tinyspeck/se
我想检索在我的团队松弛域中发送的所有消息。虽然我更喜欢以 XML 或 JSON 形式接收数据,但我能够以任何形式处理数据。 如何检索所有这些消息?是否可以?如果没有,我可以检索特定 channel 的
在使用 CPLEX C API 进行 MIP 优化期间,是否可以检索当前节点(即每 n 个节点)的线性松弛(双变量、降低的成本等)? 我注册了一个回调函数 (CPXsetsolvecallbackfu
我正在使用 Python 和它的 Slacker API 将消息发布到松弛 channel ,并且它发布消息的效果很好。 现在我想做的是创建一个按钮,上面写着更多信息,当它被点击时,我想显示一个项目列
我目前正在尝试使用 SlackConnector 库在 C# 中开发应用程序。 SlackConnector 应用程序将接收消息并将消息发送到松弛 channel 和 DM。 (我能够使用测试 tok
给定一个松弛 channel 的名称,有没有办法检索该 channel 中所有成员的电子邮件列表?我尝试查看 slack api 文档,但找不到实现此目的所需的方法 (https://api.slac
我已经构建了一个 receives events 的应用程序. 默认情况下,范围 channels:history让它接收添加应用程序的用户的所有公共(public) channel 中的所有消息的事
我正在使用模态来收集数据。我通过以下代码打开了一个 View : view = { "type": "modal", "title": { "type": "plain
我正在使用模态来收集数据。我通过以下代码打开了一个 View : view = { "type": "modal", "title": { "type": "plain
我的问题有点复杂。它是这样的:我通过 HTTPClient 从(在我的例子中)“Slack”-API 获得答案。此数据作为 JSON 发送,因此我将其反序列化为我为此编写的合适对象(类)。到目前为止,
我正在尝试使用他们的 Web API 将 Slack 与我们的应用程序集成。我需要使用 chat.postMessage具有自定义用户名并设置 as_user = false 的端点。我可以发布消息,
我正在开发一款 Slack 应用程序,用户可以使用 Slack 的 Oauth 流程将其安装到工作区。安装和配置应用程序后,我使用 Oauth 允许用户登录并对应用程序配置进行更改。 新用户的流程使用
如何使用事件 API 检测消息是否来自在私有(private) channel (只有机器人的 DM)中与我的机器人聊天的用户? 最佳答案 检查 channel ID 中的第一个字母。如果它以 D 开
我是一名优秀的程序员,十分优秀!