Interface RepositorySupplier

All Known Subinterfaces:
RepositoryService

public interface RepositorySupplier
Allows retrieving repositories by their ID or project and slug.

This is a simplification of the RepositoryService, intended to be used in cases where a component needs to be able to look up repositories but doesn't need the full service functionality. Using this interface instead makes such components easier to test.

Plugin developers: Plugins cannot autowire their components when importing both RepositorySupplier and RepositoryService. In general, if a plugin needs RepositoryService methods, it should only use the RepositoryService. This interface should be used when a plugin only needs to retrieve repositories.

  • Method Details

    • getById

      @Nullable Repository getById(int id)
      Retrieves a Repository by its ID.
      Parameters:
      id - the repository's ID
      Returns:
      the request repository, or null if there is no repository with the specified ID
      Throws:
      AuthorisationException - if the current user does not have permission to access the requested repository
    • getBySlug

      @Nullable Repository getBySlug(@Nonnull String projectKey, @Nonnull String slug)
      Retrieves a Repository by its slug. Slugs are only unique within a given Project, so the project key is also required.
      Parameters:
      projectKey - the key of the project to search in
      slug - the slug of the repository to search for
      Returns:
      the repository, or null if no matching repository is found
      Throws:
      AuthorisationException - if the current user does not have permission to access the requested repository
      RepositoryMovedException - if the repository has been moved to a different project, the project key has changed or the repository slug has changed