Class SCMListener

  • All Implemented Interfaces:

    public abstract class SCMListener
    extends Object
    implements ExtensionPoint
    Receives notifications about SCM activities in Hudson.

    This is an abstract class so that methods added in the future won't break existing listeners.

    Once instantiated, use the register() method to start receiving events.

    Kohsuke Kawaguchi
    See Also:
    • Constructor Detail

      • SCMListener

        public SCMListener()
    • Method Detail

      • onChangeLogParsed

        public void onChangeLogParsed​(Run<?,​?> build,
                                      SCM scm,
                                      TaskListener listener,
                                      ChangeLogSet<?> changelog)
                               throws Exception
        Called once the changelog is determined.

        During a build, Jenkins fetches the update of the workspace from SCM, and determines the changelog (see SCM.checkout(hudson.model.Run<?, ?>, hudson.Launcher, hudson.FilePath, hudson.model.TaskListener,, hudson.scm.SCMRevisionState)). Immediately after that, a build will invoke this method on all registered SCMListeners.

        If a build failed before we successfully determine changelog, this method will not be invoked (for example, if "cvs update" failed.) OTOH, this method is invoked before the actual build (like ant invocation) happens.

        This is an opportunity for SCM-related plugins to act on changelog. A typical usage includes parsing commit messages and do cross-referencing between other systems. Implementations can also contribute Action to AbstractBuild (by build.getActions().add(...) to display additional data on build views.

        TODO: once we have cvsnews plugin, refer to its usage.

        build - The build in progress, which just finished determining changelog. At this point this build is still in progress. Never null.
        listener - BuildListener for on-going build. This can be used to report any errors or the general logging of what's going on. This will show up in the "console output" of the build. Never null.
        changelog - Set of changes detected in this build. This is the same value returned from AbstractBuild.getChangeSet() but passed separately for convenience.
        Exception - If any exception is thrown from this method, it will be recorded and causes the build to fail.