Class RepositoryForkRequestedEvent

All Implemented Interfaces:
CancelableEvent, CancelState, Serializable

public class RepositoryForkRequestedEvent extends RepositoryCreationRequestedEvent
Raised just before a repository is forked. This event is synchronous, allowing listeners to perform operations in the same database transaction where the forked repository will be created.

The repository attached to the event is the fork to be created. Its origin provides the repository that will be forked to create it. Note that forks can be created in the same project as their origin or in different one, so the projects for the fork and its origin may or may not be the same.

This event is cancelable. A listener may prevent the repository from being forked by canceling this event. Throwing an exception will not prevent the repository from being forked; the exception will be logged and ignored.

Note: The repository attached to the event will not have an ID, as it has not been created yet, but it will have its origin repository available. Any listener which would like to create associations based on the repository ID must listen for the RepositoryForkedEvent instead, which will include it (but will not run in the same transaction).

See Also:
  • Constructor Details

    • RepositoryForkRequestedEvent

      public RepositoryForkRequestedEvent(@Nonnull Object source, @Nonnull Repository repository, @Nullable String defaultBranch, @Nonnull CancelState cancelState)
      Parameters:
      source - the source of the event
      repository - the fork to be created
      defaultBranch - the default branch for the fork, or null if the origin's default will be inherited
      cancelState - tracks vetoes for the event
      Since:
      7.5
  • Method Details

    • getDefaultBranch

      @Nullable public String getDefaultBranch()
      Retrieves the default branch the fork will use, if one was specified. If no default was specified the origin's default branch will be inherited. This differs from creating a new repository, where the SCM's default branch is used if one isn't specified.
      Overrides:
      getDefaultBranch in class RepositoryCreationRequestedEvent
      Returns:
      the default branch, or null if the origin's default branch will be inherited
      Since:
      7.5