Class TagCommand

java.lang.Object
org.eclipse.jgit.api.GitCommand<Ref>
org.eclipse.jgit.api.TagCommand
All Implemented Interfaces:
Callable<Ref>

public class TagCommand extends GitCommand<Ref>
Create/update an annotated tag object or a simple unannotated tag

Examples (git is a Git instance):

Create a new tag for the current commit:

 git.tag().setName("v1.0").setMessage("First stable release").call();
 

Create a new unannotated tag for the current commit:

 git.tag().setName("v1.0").setAnnotated(false).call();
 

See Also:
  • Field Details

  • Constructor Details

    • TagCommand

      protected TagCommand(Repository repo)

      Constructor for TagCommand.

      Parameters:
      repo - a Repository object.
  • Method Details

    • call

      Execute the command

      Executes the tag command with all the options and parameters collected by the setter methods of this class. Each instance of this class should only be used for one invocation of the command (means: one call to call())

      Specified by:
      call in interface Callable<Ref>
      Specified by:
      call in class GitCommand<Ref>
      Throws:
      GitAPIException
      ConcurrentRefUpdateException
      InvalidTagNameException
      NoHeadException
      Since:
      2.0
    • updateTagRef

      private Ref updateTagRef(ObjectId tagId, RevWalk revWalk, String tagName, String newTagToString) throws IOException, ConcurrentRefUpdateException, RefAlreadyExistsException
      Throws:
      IOException
      ConcurrentRefUpdateException
      RefAlreadyExistsException
    • processOptions

      Sets default values for not explicitly specified options. Then validates that all required data has been provided.
      Parameters:
      state - the state of the repository we are working on
      Throws:
      InvalidTagNameException - if the tag name is null or invalid
      ServiceUnavailableException - if the tag should be signed but no signer can be found
      UnsupportedSigningFormatException - if the tag should be signed but gpg.format is not GpgConfig.GpgFormat.OPENPGP
    • setName

      public TagCommand setName(String name)
      Set the tag name.
      Parameters:
      name - the tag name used for the tag
      Returns:
      this
    • getName

      public String getName()
      Get the tag name.
      Returns:
      the tag name used for the tag
    • getMessage

      public String getMessage()
      Get the tag message.
      Returns:
      the tag message used for the tag
    • setMessage

      public TagCommand setMessage(String message)
      Set the tag message.
      Parameters:
      message - the tag message used for the tag
      Returns:
      this
    • isSigned

      public boolean isSigned()
      Whether setSigned(true) has been called or whether a signing key ID has been set; i.e., whether -s or -u was specified explicitly.
      Returns:
      whether the tag is signed
    • setSigned

      public TagCommand setSigned(boolean signed)
      If set to true the Tag command creates a signed tag object. This corresponds to the parameter -s (--sign or --no-sign) on the command line.

      If true, the tag will be a signed annotated tag.

      Parameters:
      signed - whether to sign
      Returns:
      this
    • setGpgSigner

      public TagCommand setGpgSigner(GpgObjectSigner signer)
      Sets the GpgSigner to use if the commit is to be signed.
      Parameters:
      signer - to use; if null, the default signer will be used
      Returns:
      this
      Since:
      5.11
    • setGpgConfig

      public TagCommand setGpgConfig(GpgConfig config)
      Sets an external GpgConfig to use. Whether it will be used is at the discretion of the setGpgSigner(GpgObjectSigner).
      Parameters:
      config - to set; if null, the config will be loaded from the git config of the repository
      Returns:
      this
      Since:
      5.11
    • setTagger

      public TagCommand setTagger(PersonIdent tagger)
      Sets the tagger of the tag. If the tagger is null, a PersonIdent will be created from the info in the repository.
      Parameters:
      tagger - a PersonIdent object.
      Returns:
      this
    • getTagger

      public PersonIdent getTagger()
      Get the tagger who created the tag.
      Returns:
      the tagger of the tag
    • getObjectId

      public RevObject getObjectId()
      Get the tag's object id
      Returns:
      the object id of the tag
    • setObjectId

      public TagCommand setObjectId(RevObject id)
      Sets the object id of the tag. If the object id is null, the commit pointed to from HEAD will be used.
      Parameters:
      id - a RevObject object.
      Returns:
      this
    • isForceUpdate

      public boolean isForceUpdate()
      Whether this is a forced update
      Returns:
      is this a force update
    • setForceUpdate

      public TagCommand setForceUpdate(boolean forceUpdate)
      If set to true the Tag command may replace an existing tag object. This corresponds to the parameter -f on the command line.
      Parameters:
      forceUpdate - whether this is a forced update
      Returns:
      this
    • setAnnotated

      public TagCommand setAnnotated(boolean annotated)
      Configure this tag to be created as an annotated tag
      Parameters:
      annotated - whether this shall be an annotated tag
      Returns:
      this
      Since:
      3.0
    • isAnnotated

      public boolean isAnnotated()
      Whether this will create an annotated tag.
      Returns:
      true if this command will create an annotated tag (default is true)
      Since:
      3.0
    • setSigningKey

      public TagCommand setSigningKey(String signingKey)
      Sets the signing key.

      Per spec of user.signingKey: this will be sent to the GPG program as is, i.e. can be anything supported by the GPG program.

      Note, if none was set or null is specified a default will be obtained from the configuration.

      If set to a non-null value, the tag will be a signed annotated tag.

      Parameters:
      signingKey - signing key; null allowed
      Returns:
      this
      Since:
      5.11
    • getSigningKey

      public String getSigningKey()
      Retrieves the signing key ID.
      Returns:
      the key ID set, or null if none is set
      Since:
      5.11
    • setCredentialsProvider

      public TagCommand setCredentialsProvider(CredentialsProvider credentialsProvider)
      Parameters:
      credentialsProvider - the provider to use when querying for credentials (eg., during signing)
      Returns:
      this
      Since:
      5.11