Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata

Plugin Information

View URLTrigger on the plugin site for more information.

Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:

URLTrigger plug-in makes it possible to monitor changes of the response got from an URL invocation.

Features

Jenkins can be configured to poll URL changes.
The plug-in makes it possible to check the last modification date response and the response content of an URL invocation.
For the response content, you can check:

  • a simple response content (the content nature is not interpreted; a MD5 is used)
  • a TXT response content (the returned values from the evaluation of regular expressions are checked)
  • an XML response content (the returned values from the evaluation of XPath expressions are checked)
  • a JSON response content (the returned values from the evaluation of JSONPath expressions are checked)

Note: The plug-in uses only persistence in memory. There is no impact on the Jenkins infrastructure (no new files created).
This plugin provides a polling typology among the XTrigger Plugin.

Some Use cases

* This plugin enables users to check if new artifacts (such as binaries) have been deployed in a repository (managed for example by a repository manager such as Sonatype Nexus, JFrog Artifactory, Apache Archiva and so on).
* This plugin is useful to know if a stage of a pipeline (for a continuous testing, a continous delivery or a continuous deployment) has to be executed.

Known Limitations

Only http(s) and ftp URLs are supported. For non-http protocols, consider other XTrigger plugins such as the FSTrigger Plugin

Configuration


Declarative Pipeline Syntax

pipeline {
    
    agent any
    
    triggers {
    
        URLTrigger( 
            cronTabSpec: '* * * * *',
            entries: [
                URLTriggerEntry( 
                    url: 'http://www.mysite.com/jsoncontent',
                    username: 'myuser',
                    password: 'mypassword',
                    checkETag: false,
                    checkStatus: true,
                    statusCode: 403,
                    checkLastModificationDate: true,
                    timeout: 200,
                    requestHeaders: [
                        RequestHeader( headerName: "Accept" , headerValue: "application/json" )
                    ],
                    contentTypes: [
                        JsonContent(
                            [
                                JsonContentEntry( jsonPath: 'level1.level2.level3' )
                            ])
                    ]
                ),
                URLTriggerEntry( 
                    url: 'http://www.mysite.com/xmlcontent',
                    requestHeaders: [
                        RequestHeader( headerName: "Accept" , headerValue: "application/xml" )
                    ],
                    contentTypes: [
                        XMLContent(
                            [
                                XMLContentEntry( xPath: 'level1/level2/level3' )
                            ])
                    ]
                ),
                URLTriggerEntry( 
                    url: 'http://www.mysite.com/textcontent',
                    contentTypes: [
                        TextContent(
                            [
                                TextContentEntry( regEx: "Hello.*" ),
                                TextContentEntry( regEx: "Goodbye.*" )
                            ])
                    ]
                ),
                URLTriggerEntry( 
                    url: 'http://www.mysite.com/generalcontent',
                    contentTypes: [
                        MD5Sum()
                    ]
                )
            ]
        )
    }
    stages {
        stage( "Default stage" ) {
            steps {
                echo "This is a stage"
            }
        }
    }
}


Comparison with similar plugins

This plugin supports all URL Change Trigger features and it includes all the fixes of the current URL Change Trigger issues.
And unlike the URL Change Trigger, URLTrigger plug-in is also able to check the content nature (TEXT, XML, JSON) of a file.
Additionally the plugin can be extended (in the same plugin or by an other plugin) to check other content type.

Changelog

Release 0.47

Bugfix for the 'inspect content' checkbox being incorrectly set automatically.

Release 0.46

Pipeline compatibility.  As well as now supporting pipeline jobs, declarative syntax for triggers is supported.

Release 0.45

Bugfix: Triggers configured to check ETag values no longer build immediately on Jenkins startup

Release 0.44

Bugfix: Request Header functionality was causing null pointer exceptions when old config was used (JENKINS-51892)

Release 0.42

Tidied URL verification and removed unnecessary url GET.

Release 0.41

* allow to use jsonarray as root of input message

Release 0.40

* Fix JENKINS-28834 - Declare dependency on matrix project plugin

Release 0.39

* Fix JENKINS-29610 - Scheduling skipped when there is no label restriction (trigger-lib 0.33)
* Fix JENKINS-20712 - ETag/MTime saved in config.xml but there is no flag in job web page

Release 0.38

* Assign meaningful name to executor thread
* Be more explicit about failed content check preconditions

Release 0.37

* Fix JENKINS-20359 - Monitoring URL for JSON content change not working

Release 0.36

* Making the build compatible with Java 7

Release 0.35

* Fix JENKINS-17961 - URLTrigger does not poll when URL starts with environment variable

Release 0.34

* Fix JENKINS-18035 - Request to support HTTPS url monitoring in URLTrigger plugin

Release 0.33

* Fix regression on polling log from previous version

Release 0.32

* Fix JENKINS-18683 - Jenkins 1.522 config changes cannot be saved
* Fix JENKINS-18764 - NPE in URLTrigger when saving project configuration

Release 0.31

* Fix JENKINS-17641 - Unknown field 'logEnabled' in org.jenkinsci.lib.xtrigger.XTriggerCause

Release 0.30

* Fix JENKINS-17468 - NullPointerException in URLTrigger.getFTPResponse during startup

Release 0.29

* Add FTP Support

Release 0.28

* Fix JENKINS-16774 - URLTrigger gives severe error message instead of detecting change

Release 0.27

* warn user that only http is supported for URL protocol (added by ndeloof)

Release 0.26

* Fix JENKINS-14620 - Invalid configurations

Release 0.25

* Fix JENKINS-15564 - URLTrigger: Allow timeouts to be configurable

Release 0.24

* Fix JENKINS-14607 - URLTrigger "Polling error null"

Release 0.23

* Add the capability to check ETag response header

Release 0.22

* Add JENKINS_URL resolution at startup check
* Update to xtrigger-lib 0.17
* Update to envinject-lib 1.10

Release 0.21

* Add environment variables resolution at the trigger startup lifecycle
* Update to xtrigger-lib 0.16
* Update to envinject-lib 1.9

Release 0.20

* Upgrade to xtrigger-lib 0.14 (more log)

Release 0.19

* Restrict to successful family for URL content
* Exclude polling on unavailable services

Release 0.18

* Fix job restart when JENKINS URLs to check are unavailable at Jenkins startup

Release 0.17

* Update to xtrigger-lib 0.12 (fix link to polling log to appear on build console)

Release 0.16

* Fix TXT content type detection

Release 0.15

* Fix JENKINS-12912 - URLTtrigger does not poll on jobs which are tied to disconnected slaves

Release 0.14

* Update to xtrigger-lib 0.8

Release 0.13

* Fix the hang problem (JENKINS-12696)

Release 0.11

* Update to xtrigger-lib 0.7

Release 0.10

* Update to xtrigger-lib 0.2
* Fix JENKINS-12213 - Polling error org/jenkinsci/plugins/envinject/EnvInjectAction" when monitoring build number url

Release 0.9

* Fix JENKINS-11859 - java.io.IOException: Stream closed" when monitoring a jenkins job build number

Release 0.8

* Environment variables are taken into account

Release 0.7

* Add proxy configuration if needed

Release 0.6

* Fix JENKINS-11273 - Basic Authentication support in urltrigger

Release 0.5.1

* Fix TXT Content type saving

Release 0.5

* Change 'Add Button' label
* Fix JENKINS-10731 - XMLContentType didn't update initial results HashMap
* Fix JENKINS-10728 - URLTrigger, config.jelly and checkLastModificationDate should be optionalBlock

Release 0.4.3

* Add message when there are no URLs to poll

Release 0.4.2

* Fix NullPointerException when there is no URL entry

Release 0.4.1

* Fix a NullPointerException at Jenkins startup
* Add a delete button on the configuration page to remove an entry section

Release 0.4

* Add Text Content check

Release 0.3

* Add JSON content check
* Technical features: additional unit tests

Release 0.2

* Add poll changes of URL contents

Release 0.1

* Initial release



42 Comments

  1. Unknown User (nnau)

    Hi! 
    Can you please explain how the 'Inspect URL content' option works ? I'd like to monitor some URL and trigger build of it's content changed (all the text except one particular line). So I tried to use regex with your plugin, but can't understand how it works, and is it possible to do so or not ?

    Example: 

    -------------------------------
    time1: URL html content :

    black dog
    white cat
    red cow
    

    -------------------------------
    time2: URL html content :

    black dog
    green cat
    red cow
    

    -------------------------------
    And I'd like to trigger build ONLY if 'black dog' line or 'red cow' line have been changed between two polls.

    Thank you in advance.

    1. Unknown User (gbois)

      It is not possible to make it for now.
      I have to enhance the plugin.
      Could you report a bug in the issue tracker?

    2. Unknown User (gbois)

      After study, It will be not possible to cover this problematic.
      Regular expression in URLTrigger will inspect content line by line.

  2. Unknown User (nperrier)

    Can support for build parameters/variables in URL text field be added?

    1. Unknown User (gbois)

      It already should be the case.
      If it is not work in your context, please fill in a bug report.

  3. Unknown User (tescott)

    Would it be possible to implement a verbose/debug mode?  I'm attempting to use the TXT content & regexp trigger, but am not 100% confident that the regular expression I'm using is correctly handling the URL content.  If I could see what exactly my regexp results are, that'd be a great help.

    1. Unknown User (gbois)

      A bit difficult in this context.
      However, there are lot of online platforms to test your regular expressions against a text.

  4. Unknown User (firewalker)

    Hi,

    Is it possible execute pooling on slaves? Now I've got this error:Looking nodes where the poll can be run.
    Looking for a node to the restricted label wrling20.
    Can't find any eligible nodes.
    Trying to poll on master node.
    Can't find any complete active node for the polling action.
    Maybe slaves are not yet active at this time or the number of executor of the master is 0. Even option "restrict where the polling can be run" doesn't help.

    1. Unknown User (gbois)

      With URLTrigger, you are able to select a specific node. Therefore, it is possible to execute a poll on a slave node.
      However, your node has to be online. URLTrigger doesn't active the node for the poll.
      I have difficulty giving you a suitable answer because it depends on the context and it is complex to reproduce.
      Maybe there is an issue on the plugin, please could try to give more information and isolate the issue?

      1. Unknown User (firewalker)

        Hi,

        Thank you for quick reply. Recently I've noticed something strange, but I don't know why when I add login and password to authenticate then it's fail during searching active node, but then I turn authentication off it's pool normaly. Once again thank you. Now it's time to solve issues with artifacts.

        Br,

        Marcin

        1. Unknown User (gbois)

          OK, if you or other people have again issues with authentication, do not hesitate to raise a new issue.

  5. Unknown User (yuanzr)

    Hi, does the plugin support monitoring HTTPS urls? Thanks.

    1. Unknown User (gbois)

      URL Trigger does not support for now HTTPS.
      However, it supports HTTP URL and it is able to use the configured Jenkins proxy.

      It need investigation for adding this new feature.
      Please raise a new issue in the Jenkins issue tracker.

      1. Unknown User (yuanzr)

        Hi, Thanks for your quick response. Here is the issue raised:

        https://issues.jenkins-ci.org/browse/JENKINS-18035

  6. Unknown User (cyberphoo)

    I'm trying a parameterized URL trigger:

    URL = http://localhost:8081/artifactory/libs-release-local/$school/dist-$school/$version/ivys/ivy-$version.xml

    with build parameters

    Unfortunately the log shows this:Polling started on 8-Sep-2013 5:55:10 PM
    Polling for the job Ivy trigger build
    Looking nodes where the poll can be run.
    Looking for a candidate node to run the poll.
    Looking for a node with no predefined label.
    Trying to poll with the last built on node.
    Trying to poll on master node.

    Polling on master.
    Invoking the url:
    http://localhost:8081/artifactory/libs-release-local/$school/dist-$school/$version/ivys/ivy-$version.xml

    Can anyone point out what I'm doing wrong?

    1. Unknown User (jottorice)

      I have the same problem. What *does* work (I think!) is if there is only one parameter name, at the end of the URL. So this would work:

      http://blah/blah/$value

      So possibly you can create another variable based on your parameters, and use that there. But so far, I haven't had any success with that either.

      Gregory, is there a way to do this, or should we file a feature request for it? Ideally, I too would just like to be able use parameters directly, as Omair asked.

  7. Unknown User (vkopcil)

    Hi,

    sorry for duplicated question..

  8. Unknown User (vkopcil)

    Hi,
    I'm trying to trigger my Jenkins job when monitored Bamboo job successfully finished.
    Idea is simple - using Bamboo API, I can obtain number of last successfull job.
    Unfortunately my job is trigerred every time, regardless of Bamboo job number change.
    There is no authorization necessary. 
    I also tested my xpath at http://www.freeformatter.com/xpath-tester.html. 
    It returns e.g. Text='90', which looks fine.
    Any idea what I'm doing wrong?
    Thanks!

  9. Unknown User (tigray)

    I'm trying to use this plugin, URLTrigger, and I can't seem to see how I can find out which resource triggered the build.

    I have several external resources for my build that I am monitoring via URLTrigger and it would be very helpful to know WHICH ones caused my build to trigger.

    Is there any way to know which URLTrigger-monitored resource triggered the build?

    If not, is there a better way to do this? (monitor several external resources, and schedule a build when one of them changes).

    Thanks.

  10. Unknown User (madbrenner)

    Is there any way to determine what change this plugin detected?

    I am attempting to debug a use of this plugin where it seems to randomly decide that the page it is polling has changed, although I cannot determine any change on the page it is polling.

    1. Unknown User (madbrenner)

      Disregard this, the issue was resolved and was not due to this plugin.

  11. Unknown User (stealthdj)

    Hi,

    Is there any chance the use of parameters in the URL can be made more reliable?  For example, I have a global property set up under 'manage jenkins' called RELEASE, which points to the current major release number.

    If I set URLTrigger to poll our local nexus repo for artifact changes: ( http://nexushost/nexus/content/repositories/snapshots/group/MY_PROJECT/${RELEASE}-SNAPSHOT/maven-metadata.xml ) I can then set an xml path to monitor for snapshot uploads.

    This will generally work, up until the definition of RELEASE is changed in global properties.  At that point, some jobs will poll the new URL, others will continue to poll the old one.  I haven't been able to figure out why yet.

     

    1. Unknown User (stealthdj)

      To follow-up:

      This is due to the use call to getPollingEnvVars in envinject-lib when resolving parameterised URLs, which will always use the environment variables as at the time of the last build in preference to the global defaults.  The effect of this is that once the job has been triggered and run, it will continue to use the same variable definitions, regardless of any changes that take place in the meantime (until a manual run is triggered).

      This doesn't seem like correct functionality for the purpose - would it be better to use getDefaultEnvVarsJob() instead?

  12. Unknown User (venkat566)

    Will this plugin work to monitor Artifactory?

    Not sure if i didnot configure properly but here is what i did.

    Installed plugin and in the job, selected it and entered the url - Lets say - https://jfrog.com/artifactory/myrepo/

    I need to trigger jenkins job whenever some file is added or updated.

    I configured the above url in URL section of the plugin and checked in "check the last modified Date"

    I added a text file to the repo multiple times  but seems like it is not working. Please let me know if i need to configure in any other way

     

    1. Unknown User (subhajit_dutta)

      Hi venkatasai pulluri

       

      I have very similar used case , are you getting your desired results with this plugin 

  13. Unknown User (stealthdj)

    From what I've seen, modification time checks only work reliably with the ftp protocol.

    When checking Nexus, Artifactory, or similar, I find the best approach is to check the metadata - either for overall content change, or a specific xpath / json path.

  14. Unknown User (cuyopc)

    Hi, how can I use this plugin in a pipeline job? I have two jobs, once is a freestyle project and one is a pipeline. The freestyle job works good (I monitor artifactory URL), but it fails with the pipeline. Looking at the URLTrigger log, I see this:

    Stack trace

    org.apache.commons.jelly.JellyTagException: jar:file:/usr/share/tomcat/.jenkins/plugins/urltrigger/WEB-INF/lib/urltrigger.jar!/org/jenkinsci/plugins/urltrigger/URLTriggerAction/index.jelly:28:62: <st:include> No page found 'sidepanel.jelly' for class org.jenkinsci.plugins.urltrigger.URLTrigger$InternalURLTriggerAction
    	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:124)
    	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
    	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
    	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
    	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
    	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
    	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
    	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
    	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
    	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
    	at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
    	at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:140)
    	at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:30)
    	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    	at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
    	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.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:731)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
    	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:237)
    	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:214)
    	at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88)
    	at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:114)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
    	at hudson.plugins.scm_sync_configuration.extensions.ScmSyncConfigurationFilter$1.call(ScmSyncConfigurationFilter.java:49)
    	at hudson.plugins.scm_sync_configuration.extensions.ScmSyncConfigurationFilter$1.call(ScmSyncConfigurationFilter.java:44)
    	at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationDataProvider.provideRequestDuring(ScmSyncConfigurationDataProvider.java:106)
    	at hudson.plugins.scm_sync_configuration.extensions.ScmSyncConfigurationFilter.doFilter(ScmSyncConfigurationFilter.java:44)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
    	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:138)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:50)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	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:90)
    	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    	at java.lang.Thread.run(Thread.java:745)
    Caused: javax.servlet.ServletException
    1. Unknown User (stealthdj)

      At present, the plugin is unfortunately not pipeline-compatible and requires no small amount of work to achieve this.  That work is underway though

      1. Unknown User (pravi1491)

        Any idea when will it be available for Pipelines?

  15. Unknown User (subhajit_dutta)

    I want to trigger a Jenkins job for any change/update in the docker image version of any any docker repository.

     

    I am using this plugin but the job is not getting trigger. your valuable advise will be appreciated  , below is my input for the plugin 

     

    URL :  https:/xyx:443/artifactory/lym-docker-local/test/alpine-devops

    JsonPath : https://xyz:443/artifactory/lym-docker-local/test/alpine-devops/7/manifest.json

    1. Unknown User (stealthdj)

      The value you're using for the JsonPath should be in the URL instead.


      The JsonPath is the value within the response that you want to monitor for change, so for example, if the json response was:

      data : { 
        "var1" : "value1" ,
        "var2" : "value2"
      }

      and you wanted to monitor var2 for changes, your JsonPath would be: data.var1

       

  16. Unknown User (subhajit_dutta)

    Can you tel me the complete URL for the above example. It would be helpful

    what if the json contents is like this. What should be the complete URL for the same

    {
    "abc": 2,
    "123": {
    "ab": "hi",
    "digest": "sha256:11cd0b38bc3c"
    },
    }

    1. Unknown User (stealthdj)

      The value you said you had for the JsonPath was https://xyz:443/artifactory/lym-docker-local/test/alpine-devops/7/manifest.json

      That value should be in the URL field instead.

  17. Unknown User (ldco)

    a few minor requests :

    1) would it be possible that the content from the url response is also logged in the trigger log, that can make debugging much easier, to know what was answered

    2) I am trying to use it, where the server side actually determines if a build is needed, meaning the server side has made the decision and the outcome is as such binary : yes/no
    We had the idea to have the server respond with some data on the why (aka decision log), and that on the last line :
    build_required: yes

    (or in case no changes :  build_required: no)
    I am trying this with a regex in TXT mode, but don't seem to come up with a good regex.
    Is this use case actually possible, and how should I format my regex ?

    1. Unknown User (stealthdj)

      Hi Lieven,

      To answer your questions:

      1. Absolutely - this was already on my to-do list, but I've created a ticket for it: JENKINS-54649 - Getting issue details... STATUS
      2. This is not currently possible from what I can tell.  The regex tester for TEXT documents will simply return all text matching the regex which will in turn be monitored for change, rather than content.  So while you could create a regext to match, both changes (last check='yes';current check='no' and last check='no';current check = 'yes') would trigger a build, which I imagine is not what you'd want.  Value inspection is also definitely worth adding though, so I've raised a ticket for that, too: JENKINS-54650 - Getting issue details... STATUS


  18. Unknown User (cheedallarajesh)

    Hi,

       Is there a way to use credentials plugin or global variables to pass in basic authentication username and password? 

    In our case, we want to avoid sharing basic auth password and read from global location (either credentials or variables).



    Thank you

    1. Unknown User (stealthdj)

      Hi Rajesh

      Unfortunately that functionality doesn't currently exist, but it seems a reasonable request. 


      I've created JENKINS-54648 - Getting issue details... STATUS to cover this.

  19. Unknown User (ldco)

    Hello Tony,

    thanks for the feedback. I have another request. In our use case, in the job configuration we have a few values that occur a few times, as such we define them once as a constant in the environment, by using the "Prepare an environment for the run". so we could use $MYVAR at the spots where we need it. One of the places we also need it is, in the url to be used by the url trigger. We notice that for example $JOB_NAME gets replaced, but $MYVAR does not. It might even go as far as, that the entire url might be an environment variable (could for example come in as a parameter to the build).

    Is it possible that all variables get replaced during the final url resolution ?


    kind regards,

    Lieven

  20. Unknown User (jvanryn)

    with the etag trigger,  where is it storing the cache data?  We are running out jenkins in a container now and it seems that if the container is restarted all the polls trigger.. 

    1. Unknown User (stealthdj)

      Hi John,

      With all triggers, the last retrieved state is held only in memory.  However, for some reason I can't fathom, most other checks allow for a 'first use' scenario and will only store the data in that instance, but the etag check doesn't - it simply triggers if the current retrieved value differs from that held in memory.

      This should be a simple fix, so I'll look at updating shortly.


      1. Unknown User (stealthdj)

        Release 0.45 should have resolved this.  Please try and let me know

  21. Unknown User (fdonv)

    Hello,

    Any update about the pipeline job integration issue?