Extension Points defined in SCM API Plugin

SCMEventListener

Base class for listeners to SCMEvent s

Implementations:

SCMFileSystem.Builder

Extension point that allows different plugins to implement SCMFileSystem classes for the same SCM or SCMSource and let Jenkins pick the most capable for any specific SCM implementation.

Implementations:

SCMHead.HeadByItem

Means of locating a head given an item.

Implementations:

SCMHeadMigration

If a SCMSource plugin needs to migrate the implementation classes for SCMHead this extension point allows the plugin to register type migrations. For speed of migration implementations should just jump directly to the final end-point and not expect recursive chain walking.

Implementations:

SCMNavigator

An API for discovering new and navigating already discovered SCMSource s within an organization. An implementation does not need to cache existing discoveries, but some form of caching is strongly recommended where the backing provider of repositories has a rate limiter on API calls.

Implementations:

SCMNavigatorOwners

Provides a means to lookup the SCMNavigatorOwners that own SCMNavigatorOwner instances.

Implementations:

(no known implementations)

SCMNavigatorOwners.Enumerator

Extension point to allow for access to embedded SCMSourceOwner instances that SCMNavigatorOwners.JenkinsItemEnumerator will not find.

Implementations:

SCMSource

A SCMSource is responsible for fetching SCMHead and corresponding SCMRevision instances from which it can build SCM instances that are configured to check out the specific SCMHead at the specified SCMRevision .

Each SCMSource is owned by a SCMSourceOwner , if you need to find all the owners use SCMSourceOwners#all() to iterate through them, e.g. to notify SCMSource instances of push notification from the server they source SCMHead s from.

NOTE: This layer does not cache remote calls but can cache intermediary results. For example, with Subversion it is acceptable to cache the last revisions of various directory entries to minimize network round trips, but any of the calls to #fetch(TaskListener) , jenkinsdoc:#fetch(SCMHeadObserver, hudson.model.TaskListener)[] or jenkinsdoc:#fetch(SCMHead, hudson.model.TaskListener)[] must involve at least one network round trip to validate any cached information.</p>

Implementations:

SCMSource.SourceByItem

Means of locating a head given an item.

Implementations:

SCMSourceOwners

Provides a means to lookup the SCMSourceOwners that own SCMSource instances.

Implementations:

(no known implementations)

SCMSourceOwners.Enumerator

Extension point to allow for access to embedded SCMSourceOwner instances that SCMSourceOwners.JenkinsItemEnumerator will not find.

Implementations:

SCMTrait

Base class for common traits.

Implementations: