kuleuven / jenkins-mattermost-plugin Goto Github PK
View Code? Open in Web Editor NEWJenkins plugin for Mattermost
License: MIT License
Jenkins plugin for Mattermost
License: MIT License
It is helpful to include the logging information into the message (i need the console output from a build step) like inside the email-notification plugin.
Hi,
i try to connect to a mattermost-host which only supports TLS v1.1/v1.2 and i always get a javax.net.ssl.SSLException: Received fatal alert: protocol_version
Adding -Ddeployment.security.SSLv2Hello=false -Ddeployment.security.SSLv3=false -Ddeployment.security.TLSv1=false -Ddeployment.security.TLSv1.1=true -Ddeployment.security.TLSv1.2=true
to jenkins' java-cmd did not help.
Adding -Dhttps.protocols=TLSv1.2
to the global MAVEN_OPTS did also not fix anything.
Any idea?
When the Jenkins job is using a Configuration Matrix, the notification is sent to Mattermost for each of the configurations and the parent job. It would be nice if you can only sent a notification for the parent job.
Hi!
Thanks for this plugin. It works great for me, except that I manage my Jenkins job configurations by POSTing config.xml
for each job that I have configured. This allows me to easily manage many jobs and update them with new settings, however something in this plugin does not like this procedure.
If I configure the post-build action via the web interface it works fine, but as soon as I POST config.xml
it disappears, even if I use exactly the same config.xml
that I retrieve from the job (using the encrypted endpoint value).
It appears to be something to do with the encryption used for the endpoint. I tried configuring the endpoint as a global setting and leaving the <endpoint>
value blank, as well as removing it entirely, but whatever I do, as soon as config.xml
is POSTed, the whole mattermost post-build action disappears.
I normally update config.xml
using curl, and so tried using jenkins-cli.jar
instead to see if that made any difference, but no change.
The only thing relevant that I can see in the log is this:
Nov 01, 2019 10:41:07 AM WARNING hudson.util.Secret toString
Use of toString() on hudson.util.Secret from hudson.util.Secret$1.convert(Secret.java:306). Prefer getPlainText() or getEncryptedValue() depending your needs. see https://jenkins.io/redirect/hudson.util.Secret/
Let me know if you need any further information.
Thanks.
Hello,
While testing the connection between my Jenkins and Mattermost instances, I get the following error :
Error posting to Mattermost
javax.net.ssl.SSLException: hostname in certificate didn't match: <mattermostinstance> != </platform on which mattermost is running>
My mattermost instance is on a platform using SNI for HTTPS, and the name provided in the certificate is the one of the platform : I suspect the plugin does not handle SNI.
I found multiple reports of similar issues with other Jenkins plugin :
https://issues.jenkins-ci.org/browse/JENKINS-37030
https://issues.jenkins-ci.org/browse/JENKINS-40903
I'm not extremely skilled in Java, but I can try to provide a fix if this issue is not being worked on already.
Regards,
i think the help text on the endpoint could be clearer (e.g. by mentioning that you have to enter a webhook url)
I've added "Notify Build Start", "Notify Aborted", "Notify Failure" and "Notify Success" options to the plugin for a job. All the notifications seem to work fine except the "Notify Failure" which isn't showing up. I have yet to check the logs since I don't have access to them at the moment, but I was wondering if this is something you've seen before?
Would be possible send build stability of the job. Or send notification message with custom count failures.
Happens since f8a52af
Workaround: Downgrade to 2.5.2.
I just played around with the new direct message channels features. Yet lowercase author (bot) names with dashes do not look very pretty in our Mattermost channels. Therefore, I was wondering whether we could remove the space from the roomIds splitting and trim the channel / author names after they have been extracted from the room IDs. This would allow for author names with spaces...
Hi, I am trying to get this plugin working for my team.
The plugin works as expected in team#1, however does not work at all for team#2 (although they both exist under the same organization (server). I've tried setting the endpoint to match the MM-URL of team#2, but I am still getting an error.
"Mattermost send pipeline step configured values from global config - connector: false, icon: true, channel: false, color: falseERROR: Mattermost notification failed. See Jenkins logs for details."
Note that:
I don't know if this is an issue, me using the plugin incorrectly or just a matter of adjusting the global configuration for the jenkins-mattermost plugin
Using 1.638 and Mattermost 2.1, I'm only seeing notifications for when builds start. No other notifications appear to be sent.
I would like to configure different notification settings for different channels. If I add multiple mattermost post-build actions to one jobs it seems only the last one is executed. Is there any way to add one plugin for all notifications and one for only failed ones?
Wouldn't it be sweet to have the test result diffs posted with the rest of the test stats?
This way I wouldn't have to look previous runs up in mattermost's history ... a big win for me at least :)
Now I'm totally unfamiliar with Jenkins internals, but it seems to me that AbstractTestResultAction
provides ways to access previous runs or even diffs directly (getFailureDiffString()
?).
IMO that would be a great improvement!
Hi,
I have both Jenkins and Mattermost set up on my home server.
Both are behind a reverse proxy (NGINX).
My Mattermost URL points to a public IP, and while I'm able to access it from the application, or even to post a message via webhook using curl
, I can't connect from Jenkins.
I entered webhook URL in "Endpoint" field, tried with no channel name, tried public/private channels, with/without #
in front of the channel name - I always get "Failure".
My NGINX forces HTTPS (self-signed cert), is that causing the issue? I've tried to install a Jenkins plugin https://wiki.jenkins-ci.org/display/JENKINS/Skip+Certificate+Check+plugin but it didn't help.
Ideas?
Thanks
Hi,
I'd like to know if it is possible, for each notification kind, to set a custom message.
I'd like, for example, on a broken build notify concerned users with @ markup.
Thanks
Hi,
in my environment Jenkins and Mattermost (GitLab Omnibus) are running on two different servers (CentOS, OpenJDK 8, no Docker) with self signed certificates. I added the certificates to the JKS and the appropriate Mattermost, Jenkins and OS folders on both servers.
Jenkins Settings:
Endpoint: https://mymattermost.local:8066/hooks/123xyz
Channel: jenkins-testing
Icon: empty
Build Server URL: https://myjenkins.local
When I run the connection test in the Jenkins log shows the following:
May 23, 2018 1:13:39 PM INFO jenkins.plugins.mattermost.StandardMattermostService publish
Posting: to jenkins-testing@https://mymattermost.local:8066/hooks/123xyz: Mattermost/Jenkins plugin: you're all set! (parameters: endpoint='https://mymattermost.local:8066/hooks/123xyz', room='jenkins-testing', icon='', buildServerUrl='https://myjenkins.local/') (good)
May 23, 2018 1:13:39 PM INFO org.apache.commons.httpclient.HttpMethodBase readResponseBody
Response content length is not known
May 23, 2018 1:13:39 PM INFO org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
I/O exception (javax.net.ssl.SSLPeerUnverifiedException) caught when processing request: peer not authenticated
May 23, 2018 1:13:39 PM INFO org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
Retrying request
May 23, 2018 1:13:39 PM INFO org.apache.commons.httpclient.HttpMethodBase readResponseBody
Response content length is not known
May 23, 2018 1:13:39 PM INFO org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
I/O exception (javax.net.ssl.SSLPeerUnverifiedException) caught when processing request: peer not authenticated
May 23, 2018 1:13:39 PM INFO org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
Retrying request
May 23, 2018 1:13:39 PM INFO org.apache.commons.httpclient.HttpMethodBase readResponseBody
Response content length is not known
May 23, 2018 1:13:39 PM INFO org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
I/O exception (javax.net.ssl.SSLPeerUnverifiedException) caught when processing request: peer not authenticated
May 23, 2018 1:13:39 PM INFO org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
Retrying request
May 23, 2018 1:13:39 PM INFO org.apache.commons.httpclient.HttpMethodBase readResponseBody
Response content length is not known
May 23, 2018 1:13:39 PM WARNING jenkins.plugins.mattermost.StandardMattermostService publish
Error posting to Mattermost
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:431)
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.verifyHostName(SSLProtocolSocketFactory.java:257)
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:200)
at org.apache.commons.httpclient.HttpConnection.tunnelCreated(HttpConnection.java:793)
at org.apache.commons.httpclient.HttpMethodDirector.executeConnect(HttpMethodDirector.java:521)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:178)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:404)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:330)
at jenkins.plugins.mattermost.StandardMattermostService.publish(StandardMattermostService.java:99)
at jenkins.plugins.mattermost.StandardMattermostService.publish(StandardMattermostService.java:41)
at jenkins.plugins.mattermost.MattermostNotifier$DescriptorImpl.doTestConnection(MattermostNotifier.java:452)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
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:841)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
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:198)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.jenkinsci.plugins.cas.spring.security.CasSingleSignOutFilter.doFilter(CasSingleSignOutFilter.java:39)
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:90)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:564)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
May 23, 2018 1:13:39 PM INFO jenkins.plugins.mattermost.StandardMattermostService publish
Posting succeeded
The gitlab_mattermost_access log shows nothing in this case.
Testing from Jenkins server using curl works as expected:
curl -i -X POST -d 'payload={"text": "Hello\nText"}' https://mymattermost.local:8066/hooks/123xyz
Here the gitlab_mattermost_access log shows "POST /hooks/123xyz HTTP/1.1" 200 2 "" "curl/7.58.0"
Any idea why the connection fails?
Thanks in advance!
Would it be possible to add mattermost dedicated proxy settings?
We have a mattermost instance in the internet, but whole CI/CD is located in corporate network.
We can access this mattermost instance with setting up proxy in Jenkins, but that settings affects other things in Jenkins also.
Separate proxy settings in the mattermost-plugin section would do the job nicely, without having to reinvent the wheel and preparing custom solutions.
Regards,
b.
Hi,
i got some problem connecting Mattermost with Jenkins.
Scenario: two different servers, one running mattermost the other running jenkins.
Curl as mentioned here goes trough and produces output.
https://docs.mattermost.com/developer/webhooks-incoming.html
curl -i -X POST -d 'payload={"text": "Hello, this is some text.\nThis is more text."}' http://yourmattermost.com/hooks/xxx-generatedkey-xxx
The test connection button in jenkins for the plugin generates something like this at the mattermost site:
[2016/12/14 16:53:02 CET] [DEBG] websocket.authTicker: did not authenticate ip=127.0.0.1:44516
[2016/12/14 16:53:02 CET] [DEBG] websocket.read: closing websocket for userId= error=read tcp 127.0.0.1:8065->127.0.0.1:44516: use of closed network connection
[2016/12/14 16:53:04 CET] [DEBG] websocket.authTicker: did not authenticate ip=127.0.0.1:44528
[2016/12/14 16:53:04 CET] [DEBG] websocket.read: closing websocket for userId= error=read tcp 127.0.0.1:8065->127.0.0.1:44528: use of closed network connection
[2016/12/14 16:53:04 CET] [DEBG] websocket.authTicker: did not authenticate ip=127.0.0.1:44530
[2016/12/14 16:53:04 CET] [DEBG] websocket.read: closing websocket for userId= error=read tcp 127.0.0.1:8065->127.0.0.1:44530: use of closed network connection
I am somehow lost on where to correct this IP mistake as the proxy setting , mentioned in help text, do not seem to help in this case.
Best Regards.
Mattermost Notifications are working fine for Post-build Actions for me. However, when I configure Mattermost Notifications as promotion process action (from the promoted builds plugin), and tick all the boxes there, I do not receive notifications when promotions start / finish.
(In jenkins.log, it shows the start / finish notifications for the build, but not the promotion.)
Note that with the HipChat Plugin, notifications for promotions do work.
Mattermost Notifications 2.6.2
Jenkins 2.150.2
I recently experienced a situation where the plugin sent a notification about a build which included 2 commits, of the following format:
Commit 1:
The notification claimed that 3 files were changed. When looking above, it's clear that only 2 files were affected.
It appears this is due to the use of a HashSet<AffectedFile>
in ActiveNotifier.getChanges
, which i'm guessing the implementation for the AffectedFile
interface must not hash based on purely the filename alone. This was using a git repository. I believe it's safer to either use the original getAffectedPaths
method, or to get the Paths from each AffectedFile so that the set is based correctly on file paths.
Hello,
Thank you for creating this extremely useful plugin, we use it extensively in my department. One small problem we have with it, however, is that we can't upgrade from version 2.0.2 because direct message channels no longer work. The problem comes from the fact that direct message channel names are in the format @dmchannel and this is not compatible witth the plugin logic where you can specify user@channel.
In our Mattermost set-up, we have a user called jenkins that owns the webhooks and this means that if you specify @username as the Mattermost channel, the user will get a direct message from the jenkins user. This is useful because users are more likely to notice direct messages.
Anyway, I have attached a patch that I made to the code on the master branch that I have recently tried in a test jenkins installation. I would be very grateful if you would consider adding this or something simlilar to a future release.
Many thanks
Plugin seems to access ProxyConfiguration.noProxyHosts directly and then attempts to convert glob -> regex.
If it used ProxyConfiguration.getNoProxyHostPatterns() then it would be able to handle multiple hosts and avoid the need to try and convert globs to regexes.
Hey there,
Thanks for the great work on the plugin. It's working perfectly fine for us so far, but the latest release 2.7.1
doesn't seem to work as expected.
In the commit diff I see that that endpoint
type has been changed from String
to hudson.util.Secret
. So in our JobDSL script this doesn't work anymore:
mattermostNotifier {
endpoint('https://mattermost.mycompany.com/hooks/gtw8oerghvk6lpoqwrd5fg12hg')
buildServerUrl('https://jenkins.mycompany.com/')
room('#build-notifications')
startNotification(false)
notifyAborted(true)
notifyFailure(true)
notifyNotBuilt(false)
I'm not an expert on Jenkins, but I assume that the endpoint
as a Secret
now refers to a secret that I need to set up manually at https://jenkins.mycompany.com/credentials/store/system/domain/_/newCredentials.
Usually such a field would show up as a dropdown form field in a job's configuration, with the option to pick a secret that was specified by the Jenkins admin at the aforementioned URL.
But in this case it's still a regular textfield. Also, in the config.jelly
I still see it configured as:
<f:entry title="Endpoint" help="/plugin/mattermost/help-projectConfig-mattermostEndpoint.html">
<f:textbox field="endpoint" />
</f:entry>
Am I interpreting this correctly? Any help is appreciated.
Thanks!
Hey @jovandeginste !
First, hugely appreciate you sharing this project back with the world. Fantastic work!
I wanted to let you know about our plans moving to API v4:
To make the Mattermost API web service easier to use and to offer more powerful options for these integrations, Mattermost will be moving to a new API version soon. Highlights include:
We plan to release API version 4 on March 16th, with Mattermost server 3.7. While the current API version 3 will be supported until September 16th, we recommend you begin using API version 4 soon after its release.
API version 4 is an active and on-going project. If you're interested in helping contribute, please join our Mattermost community instance and the APIv4 channel.
We've prepared a contribution process for APIv4 and a progress tracker for new APIv4 enpoints to help you get started.
We're also open for suggestions on adding new API endpoints to help with your integration.
Hi,
I'm using mattermost plugin to send alerts for failed jobs to a central Mattermost instance. I have multiple jenkins servers that all end up using the same username "jenkins" in the alerts channel. The alert origin is differentiable by the custom icon I send with the alert but it would be really nice if the plugin would allow to override the default username "jenkins" with a custom one.
Eg. It will not use the icon. No idea why...
Hi
Nice to meet you, today i am playing mattermost with my Jenkins, using Mattermost Notification Plugin version 1.4.0
But unlucky i find that's an access denied issue, appreciate that your advise
My incoming webhooks is OK, as when i run below command, it can shows the message
curl -i -X POST -d 'payload={"text": "Hello, this is some text.\nThis is more text."}' http://:8065/hooks/8g6y9awyjpdq7d1aff7wfnhh8a
But after i did the config in Jenkins like below. it fails as of access denied
Jenkins config:
Endpoint:http://:8065/hooks/8g6y9awyjpdq7d1aff7wfnhh8a
Channel:
Build Server URL:http://:8080/
error:
Mar 16, 2016 9:19:33 AM jenkins.plugins.mattermost.StandardMattermostService publish
INFO: Posting: to icon: , on http://:8065/hooks/8g6y9awyjpdq7d1aff7wfnhh8a: Mattermost/Jenkins plugin: you're all set! (using ) good
Mar 16, 2016 9:19:33 AM jenkins.plugins.mattermost.StandardMattermostService publish
WARNING: Mattermost post may have failed. Response:
Access Denied (policy_denied)
Your system policy has denied access to the requested URL.
For assistance, contact your network support team.
Mar 16, 2016 9:19:33 AM jenkins.plugins.mattermost.StandardMattermostService publish
INFO: Posting succeeded
Is it possible to hook all jobs and send a post-build action to this plugin? We have a lot of jobs managed by different people and would like to get notifications (like email) when a job fails, without needing to modify each job
Hi,
I am trying to setup Jenkins Hook for Mattermost. But, failed at Test Connection with the following error.
Pls help.
Nov 02, 2016 4:46:54 PM INFO jenkins.plugins.mattermost.StandardMattermostService publish
Posting succeeded
Nov 02, 2016 4:46:55 PM INFO jenkins.plugins.mattermost.StandardMattermostService publish
Posting: to im1kxtoxmpn1zkfb6yi8w81mmr@http://<host>:<port>/hooks/4hysn9qnntdhxruc936hp4amhr: Mattermost/Jenkins plugin: you're all set! (parameters: endpoint='http://<host>:<port>/hooks/4hysn9qnntdhxruc936hp4amhr', room='im1kxtoxmpn1zkfb6yi8w81mmr', icon='null', buildServerUrl='null') (good)
Nov 02, 2016 4:46:55 PM WARNING jenkins.plugins.mattermost.StandardMattermostService publish
Mattermost post may have failed. Response: <html>
<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<center>The plain HTTP request was sent to HTTPS port</center>
<hr><center>nginx</center>
</body>
</html>
[2016/11/02 16:47:49 SGT] [EROR] /hooks/4hysn9qnntdhxruc936hp4amhr:incomingWebhook code=500 rid=6isnpz1ucp8yznn7iad3oep9ue uid= ip=10.92.142.70 Couldn't find the channel [details: err=store.sql_channel.get_by_name.missing.app_error]
At this time, HTTPS is hard coded
Plugin uses 'log4j-over-slf4j' which might be vulnerable to https://logging.apache.org/log4j/2.x/security.html
Research is needed to determine if this plugin is vulnerable, if so the plugin needs a security fix.
Hi,
How do I get this to work with pipelines (if it's possible) ? I can't seem to find the docs for this.
For example, slack-plugin has this:
slackSend color: 'good', message: 'Message from Jenkins Pipeline'
TIA
As in title: I'd like to have possibility to send direct messages to the developers who caused build to fail (as in mailer plugin for example).
Hi @jovandeginste thanks for creating the Jenkins plug-in!
The Mattermost team would like to list this for our community to use, but in order to do so, we need a license file,
If you create a LICENSE.txt file from the GitHub interface it will suggest some possible licenses and you can select one you feel appropriate--takes less than 2-3 minutes to do.
Would you be open to helping complete this so your work can be more easily shared with others, based on the terms you decide?
In order to get some tests to work properly, the build and test dependencies should be updated.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.