# Interface SignatoryProvider<T extends Signatory>

Type Parameters:
  `T` - The specific `Signatory` subtype

All Known Implementing Classes:
  `PgpSignatoryProvider`

public interface SignatoryProvider<T extends Signatory>

Provides implementations of signatory implementations for a project.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `configure(SigningExtension settings, Closure closure)`
  Evaluates the given DSL-containing-closure as signatory configuration.
  `T`
  `getDefaultSignatory(Project project)`
  Attempts to create a signatory for the project that will be used everywhere something is to be signed and an explicit signatory has not been set (for the task/operation).
  `T`
  `getSignatory(String name)`
  Retrieves the signatory with the given name.

- ## Method Details

  - ### configure

    void configure(SigningExtension settings, Closure closure)
    Evaluates the given DSL-containing-closure as signatory configuration.
    Parameters:
      `settings` - The signing settings for the project the configure is happening for

  - ### getDefaultSignatory

    T getDefaultSignatory(Project project)

    Attempts to create a signatory for the project that will be used everywhere something is to be signed and an explicit signatory has not been set (for the task/operation).

    This may be called multiple times and the implementer is free to return a different instance if the project state has changed in someway that influences the default signatory.

    Parameters:
      `project` - The project which the signatory is for
    Returns:
      The signatory, or `null` if there is insufficient information available to create one.

  - ### getSignatory

    T getSignatory(String name)
    Retrieves the signatory with the given name.
    Parameters:
      `name` - The desired signatory's name.
    Returns:
      The signatory with the given name if found, or `null` if no signatory is found with this name.