Gitea

Configure releases to a Gitea instance.

Refer to Changelog for full options on changelog customizations.

Legend:

  • required

  • optional

  • may use environment variable

  • accepts Name Templates

  • YAML

  • TOML

  • JSON

  • Maven

  • Gradle

# 
release:
  # Repo in which the release will be created.
  # 
  gitea:

    # Disables or enables publication to Gitea.
    # defaults to `true`.
    # 
    enabled: true

    # Defines the connection timeout in seconds.
    # Defaults to `20`.
    # 
    connectTimeout: 20

    # Defines the read timeout in seconds.
    # Defaults to `60`.
    # 
    readTimeout: 60

    # The user or organization that owns the repository.
    # 
    owner: duke

    # The name of the repository.
    # If unspecified, will use ${project.name}.
    # 
    name: app

    # The Gitea host url.
    # 
    host: my.gitea.com

    # Username used for authoring commits. Must have write access to the repository.
    # If left unspecified, the `JRELEASER_GITEA_USERNAME`
    # environment variable must be defined.
    # Defaults to the repository's owner.
    #  
    username: duke

    # Password or OAuth token with write access to the repository.
    # If left unspecified, the `JRELEASER_GITEA_TOKEN`
    # environment variable must be defined.
    #  
    token: __DO_NOT_SET_HERE__

    # The Gitea API endpoint to use.
    # You can skip `/api/v1` as it will be added by default.
    # 
    apiEndpoint: https://my.gitea.com

    # The tag associated with the release.
    # May define a `JRELEASER_TAG_NAME` environment variable instead.
    # If left unspecified, will use `v{{projectVersion}}`.
    #   
    tagName: v1.0.0

    # The tag to compare against the release tag. Is used to fetch all commits between those tags.
    # May define a `JRELEASER_PREVIOUS_TAG_NAME` environment variable instead.
    # If left unspecified, will use the previous logical tag of `tagName`.
    #  
    previousTagName: v0.9.0

    # The name of the release.
    # If left unspecified, will use `Release {{tagName}}`.
    # May define a `JRELEASER_RELEASE_NAME` environment variable instead.
    #   
    releaseName: Release v1.0.0

    # Drops and creates an existing release with matching tag.
    # May define a `JRELEASER_OVERWRITE` environment variable instead.
    # Defaults to `false`.
    #  
    overwrite: true

    # 
    update:
      # Appends artifacts to an existing release with matching tag,
      # useful if `overwrite` is set to `false`.
      # May define a `JRELEASER_UPDATE` environment variable instead.
      # Defaults to `false`.
      #  
      enabled: true

      # Release sections to be updated.
      # Supported values are [`TITLE`, `BODY`, `ASSETS`].
      # Defaults to `ASSETS`.
      # 
      sections:
        - ASSETS

    # Skips creating a tag.
    # Useful when the tag was created externally.
    # May define a `JRELEASER_SKIP_TAG` environment variable instead.
    # Defaults to `false`.
    #  
    skipTag: false

    # Skips creating a release.
    # Useful when release assets will be handled with an uploader.
    # May define a `JRELEASER_SKIP_RELEASE` environment variable instead.
    # Defaults to `false`.
    #  
    skipRelease: false

    # Signs commits with the configured credentials.
    # The Signing section must be configured as well.
    # Defaults to `false`.
    # 
    sign: false

    # The target branch to use.
    # May define a `JRELEASER_BRANCH` environment variable instead.
    # Defaults to the branch pointed by HEAD.
    #  
    branch: main

    # Enables or disables asset upload.
    # Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`, `PRERELEASE`, `RELEASE_PRERELEASE`].
    # Defaults to `ALWAYS`.
    # 
    uploadAssets: ALWAYS

    # Release files.
    # Defaults to `true`.
    # 
    files: true

    # Release distribution artifacts.
    # Defaults to `true`.
    # 
    artifacts: true

    # Release checksum files.
    # Defaults to `true`.
    # 
    checksums: true

    # Release signature files.
    # Defaults to `true`.
    # 
    signatures: true

    # Marks the release as a draft.
    # May define a `JRELEASER_DRAFT` environment variable instead.
    # Defaults to `false`.
    #  
    draft: false

    # 
    prerelease:
      # Marks the release as prerelease.
      # May define a `JRELEASER_PRERELEASE` environment variable instead.
      # Defaults to `false`.
      #  
      enabled: false

      # A regex to determine if the project version is a prerelease
      # May define a `JRELEASER_PRERELEASE_PATTERN` environment variable instead.
      #  
      pattern: .*-pre

    # Git author used to commit to the repository.
    # 
    commitAuthor:
      # Name used when authoring commits.
      # Defaults to `jreleaserbot`.
      # 
      name: jreleaserbot

      # E-mail used when authoring commits.
      # Defaults to `jreleaser@kordamp.org`.
      # 
      email: jreleaser@kordamp.org

    # A milestone associated with the release
    # 
    milestone:
      # Close the milestone (if it exists and still open) upon release.
      # Defaults to `true`.
      # 
      close: true

      # The name/title of the milestone.
      # May define a `JRELEASER_MILESTONE_NAME` environment variable instead.
      # Defaults to `{{tagName}}`.
      #   
      name: '{{tagName}}'

    # Update issues upon release.
    # Adds a label and post a comment to every issue found in the changelog.
    # 
    issues:
      # Enables this feature.
      # Defaults to `false`.
      # 
      enabled: true

      # Comment to post on matching issues.
      #  
      comment: 'Released in {{tagName}} -> {{releaseNotesUrl}}'

      # Applies the current milestone to issues
      # Valid values are: [`NEVER`, `ALWAYS`, `WARN`, `FORCE`].
      # 
      applyMilestone: ALWAYS

      # Describes the label to be applied.
      # Defaults are shown.
      # 
      label:
        # 
        name: released
        # 
        color: '#FF0000'
        # 
        description: Issue has been released

    # The following properties define  URL formats.
    # Defaults are shown.
    # Review the available Name Templates.

    #  
    repoUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}

    #  
    repoCloneUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git

    #  
    commitUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits

    #  
    srcUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/{gitservice_blob}/{{repoBranch}}

    #  
    downloadUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFile}}

    #  
    releaseNotesUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}

    #  
    latestReleaseUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/latest

    #  
    issueTrackerUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/issues
# Repo in which the release will be created.
# 
[release.gitea]

  # Disables or enables publication to Gitea.
  # defaults to `true`.
  # 
  enabled = true

  # Defines the connection timeout in seconds.
  # Defaults to `20`.
  # 
  connectTimeout = 20

  # Defines the read timeout in seconds.
  # Defaults to `60`.
  # 
  readTimeout = 60

  # The user or organization that owns the repository.
  # 
  owner = "duke"

  # The name of the repository.
  # If unspecified, will use ${project.name}.
  # 
  name = "app"

  # The Gitea host url.
  # 
  host = "my.gitea.com"

  # Username used for authoring commits. Must have write access to the repository.
  # If left unspecified, the `JRELEASER_GITEA_USERNAME`
  # environment variable must be defined.
  # Defaults to the repository's owner.
  #  
  username = "duke"

  # Password or OAuth token with write access to the repository.
  # If left unspecified, the `JRELEASER_GITEA_TOKEN`
  # environment variable must be defined.
  #  
  token = "__DO_NOT_SET_HERE__"

  # The Gitea API endpoint to use.
  # You can skip `/api/v1` as it will be added by default.
  # 
  apiEndpoint = "https://my.gitea.com"

  # The tag associated with the release.
  # May define a `JRELEASER_TAG_NAME` environment variable instead.
  # If left unspecified, will use `v{{projectVersion}}`.
  #   
  tagName = "v1.0.0"

  # The tag to compare against the release tag. Is used to fetch all commits between those tags.
  # May define a `JRELEASER_PREVIOUS_TAG_NAME` environment variable instead.
  # If left unspecified, will use the previous logical tag of `tagName`.
  #  
  previousTagName = "v0.9.0"

  # The name of the release.
  # If left unspecified, will use `Release {{tagName}}`.
  # May define a `JRELEASER_RELEASE_NAME` environment variable instead.
  #   
  releaseName = "Release v1.0.0"

  # Drops and creates an existing release with matching tag.
  # May define a `JRELEASER_OVERWRITE` environment variable instead.
  # Defaults to `false`.
  #  
  overwrite = true

  # 
  [release.gitea.update]
    # Appends artifacts to an existing release with matching tag,
    # useful if `overwrite` is set to `false`.
    # May define a `JRELEASER_UPDATE` environment variable instead.
    # Defaults to `false`.
    #  
    enabled = true

    # Release sections to be updated.
    # Supported values are [`TITLE`, `BODY`, `ASSETS`].
    # Defaults to `ASSETS`.
    # 
    sections = ["ASSETS"]

  # Skips creating a tag.
  # Useful when the tag was created externally.
  # May define a `JRELEASER_SKIP_TAG` environment variable instead.
  # Defaults to `false`.
  #  
  skipTag = false

  # Skips creating a release.
  # Useful when release assets will be handled with an uploader.
  # May define a `JRELEASER_SKIP_RELEASE` environment variable instead.
  # Defaults to `false`.
  #  
  skipRelease = false

  # Signs commits with the configured credentials.
  # The Signing section must be configured as well.
  # Defaults to `false`.
  # 
  sign = false

  # The target branch to use.
  # May define a `JRELEASER_BRANCH` environment variable instead.
  # Defaults to the branch pointed by HEAD.
  #  
  branch = "main"

  # Enables or disables asset upload.
  # Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`, `PRERELEASE`, `RELEASE_PRERELEASE`].
  # Defaults to `ALWAYS`.
  # 
  uploadAssets = "ALWAYS"

  # Release files.
  # Defaults to `true`.
  # 
  files = true

  # Release distribution artifacts.
  # Defaults to `true`.
  # 
  artifacts = true

  # Release checksum files.
  # Defaults to `true`.
  # 
  checksums = true

  # Release signature files.
  # Defaults to `true`.
  # 
  signatures = true

  # Marks the release as a draft.
  # May define a `JRELEASER_DRAFT` environment variable instead.
  # Defaults to `false`.
  #  
  draft = false

  # Marks the release as prerelease.
  # May define a `JRELEASER_PRERELEASE` environment variable instead.
  # Defaults to `false`.
  #  
  prerelease.enabled = false

  # A regex to determine if the project version is a prerelease
  # May define a `JRELEASER_PRERELEASE_PATTERN` environment variable instead.
  #  
  prerelease.pattern = .*-pre

  # Git author used to commit to the repository.

  # Name used when authoring commits.
  # Defaults to `jreleaserbot`.
  # 
  commitAuthor.name = "jreleaserbot"

  # E-mail used when authoring commits.
  # Defaults to `jreleaser@kordamp.org`.
  # 
  commitAuthor.email = "jreleaser@kordamp.org"

  # A milestone associated with the release

  # Close the milestone (if it exists and still open) upon release.
  # Defaults to `true`.
  # 
  milestone.close = true

  # The name/title of the milestone.
  # May define a `JRELEASER_MILESTONE_NAME` environment variable instead.
  # Defaults to `{{tagName}}`.
  #   
  milestone.name = "{{tagName}}"

  # Update issues upon release.
  # Adds a label and post a comment to every issue found in the changelog.

  # Enables this feature.
  # Defaults to `false`.
  # 
  issues.enabled = true

  # Comment to post on matching issues.
  #  
  issues.comment = "Released in {{tagName}} -> {{releaseNotesUrl}}"

  # Applies the current milestone to issues
  # Valid values are: [`NEVER`, `ALWAYS`, `WARN`, `FORCE`].
  # 
  issues.applyMilestone = "ALWAYS"

  # Describes the label to be applied.
  # Defaults are shown.
  # 
  issues.label.name = "released"
  # 
  issues.label.namecolor = "#FF0000"
  # 
  issues.label.description = "Issue has been released"

  # The following properties define  URL formats.
  # Defaults are shown.
  # Review the available Name Templates.

  #  
  repoUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}"

  #  
  repoCloneUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git"

  #  
  commitUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits"

  #  
  srcUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/{gitservice_blob}/{{repoBranch}}"

  #  
  downloadUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFile}}"

  #  
  releaseNotesUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}"

  #  
  latestReleaseUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/latest"

  #  
  issueTrackerUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/issues"
{
  // 
  "release": {
    // Repo in which the release will be created.
    // 
    "gitea": {
      // Disables or enables publication to Gitea.
      // defaults to `true`.
      // 
      "enabled": true,

      // Defines the connection timeout in seconds.
      // Defaults to `20`.
      // 
      "connectTimeout": 20,

      // Defines the read timeout in seconds.
      // Defaults to `60`.
      // 
      "readTimeout": 60,

      // The user or organization that owns the repository.
      // 
      "owner": "duke",

      // The name of the repository.
      // If unspecified, will use ${project.name}.
      // 
      "name": "app",

      // The Gitea host url.
      // 
      "host": "my.gitea.com",

      // Username used for authoring commits. Must have write access to the repository.
      // If left unspecified, the `JRELEASER_GITEA_USERNAME`
      // environment variable must be defined.
      // Defaults to the repository's owner.
      //  
      "username": "duke",

      // Password or OAuth token with write access to the repository.
      // If left unspecified, the `JRELEASER_GITEA_TOKEN`
      // environment variable must be defined.
      //  
      "token": "__DO_NOT_SET_HERE__",

      // The Gitea API endpoint to use.
      // You can skip `/api/v1` as it will be added by default.
      // 
      "apiEndpoint": "https://my.gitea.com",

      // The tag associated with the release.
      // May define a `JRELEASER_TAG_NAME` environment variable instead.
      // If left unspecified, will use `v{{projectVersion}}`.
      //   
      "tagName": "v1.0.0",

      // The tag to compare against the release tag. Is used to fetch all commits between those tags.
      // May define a `JRELEASER_PREVIOUS_TAG_NAME` environment variable instead.
      // If left unspecified, will use the previous logical tag of `tagName`.
      //  
      "previousTagName": "v0.9.0",

      // The name of the release.
      // May define a `JRELEASER_RELEASE_NAME` environment variable instead.
      // If left unspecified, will use `Release {{tagName}}`.
      //   
      "releaseName": "Release v1.0.0",

      // Drops and creates an existing release with matching tag.
      // May define a `JRELEASER_OVERWRITE` environment variable instead.
      // Defaults to `false`.
      //  
      "overwrite": true,

      // 
      "update": {
        // Appends artifacts to an existing release with matching tag,
        // useful if `overwrite` is set to `false`.
        // May define a `JRELEASER_UPDATE` environment variable instead.
        // Defaults to `false`.
        //  
        "enabled": true,

        // Release sections to be updated.
        // Supported values are [`TITLE`, `BODY`, `ASSETS`].
        // Defaults to `ASSETS`.
        // 
        "sections": ["ASSETS"]
      },

      // Skips creating a tag.
      // Useful when the tag was created externally.
      // May define a `JRELEASER_SKIP_TAG` environment variable instead.
      // Defaults to `false`.
      //  
      "skipTag": false,

      // Skips creating a release.
      // Useful when release assets will be handled with an uploader.
      // May define a `JRELEASER_SKIP_RELEASE` environment variable instead.
      // Defaults to `false`.
      //  
      "skipRelease": false,

      // Signs commits with the configured credentials.
      // The Signing section must be configured as well.
      // Defaults to `false`.
      // 
      "sign": false,

      // The target branch to use.
      // May define a `JRELEASER_BRANCH` environment variable instead.
      // Defaults to the branch pointed by HEAD.
      //  
      "branch": "main",

      // Enables or disables asset upload.
      // Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`, `PRERELEASE`, `RELEASE_PRERELEASE`].
      // Defaults to `ALWAYS`.
      // 
      "uploadAssets": "ALWAYS",

      // Release files.
      // Defaults to `true`.
      // 
      "files": true,

      // Release distribution artifacts.
      // Defaults to `true`.
      // 
      "artifacts": true,

      // Release checksum files.
      // Defaults to `true`.
      // 
      "checksums": true,

      // Release signature files.
      // Defaults to `true`.
      // 
      "signatures": true,

      // Marks the release as a draft.
      // May define a `JRELEASER_DRAFT` environment variable instead.
      // Defaults to `false`.
      //  
      "draft": false,

      // 
      "prerelease": {
        // Marks the release as prerelease.
        // May define a `JRELEASER_PRERELEASE` environment variable instead.
        // Defaults to `false`.
        //  
        "enabled": false,

        // A regex to determine if the project version is a prerelease
        // May define a `JRELEASER_PRERELEASE_PATTERN` environment variable instead.
        //  
        "pattern": ".*-pre"
      },

include::partial$release/json/commitauthor.adoc[

      // A milestone associated with the release
      // 
      "milestone": {
        // Close the milestone (if it exists and still open) upon release.
        // Defaults to `true`.
        // 
        "close": true,

        // The name/title of the milestone.
        // May define a `JRELEASER_MILESTONE_NAME` environment variable instead.
        // Defaults to `{{tagName}}`.
        //   
        "name": "{{tagName}}"
      },

      // Update issues upon release.
      // Adds a label and post a comment to every issue found in the changelog.
      // 
      "issues": {
        // Enables this feature.
        // Defaults to `false`.
        // 
        "enabled": true,

        // Comment to post on matching issues.
        //  
        "comment": "Released in {{tagName}} -> {{releaseNotesUrl}}",

        // Applies the current milestone to issues
        // Valid values are: [`NEVER`, `ALWAYS`, `WARN`, `FORCE`].
        // 
        "applyMilestone": "ALWAYS",

        // Describes the label to be applied.
        // Defaults are shown.
        // 
        "label": {
          # 
          "name": "released",
          # 
          "color": "#FF0000",
          # 
          "description": "Issue has been released"
        }
      },

      // The following properties define  URL formats.
      // Defaults are shown.
      // Review the available Name Templates.

      //  
      "repoUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}",

      //  
      "repoCloneUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git",

      //  
      "commitUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits",

      //  
      "srcUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/{gitservice_blob}/{{repoBranch}}",

      //  
      "downloadUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFile}}",

      //  
      "releaseNotesUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}",

      //  
      "latestReleaseUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/latest",

      //  
      "issueTrackerUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/issues"
    }
  }
}
<jreleaser>
  <!--
    
  -->
  <release>
    <!--
      Repo in which the release will be created.
      
    -->
    <gitea>

      <!--
        Disables or enables publication to Gitea.
        defaults to `true`.
        
      -->
      <enabled>true</enabled>

      <!--
        Defines the connection timeout in seconds.
        Defaults to `20`.
        
      -->
      <connectTimeout>20</connectTimeout>

      <!--
        Defines the read timeout in seconds.
        Defaults to `60`.
        
      -->
      <readTimeout>60</readTimeout>

      <!--
        The user or organization that owns the repository.
        
      -->
      <owner>duke</owner>

      <!--
        The name of the repository.
        If unspecified, will use ${project.name}.
        
      -->
      <name>app</name>

      <!--
        The Gitea host url.
        
      -->
      <host>my.gitea.com</host>

      <!--
        Username used for authoring commits. Must have write access to the repository.
        If left unspecified, the `JRELEASER_GITEA_USERNAME`
        environment variable must be defined.
        Defaults to the repository's owner.
         
      -->
      <username>duke</username>

      <!--
        Password or OAuth token with write access to the repository.
        If left unspecified, the `JRELEASER_GITEA_TOKEN`
        environment variable must be defined.
         
      -->
      <token>__DO_NOT_SET_HERE__</token>

      <!--
        The Gitea API endpoint to use.
        You can skip `/api/v1` as it will be added by default.
        
      -->
      <apiEndpoint>https://my.gitea.com</apiEndpoint>

      <!--
        The tag associated with the release.
        May define a `JRELEASER_TAG_NAME` environment variable instead.
        If left unspecified, will use `v{{projectVersion}}`.
          
      -->
      <tagName>v1.0.0</tagName>

      <!--
        The tag to compare against the release tag. Is used to fetch all commits between those tags.
        May define a `JRELEASER_PREVIOUS_TAG_NAME` environment variable instead.
        If left unspecified, will use the previous logical tag of `tagName`.
         
      -->
      <previousTagName>v0.9.0</previousTagName>

      <!--
        The name of the release.
        May define a `JRELEASER_RELEASE_NAME` environment variable instead.
        If left unspecified, will use `Release {{tagName}}`.
          
      -->
      <releaseName>Release v1.0.0</releaseName>

      <!--
        Drops and creates an existing release with matching tag.
        May define a `JRELEASER_OVERWRITE` environment variable instead.
        Defaults to `false`.
         
      -->
      <overwrite>true</overwrite>

      <!--
        
      -->
      <update>
        <!--
          Appends artifacts to an existing release with matching tag,
          useful if `overwrite` is set to `false`.
          May define a `JRELEASER_UPDATE` environment variable instead.
          Defaults to `false`.
           
        -->
        <enabled>true</enabled>

        <!--
          Release sections to be updated.
          Supported values are [`TITLE`, `BODY`, `ASSETS`].
          Defaults to `ASSETS`.
          
        -->
        <sections>
            <section>ASSETS</section>
        </sections>
      </update>

      <!--
        Skips creating a tag.
        Useful when the tag was created externally.
        May define a `JRELEASER_SKIP_TAG` environment variable instead.
        Defaults to `false`.
         
      -->
      <skipTag>false</skipTag>

      <!--
        Skips creating a release.
        Useful when release assets will be handled with an uploader.
        May define a `JRELEASER_SKIP_RELEASE` environment variable instead.
        Defaults to `false`.
         
      -->
      <skipRelease>false</skipRelease>

      <!--
        Signs commits with the configured credentials.
        The Signing section must be configured as well.
        Defaults to `false`.
        
      -->
      <sign>false</sign>

      <!--
        The target branch to use.
        May define a `JRELEASER_BRANCH` environment variable instead.
        Defaults to the branch pointed by HEAD.
         
      -->
      <branch>main</branch>

      <!--
        Enables or disables asset upload.
        Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`, `PRERELEASE`, `RELEASE_PRERELEASE`].
        Defaults to `ALWAYS`.
        
      -->
      <uploadAssets>ALWAYS</uploadAssets>

      <!--
        Release files.
        Defaults to `true`.
        
      -->
      <files>true</files>

      <!--
        Release distribution artifacts.
        Defaults to `true`.
        
      -->
      <artifacts>true</artifacts>

      <!--
        Release checksum files.
        Defaults to `true`.
        
      -->
      <checksums>true</checksums>

      <!--
        Release signature files.
        Defaults to `true`.
        
      -->
      <signatures>true</signatures>

      <!--
        Marks the release as a draft.
        May define a `JRELEASER_DRAFT` environment variable instead.
        Defaults to `false`.
         
      -->
      <draft>false</draft>

      <!--
        
      -->
      <prerelease>
        <!--
          Marks the release as prerelease.
          May define a `JRELEASER_PRERELEASE` environment variable instead.
          Defaults to `false`.
           
        -->
        <enabled>false</enabled>

        <!--
          A regex to determine if the project version is a prerelease
          May define a `JRELEASER_PRERELEASE_PATTERN` environment variable instead.
           
        -->
        <pattern>.*-pre</enabled>
      </prerelease>

      <!--
        Git author used to commit to the repository.
        
      -->
      <commitAuthor>

        <!--
           Name used when authoring commits.
          Defaults to `jreleaserbot`.
          
        -->
        <name>jreleaserbot</name>

        <!--
          E-mail used when authoring commits.
          Defaults to `jreleaser@kordamp.org`.
          
        -->
        <email>jreleaser@kordamp.org</email>
      </commitAuthor>

      <!--
        A milestone associated with the release
        
      -->
      <milestone>

        <!--
          Close the milestone (if it exists and still open) upon release.
          Defaults to `true`.
          
         -->
        <close>true</close>

        <!--
          The name/title of the milestone.
          May define a `JRELEASER_MILESTONE_NAME` environment variable instead.
          Defaults to `{{tagName}}`.
            
         -->
        <name>{{tagName}}</name>
      </milestone>

      <!--
        Update issues upon release.
        Adds a label and post a comment to every issue found in the changelog.
        
      --->
      <issues>
        <!--
          Enables this feature.
          Defaults to `false`.
          
        -->
        <enabled>true</enabled>

        <!--
          Comment to post on matching issues.
           
        -->
        <comment>Released in {{tagName}} -> {{releaseNotesUrl}}</comment>

        <!--
          Applies the current milestone to issues
          Valid values are: [`NEVER`, `ALWAYS`, `WARN`, `FORCE`].
          
        -->
        <applyMilestone>ALWAYS</applyMilestone>

        <!--
          Describes the label to be applied.
          Defaults are shown.
          
        -->
        <label>
          # 
          <name>released</name>
          # 
          <color>#FF0000</color>
          # 
          <description>Issue has been released</color>
        </label>
      </issues>

      <!--
        The following properties define  URL formats.
        Defaults are shown.
        Review the available Name Templates.
      -->

      <!--
         
      -->
      <repoUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}</repoUrl>

      <!--
         
      -->
      <repoCloneUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git</repoCloneUrl>

      <!--
         
      -->
      <commitUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits</commitUrl>

      <!--
         
      -->
      <srcUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/{gitservice_blob}/{{repoBranch}}</srcUrl>

      <!--
         
      -->
      <downloadUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFile}}</downloadUrl>

      <!--
         
      -->
      <releaseNotesUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}</releaseNotesUrl>

      <!--
         
      -->
      <latestReleaseUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/latest</latestReleaseUrl>

      <!--
         
      -->
      <issueTrackerUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/issues</issueTrackerUrl>
    </gitea>
  </release>
</jreleaser>
jreleaser {
  // 
  release {
    // Repo in which the release will be created.
    // 
    gitea {
      // Disables or enables publication to Gitea.
      // defaults to `true`.
      // 
      enabled = true

      // Defines the connection timeout in seconds.
      // Defaults to `20`.
      // 
      connectTimeout = 20

      // Defines the read timeout in seconds.
      // Defaults to `60`.
      // 
      readTimeout = 60

      // The user or organization that owns the repository.
      // 
      repoOwner = 'duke'

      // The name of the repository.
      // If unspecified, will use ${project.name}.
      // 
      name = 'app'

      // The Gitea host url.
      // 
      host = 'my.gitea.com'

      // Username used for authoring commits. Must have write access to the repository.
      // If left unspecified, the `JRELEASER_GITEA_USERNAME`
      // environment variable must be defined.
      // Defaults to the repository's owner.
      //  
      username = 'duke'

      // Password or OAuth token with write access to the repository.
      // If left unspecified, the `JRELEASER_GITEA_TOKEN`
      // environment variable must be defined.
      //  
      token = '__DO_NOT_SET_HERE__'

      // The Gitea API endpoint to use.
      // You can skip `/api/v1` as it will be added by default.
      // 
      apiEndpoint = 'https://my.gitea.com'

      // The tag associated with the release.
      // May define a `JRELEASER_TAG_NAME` environment variable instead.
      // If left unspecified, will use `v{{projectVersion}}`.
      //   
      tagName = 'v1.0.0'

      // The tag to compare against the release tag. Is used to fetch all commits between those tags.
      // May define a `JRELEASER_PREVIOUS_TAG_NAME` environment variable instead.
      // If left unspecified, will use the previous logical tag of `tagName`.
      //  
      previousTagName = 'v0.9.0'

      // The name of the release.
      // May define a `JRELEASER_RELEASE_NAME` environment variable instead.
      // If left unspecified, will use `Release {{tagName}}`.
      //   
      releaseName = 'Release v1.0.0'

      // Drops and creates an existing release with matching tag.
      // May define a `JRELEASER_OVERWRITE` environment variable instead.
      // Defaults to `false`.
      //  
      overwrite = true

      // 
      update {
        // Appends artifacts to an existing release with matching tag,
        // useful if `overwrite` is set to `false`.
        // May define a `JRELEASER_UPDATE` environment variable instead.
        // Defaults to `false`.
        //  
        enabled = true

        // Release sections to be updated.
        // Supported values are [`TITLE`, `BODY`, `ASSETS`].
        // Defaults to `ASSETS`.
        // 
        section('ASSETS')
      }

      // Skips creating a tag.
      // Useful when the tag was created externally.
      // May define a `JRELEASER_SKIP_TAG` environment variable instead.
      // Defaults to `false`.
      //  
      skipTag = false

      // Skips creating a release.
      // Useful when release assets will be handled with an uploader.
      // May define a `JRELEASER_SKIP_RELEASE` environment variable instead.
      // Defaults to `false`.
      //  
      skipRelease = false

      // Signs commits with the configured credentials.
      // The Signing section must be configured as well.
      // Defaults to `false`.
      // 
      sign = false

      // The target branch to use.
      // May define a `JRELEASER_BRANCH` environment variable instead.
      // Defaults to the branch pointed by HEAD.
      // 
      branch = 'main'

      // Enables or disables asset upload.
      // Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`, `PRERELEASE`, `RELEASE_PRERELEASE`].
      // Defaults to `ALWAYS`.
      // 
      uploadAssets = 'ALWAYS'

      // Release files.
      // Defaults to `true`.
      // 
      files = true

      // Release distribution artifacts.
      // Defaults to `true`.
      // 
      artifacts = true

      // Release checksum files.
      // Defaults to `true`.
      // 
      checksums = true

      // Release signature files.
      // Defaults to `true`.
      // 
      signatures = true

      // Marks the release as a draft.
      // May define a `JRELEASER_DRAFT` environment variable instead.
      // Defaults to `false`.
      //  
      draft = false

      // 
      prerelease {
        // Marks the release as prerelease.
        // May define a `JRELEASER_PRERELEASE` environment variable instead.
        // Defaults to `false`.
        //  
        enabled = false

        // A regex to determine if the project version is a prerelease
        // May define a `JRELEASER_PRERELEASE_PATTERN` environment variable instead.
        //  
        pattern = '.*-pre'
      }

      // Git author used to commit to the repository.
      // 
      commitAuthor {
        // Name used when authoring commits.
        // Defaults to `jreleaserbot`.
        // 
        name = 'jreleaserbot'

        // E-mail used when authoring commits.
        // Defaults to `jreleaser@kordamp.org`.
        // 
        email = 'jreleaser@kordamp.org'
      }

      // A milestone associated with the release
      // 
      milestone {
        // Close the milestone (if it exists and still open) upon release.
        // Defaults to `true`.
        // 
        close = true

        // The name/title of the milestone.
        // May define a `JRELEASER_MILESTONE_NAME` environment variable instead.
        // Defaults to `{{tagName}}`.
        //   
        name = '{{tagName}}'
      }

      // Update issues upon release.
      // Adds a label and post a comment to every issue found in the changelog.
      // 
      issues {
        // Enables this feature.
        // Defaults to `false`.
        // 
        enabled = true

        // Comment to post on matching issues.
        //  
        comment = 'Released in {{tagName}} -> {{releaseNotesUrl}}'

        // Applies the current milestone to issues
        // Valid values are: [`NEVER`, `ALWAYS`, `WARN`, `FORCE`].
        // 
        applyMilestone = 'ALWAYS'

        // Describes the label to be applied.
        // Defaults are shown.
        // 
        label {
          # 
          name = 'released'
          # 
          color = '#FF0000'
          # 
          description = 'Issue has been released'
        }
      }

      // The following properties define  URL formats.
      // Defaults are shown.
      // Review the available Name Templates.

      //  
      repoUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}'

      //  
      repoCloneUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git'

      //  
      commitUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits'

      //  
      srcUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/{gitservice_blob}/{{repoBranch}}'

      //  
      downloadUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFile}}'

      //  
      releaseNotesUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}'

      //  
      latestReleaseUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/latest'

      //  
      issueTrackerUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/issues'
    }
  }
}

Git Remote

JReleaser assumes the default Git remote to be named origin however not everyone uses that name. Should you need to use a different name you may define an environment variable named JRELEASER_DEFAULT_GIT_REMOTE whose value is the name of the remote.

You must use an environment variable, can not use external properties as explained in Environment.

Skip Release

You have the option to skip artifacts and files from a release using these fields:

  • files. Affects files defined by Files.

  • artifacts. Affects files defined by the artifacts section of a Distribution.

  • checksums. Affects the calculated checksums for artifacts and files.

  • signatures. Affects the generated signature files for artifacts, files, and checksums.

Additionally you may decide to skip artifacts by defining the skipRelease extra property as true. The associated signature file may be skipped as well by defining skipReleaseSignatures as an extra property on the artifact. You may also define either of this two properties on the owning distribution in which case the settings apply to all artifacts found in the distribution.

Issues

Upon release, JReleaser may attach a label and post a comment on every matching issue found in the changelog. The following regular expressions will be used to find matching issues:

  • {{issueTrackerUrl}}/(\d+)

  • {{repoOwner}}/{{repoName}}#(\d+)

  • #(\d+)

The release process applies the following rules to mark issues:

  1. Create the target label if it does not exist.

  2. Lookup every matching issue. Skip if not closed or if it already has the label applied.

  3. Apply the label and post a comment.

Additionally, the matching milestone may also be applied to issues. You may set the applyMilestone property with any of the following values:

  • NEVER. Do not apply the milestone.

  • ALWAYS. Apply the milestone if the issue has no milestone.

  • WARN. Do not apply the milestone but warn if there’s an existing milestone that does not match the current one.

  • FORCE. Apply the milestone even if the issue had a different milestone.