Generic

Use this releaser if no specific releaser is available.

The generic releaser does not support all features.

The following features are not available when the generic Git releaser is configured:

  • packaging tools: Homebrew, Chocolatey, JBang, Scoop, Snap.

  • announcers: Sdkman.

  • auto-config is not supported.

Only the release tag will be created. If you’d like to upload artifacts to a particular destination then configure an uploader.

Legend:

  • required

  • optional

  • may use environment variable

  • accepts Name Templates

  • YAML

  • TOML

  • JSON

  • Maven

  • Gradle

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

    # Disables or enables publication to Generic.
    # 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 Generic host url.
    # 
    host: https://my.githost.com

    # Username used for authoring commits. Must have write access to the repository.
    # If left unspecified, the `JRELEASER_GENERIC_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_GENERIC_TOKEN`
    # environment variable must be defined.
    #  
    token: __DO_NOT_SET_HERE__


    # 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



    # 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




    # 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

    # Changelog customization.
    # 
    changelog:
      # Disables or enables the changelog.
      # defaults to `true`.
      # 
      enabled: true

      # Sorts commits in ascending (oldest first) or descending (newer first).
      # Valid values are: `ASC`, `DESC`.
      # Defaults to `DESC`.
      # 
      sort: DESC

      # Path to an external file that contains the changelog, read as is.
      # May be a relative path to the configuration file or an absolute path.
      # If unspecified, JReleaser will automatically calculate the changelog.
      # 
      external: path/to/changelog.md

      # Create explicit markdown links for commit hashes.
      # Defaults to `false`.
      # 
      links: false

      # Enables or disables formatting options.
      # Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
      # Defaults to `NEVER`.
      # 
      formatted: ALWAYS

      # Preconfigured changelog options.
      # Valid values are [`gitmoji`, `conventional-commits`].
      # Requires `formatted` to be enabled.
      # Defaults to empty.
      # 
      preset: 'gitmoji'

      # The template to use for each change.
      # Defaults to `- {{commitShortHash}} {{commitTitle}} ({{commitAuthor}})`.
      #  
      format: '- {{commitShortHash}} {{commitTitle}}'

      # The template to use for the whole changelog.
      # Defaults is shown.
      #  
      content: |
        # Changelog

        {{changelogChanges}}
        {{changelogContributors}}

      # Path to a template file that defines the contents.
      # Review the available Name Templates.
      # Defaults to `src/jreleaser/templates/changelog.tpl`.
      # 
      contentTemplate: path/to/template/changelog.tpl

      # 
      contributors:
        # Enables the contributors block.
        # Defaults to `true`.
        # 
        enabled: true

        # The template to use for each contributor.
        # Defaults to `{{contributorName}}`.
        #  
        format: '- {{contributorName}} ({{contributorUsernameAsLink}})'

      # 
      hide:
        # Hide uncategorized commits.
        # Defaults to `false`.
        # 
        uncategorized: true

        # Hide matching categories.
        # Entries must exactly match category titles defined below.
        # Defaults to empty.
        # 
        categories:
          - 'Merge'

        # Hide matching contributor names.
        # Value may be plain text or regex.
        # Defaults to empty.
        # 
        contributors:
          - '[bot]'

      # A list of labels to be included.
      # Only changes matching this list will be included.
      # Defaults to empty.
      # 
      includeLabels:
        - 'issue'

      # A list of labels to be excluded.
      # Changes matching this list will be excluded.
      # Defaults to empty.
      # 
      excludeLabels:
        - 'issue'

      # Defines rules that apply labels to changes.
      # Matchers are evaluated independently; the label will
      # be set if at least one of the matchers meets the criteria.
      # 
      labelers:
          # The label to be applied.
          # 
        - label: 'issue'

          # Matches the text of the first commit line.
          # Value may be plain text or regex.
          # Use `regex:` as prefix to indicate a regex.
          # 
          title: 'regex:fix:'

          # Matches the full text of the commit.
          # Value may be plain text or regex.
          # Use `regex:` as prefix to indicate a regex.
          # 
          body: 'Fixes #'

          # Priority when sorting.
          # Defaults to `null`
          # 
          order: 1

      # Groups changes by category.
      # Defaults are shown.
      # 
      categories:
        - title: '🚀 Features'
          labels:
            - 'feature'
            - 'enhancement'
          order: 1
        - title: '🐛 Bug Fixes'
          # You may override the format per category.
          format: '- {{commitShortHash}} {{commitBody}}'
          labels:
            - 'bug'
            - 'fix'
          order: 2

      # Defines rules for replacing the generated content.
      # Each replacer is applied in order.
      #  
      replacers:
        - search: '\[chore\]\s'
          replace: ''
        - search: '/CVE-(\d{4})-(\d+)/g'
          replace: 'https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-$1-$2'
# Repo in which the release will be created.
# 
[release.generic]

  # Disables or enables publication to Generic.
  # 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 Generic host url.
  # 
  host = "https://my.githost.com"

  # Username used for authoring commits. Must have write access to the repository.
  # If left unspecified, the `JRELEASER_GENERIC_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_GENERIC_TOKEN`
  # environment variable must be defined.
  #  
  token = "__DO_NOT_SET_HERE__"


  # 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



  # 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"




  # 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"

  # Changelog customization.

  # Disables or enables the changelog.
  # defaults to `true`.
  # 
  changelog.enabled = true

  # Sorts commits in ascending (oldest first) or descending (newer first).
  # Valid values are: `ASC`, `DESC`.
  # Defaults to `DESC`.
  # 
  changelog.sort = "DESC"

  # Path to an external file that contains the changelog, read as is.
  # May be a relative path to the configuration file or an absolute path.
  # If unspecified, JReleaser will automatically calculate the changelog.
  # 
  changelog.external = "path/to/changelog.md"

  # Create explicit markdown links for commit hashes.
  # Defaults to `false`.
  # 
  changelog.links = false

  # Enables or disables formatting options.
  # Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
  # Defaults to `NEVER`.
  # 
  changelog.formatted = "ALWAYS"

  # Preconfigured changelog options.
  # Valid values are [`gitmoji`, `conventional-commits`].
  # Requires `formatted` to be enabled.
  # Defaults to empty.
  # 
  changelog.preset = "gitmoji"

  # The template to use for each change.
  # Defaults to `- {{commitShortHash}} {{commitTitle}} ({{commitAuthor}})`.
  #  
  changelog.format = "- {{commitShortHash}} {{commitTitle}}"

  # The template to use for the whole changelog.
  # Defaults is shown.
  #  
  changelog.content = """
    # Changelog

    {{changelogChanges}}
    {{changelogContributors}}"""

  # Path to a template file that defines the contents.
  # Review the available Name Templates.
  # Defaults to `src/jreleaser/templates/changelog.tpl`.
  # 
  changelog.contentTemplate = "path/to/template/changelog.tpl"

  # 
  [[release.generic.changelog.contributors]]
    # Enables the contributors block.
    # Defaults to `true`.
    # 
    enable = true

    # The template to use for each contributor.
    # Defaults to `{{contributorName}}`.
    #  
    format = "- {{contributorName}} ({{contributorUsernameAsLink}})"

  # 
  [[release.generic.changelog.hide]]
    # Hide uncategorized commits.
    # Defaults to `false`.
    # 
    uncategorized = true

    # Hide matching categories.
    # Entries must exactly match category titles defined below.
    # Defaults to empty.
    # 
    categories = ["Merge"]

    # Hide matching contributor names.
    # Value may be plain text or regex.
    # Defaults to empty.
    # 
    contributors = ["[bot]"]

  # A list of labels to be included.
  # Only changes matching this list will be included.
  # Defaults to empty.
  # 
  changelog.includeLabels = ["issue"]

  # A list of labels to be excluded.
  # Changes matching this list will be excluded.
  # Defaults to empty.
  # 
  changelog.excludeLabels = ["issue"]

  # Defines rules that apply labels to changes.
  # Matchers are evaluated independently; the label will
  # be set if at least one of the matchers meets the criteria.
  # 
  [[release.generic.changelog.labelers]]
    # The label to be applied.
    # 
    label = "issue"

    # Matches the text of the first commit line.
    # Value may be plain text or regex.
    # Use `regex:` as prefix to indicate a regex.
    # 
    title = "regex:fix:"

    # Matches the full text of the commit.
    # Value may be plain text or regex.
    # Use `regex:` as prefix to indicate a regex.
    # 
    body = "Fixes #"

    # Priority when sorting.
    # Defaults to `null`
    # 
    order = 1

  # Groups changes by category.
  # Defaults are shown.
  # 
  [[release.generic.changelog.categories]]
    title = "🚀 Features"
    labels = ["feature", "enhancement"]
    order = 1

  [[release.generic.changelog.categories]]
    title = "🐛 Bug Fixes"
    # You may override the format per category.
    format = "- {{commitShortHash}} {{commitBody}}"
    labels = ["bug", "fix"]
    order = 2

  # Defines rules for replacing the generated content.
  # Each replacer is applied in order.
  #  
  [[release.generic.changelog.replacers]]
    search = "\[chore\]\s"
    replace = ""

  [[release.generic.changelog.replacers]]
    search = "/CVE-(\d{4})-(\d+)/g"
    replace = "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-$1-$2"
{
  // 
  "release": {
    // Repo in which the release will be created.
    // 
    "generic": {
      // Disables or enables publication to Generic.
      // 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 Generic host url.
      // 
      "host": "https://my.githost.com",

      // Username used for authoring commits. Must have write access to the repository.
      // If left unspecified, the `JRELEASER_GENERIC_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_GENERIC_TOKEN`
      // environment variable must be defined.
      //  
      "token": "__DO_NOT_SET_HERE__",


      // 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,



      // 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",




      // 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"
      },

      // Changelog customization.
      // 
      "changelog": {
        // Disables or enables the changelog.
        // defaults to `true`.
        // 
        "enabled": true,

        // Sorts commits in ascending (oldest first) or descending (newer first).
        // Valid values are: `ASC`, `DESC`.
        // Defaults to `DESC`.
        // 
        "sort": "DESC",

        // Path to an external file that contains the changelog, read as is.
        // May be a relative path to the configuration file or an absolute path.
        // If unspecified, JReleaser will automatically calculate the changelog.
        // 
        "external": "path/to/changelog.md",

        // Create explicit markdown links for commit hashes.
        // Defaults to `false`.
        // 
        "links": false,

        // Enables or disables formatting options.
        // Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
        // Defaults to `NEVER`.
        // 
        "formatted": "ALWAYS",

        // Preconfigured changelog options.
        // Valid values are [`gitmoji`, `conventional-commits`].
        // Requires `formatted` to be enabled.
        // Defaults to empty.
        // 
        "preset": "gitmoji",

        // The template to use for each change.
        // Defaults to `- {{commitShortHash}} {{commitTitle}} ({{commitAuthor}})`.
        //  
        "format": "- {{commitShortHash}} {{commitTitle}}",

        // The template to use for the whole changelog.
        // Defaults is shown.
        //  
        "content": "#Changelog\n\n{{changelogChanges}}\n{{changelogContributors}}",

        // Path to a template file that defines the contents.
        // Review the available Name Templates.
        // Defaults to `src/jreleaser/templates/changelog.tpl`.
        // 
        "contentTemplate": "path/to/template/changelog.tpl",

        // 
        "contributors": {
          // Enables the contributors block.
          // Defaults to `true`.
          // 
          "enabled": true,

          // The template to use for each contributor.
          // Defaults to `{{contributorName}}`.
          //  
          "format": "- {{contributorName}} ({{contributorUsernameAsLink}})"
        },

        // 
        "hide": {
          // Hide uncategorized commits.
          // Defaults to `false`.
          // 
          "uncategorized": true,

          // Hide matching categories.
          // Entries must exactly match category titles defined below.
          // Defaults to empty.
          // 
          "categories": [
            "Merge"
          ],

          // Hide matching contributor names.
          // Value may be plain text or regex.
          // Defaults to empty.
          // 
          "contributors": [
            "[bot]"
          ]
        },

        // A list of labels to be included.
        // Only changes matching this list will be included.
        // Defaults to empty.
        // 
        "includeLabels": [
           "issue"
        ],

        // A list of labels to be excluded.
        // Changes matching this list will be excluded.
        // Defaults to empty.
        // 
        "excludeLabels": [
           "issue"
        ],

        // Defines rules that apply labels to changes.
        // Matchers are evaluated independently; the label will
        // be set if at least one of the matchers meets the criteria.
        // 
        "labelers": [
          {
            // The label to be applied.
            // 
            "label": "issue",

            // Matches the text of the first commit line.
            // Value may be plain text or regex.
            // Use `regex:` as prefix to indicate a regex.
            // 
            "title": "regex:fix:",

            // Matches the full text of the commit.
            // Value may be plain text or regex.
            // Use `regex:` as prefix to indicate a regex.
            // 
            "body": "Fixes #",

            // Priority when sorting.
            // Defaults to `null`
            // 
            "order": 1
          }
        ],

        // Groups changes by category.
        // Defaults are shown.
        // 
        "categories": [
          {
            "title": "🚀 Features",
            "labels": [
              "feature",
              "enhancement"
            ],
            "oder: 1
          },
          {
            "title": "🐛 Bug Fixes",
            // You may override the format per category.
            "format": "- {{commitShortHash}} {{commitBody}}",
            "labels": [
              "bug",
              "fix"
            ],
            "order": 2
          }
        ],

        // Defines rules for replacing the generated content.
        // Each replacer is applied in order.
        //  
        "replacers": [
          {
            "search": "\[chore\]\s",
            "replace": ""
          },
          {
            "search": "/CVE-(\d{4})-(\d+)/g",
            "replace": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-$1-$2"
          }
        ]
      },
    }
  }
}
<jreleaser>
  <!--
    <span class="icon"><i class="fa fa-exclamation-triangle"></i></span>
  -->
  <release>
    <!--
      Repo in which the release will be created.
      <span class="icon"><i class="fa fa-exclamation-triangle"></i></span>
    -->
    <generic>

      <!--
        Disables or enables publication to Generic.
        defaults to `true`.
        <span class="icon"><i class="fa fa-dot-circle"></i></span>
      -->
      <enabled>true</enabled>

      <!--
        Defines the connection timeout in seconds.
        Defaults to `20`.
        <span class="icon"><i class="fa fa-dot-circle"></i></span>
      -->
      <connectTimeout>20</connectTimeout>

      <!--
        Defines the read timeout in seconds.
        Defaults to `60`.
        <span class="icon"><i class="fa fa-dot-circle"></i></span>
      -->
      <readTimeout>60</readTimeout>

      <!--
        The user or organization that owns the repository.
        <span class="icon"><i class="fa fa-exclamation-triangle"></i></span>
      -->
      <owner>duke</owner>

      <!--
        The name of the repository.
        If unspecified, will use ${project.name}.
        <span class="icon"><i class="fa fa-dot-circle"></i></span>
      -->
      <name>app</name>

      <!--
        The Generic host url.
        <span class="icon"><i class="fa fa-exclamation-triangle"></i></span>
      -->
      <host><a href="https://my.githost.com" class="bare">https://my.githost.com</a></host>

      <!--
        Username used for authoring commits. Must have write access to the repository.
        If left unspecified, the `JRELEASER_GENERIC_USERNAME`
        environment variable must be defined.
        Defaults to the repository's owner.
        <span class="icon"><i class="fa fa-exclamation-triangle"></i></span> <span class="icon"><i class="fa fa-eye-slash"></i></span>
      -->
      <username>duke</username>

      <!--
        Password or OAuth token with write access to the repository.
        If left unspecified, the `JRELEASER_GENERIC_TOKEN`
        environment variable must be defined.
        <span class="icon"><i class="fa fa-exclamation-triangle"></i></span> <span class="icon"><i class="fa fa-eye-slash"></i></span>
      -->
      <token>__DO_NOT_SET_HERE__</token>


      <!--
        The tag associated with the release.
        May define a `JRELEASER_TAG_NAME` environment variable instead.
        If left unspecified, will use `v{{projectVersion}}`.
        <span class="icon"><i class="fa fa-dot-circle"></i></span> <span class="icon"><i class="fa fa-eye-slash"></i></span> <span class="icon"><i class="fa fa-file-alt"></i></span>
      -->
      <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`.
        <span class="icon"><i class="fa fa-dot-circle"></i></span> <span class="icon"><i class="fa fa-eye-slash"></i></span>
      -->
      <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}}`.
        <span class="icon"><i class="fa fa-dot-circle"></i></span> <span class="icon"><i class="fa fa-eye-slash"></i></span> <span class="icon"><i class="fa fa-file-alt"></i></span>
      -->
      <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`.
        <span class="icon"><i class="fa fa-dot-circle"></i></span> <span class="icon"><i class="fa fa-eye-slash"></i></span>
      -->
      <overwrite>true</overwrite>



      <!--
        Skips creating a tag.
        Useful when the tag was created externally.
        May define a `JRELEASER_SKIP_TAG` environment variable instead.
        Defaults to `false`.
        <span class="icon"><i class="fa fa-dot-circle"></i></span> <span class="icon"><i class="fa fa-eye-slash"></i></span>
      -->
      <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`.
        <span class="icon"><i class="fa fa-dot-circle"></i></span> <span class="icon"><i class="fa fa-eye-slash"></i></span>
      -->
      <skipRelease>false</skipRelease>

      <!--
        Signs commits with the configured credentials.
        The <a href="../signing.html" class="page">Signing</a> section must be configured as well.
        Defaults to `false`.
        <span class="icon"><i class="fa fa-dot-circle"></i></span>
      -->
      <sign>false</sign>

      <!--
        The target branch to use.
        May define a `JRELEASER_BRANCH` environment variable instead.
        Defaults to the branch pointed by HEAD.
        <span class="icon"><i class="fa fa-dot-circle"></i></span> <span class="icon"><i class="fa fa-eye-slash"></i></span>
      -->
      <branch>main</branch>




      <!--
        Git author used to commit to the repository.
        <span class="icon"><i class="fa fa-dot-circle"></i></span>
      -->
      <commitAuthor>

        <!--
           Name used when authoring commits.
          Defaults to `jreleaserbot`.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <name>jreleaserbot</name>

        <!--
          E-mail used when authoring commits.
          Defaults to `jreleaser@kordamp.org`.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <email>jreleaser@kordamp.org</email>
      </commitAuthor>

      <!--
        Changelog customization.
        <span class="icon"><i class="fa fa-dot-circle"></i></span>
      -->
      <changelog>

        <!--
           Disables or enables the changelog.
          defaults to `true`.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <enabled>true</enabled>

        <!--
          Sorts commits in ascending (oldest first) or descending (newer first).
          Valid values are>`ASC`, `DESC`.
          Defaults to `DESC`.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <sort>DESC</sort>

        <!--
          Path to an external file that contains the changelog, read as is.
          May be a relative path to the configuration file or an absolute path.
          If unspecified, JReleaser will automatically calculate the changelog.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <external>path/to/changelog.md</external>

        <!--
          Create explicit markdown links for commit hashes.
          Defaults to `false`.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <links>false</links>

        <!--
          Enables or disables formatting options.
          Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
          Defaults to `NEVER`.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <formatted>ALWAYS</formatted>

        <!--
          Preconfigured changelog options.
          Valid values are [`gitmoji`, `conventional-commits`].
          Requires `formatted` to be enabled.
          Defaults to empty.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <preset>gitmoji</preset>

        <!--
          The template to use for each change.
          Defaults to `- {{commitShortHash}} {{commitTitle}} ({{commitAuthor}})`.
          <span class="icon"><i class="fa fa-dot-circle"></i></span> <span class="icon"><i class="fa fa-file-alt"></i></span>
        -->
        <format>- {{commitShortHash}} {{commitTitle}}</format>

        <!--
          The template to use for the whole changelog.
          Defaults is shown.
          <span class="icon"><i class="fa fa-dot-circle"></i></span> <span class="icon"><i class="fa fa-file-alt"></i></span>
        -->
        <content>
          # Changelog

          {{changelogChanges}}
          {{changelogContributors}}
        </content>

        <!--
          Path to a template file that defines the contents.
          Review the available <a href="../name-templates.html" class="page">Name Templates</a>.
          Defaults to `src/jreleaser/templates/changelog.tpl`.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <contentTemplate>path/to/template/changelog.tpl</contentTemplate>

        <!--
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <contributors>
          <!--
            Enables the contributors block.
            Defaults to `true`.
            <span class="icon"><i class="fa fa-dot-circle"></i></span>
          -->
          <enabled>true</enabled>

          <!--
            The template to use for each contributor.
            Defaults to `{{contributorName}}`.
            <span class="icon"><i class="fa fa-dot-circle"></i></span> <span class="icon"><i class="fa fa-file-alt"></i></span>
          -->
          <format>- {{contributorName}} ({{contributorUsernameAsLink}})</format>
        </contributors>

        <!--
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <hide>
          <!--
            Hide uncategorized commits.
            Defaults to `false`.
            <span class="icon"><i class="fa fa-dot-circle"></i></span>
          -->
          <uncategorized>true</uncategorized>

          <!--
            Hide matching categories.
            Entries must exactly match category titles defined below.
            Defaults to empty.
            <span class="icon"><i class="fa fa-dot-circle"></i></span>
          -->
          <categories>
            <category>Merge</category>
          </categories>

          <!--
            Hide matching contributor names.
            Value may be plain text or regex.
            Defaults to empty.
            <span class="icon"><i class="fa fa-dot-circle"></i></span>
          -->
          <contributors>
            <contributor>[bot]</contributor>
          </contributors>
        </hide>

        <!--
          A list of labels to be included.
          Only changes matching this list will be included.
          Defaults to empty.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <includeLabels>
          <includeLabel>issue</includeLabel>
        </includeLabels>

        <!--
          A list of labels to be excluded.
          Changes matching this list will be excluded.
          Defaults to empty.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <excludeLabels>
          <excludeLabel>issue</excludeLabel>
        </excludeLabels>

        <!--
          Defines rules that apply labels to changes.
          Matchers are evaluated independently; the label will
          be set if at least one of the matchers meets the criteria.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <labelers>
          <labeler>
            <!--
              The label to be applied.
              <span class="icon"><i class="fa fa-exclamation-triangle"></i></span>
            -->
            <label>issue</label>

            <!--
              Matches the text of the first commit line.
              Value may be plain text or regex.
              Use `regex:` as prefix to indicate a regex.
              <span class="icon"><i class="fa fa-dot-circle"></i></span>
            -->
            <title>regex:fix:</title>

            <!--
              Matches the full text of the commit.
              Value may be plain text or regex.
              Use `regex:` as prefix to indicate a regex.
              <span class="icon"><i class="fa fa-dot-circle"></i></span>
            -->
            <body>Fixes #</body>

            <!--
              Priority when sorting.
              Defaults to `null`
              <span class="icon"><i class="fa fa-dot-circle"></i></span>
            -->
            <order>1</order>
          </labeler>
        </labelers>

        <!--
          Groups changes by category.
          Defaults are shown.
          <span class="icon"><i class="fa fa-dot-circle"></i></span>
        -->
        <categories>
          <category>
            <title>🚀 Features</title>
            <labels>feature,enhancement</labels>
            <order>1</order>
          </category>
          <category>
            <title>🐛 Bug Fixes</title>
            <!--
              You may override the format per category.
            -->
            <format>- {{commitShortHash}} {{commitBody}}</format>
            <labels>bug,fix</labels>
            <order>2</order>
          </category>
        </categories>

        <!--
          Defines rules for replacing the generated content.
          Each replacer is applied in order.
          <span class="icon"><i class="fa fa-dot-circle"></i></span> <span class="icon"><i class="fa fa-file-alt"></i></span>
        -->
        <replacers>
          <replacer>
            <search>\[chore\]\s</search>
          </replacer>
          <replacer>
            <search>/CVE-(\d{4})-(\d+)/g</search>
            <replace>https: cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-$1-$2</replace>
          </replacer>
        </replacers>
      </changelog>
    </generic>
  </release>
</jreleaser>
jreleaser {
  // 
  release {
    // Repo in which the release will be created.
    // 
    generic {
      // Disables or enables publication to Generic.
      // 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 Generic host url.
      // 
      host = 'https://my.githost.com'

      // Username used for authoring commits. Must have write access to the repository.
      // If left unspecified, the `JRELEASER_GENERIC_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_GENERIC_TOKEN`
      // environment variable must be defined.
      //  
      token = '__DO_NOT_SET_HERE__'


      // 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



      // 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.
      // v
      branch = 'main'




      // 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'
      }

      // Changelog customization.
      // 
      changelog {
        // Disables or enables the changelog.
        // defaults to `true`.
        // 
        enabled = true

        // Sorts commits in ascending (oldest first) or descending (newer first).
        // Valid values are = `ASC`, `DESC`.
        // Defaults to `DESC`.
        // 
        sort = 'DESC'

        // Path to an external file that contains the changelog, read as is.
        // May be a relative path to the configuration file or an absolute path.
        // If unspecified, JReleaser will automatically calculate the changelog.
        // 
        external = 'path/to/changelog.md'

        // Create explicit markdown links for commit hashes.
        // Defaults to `false`.
        // 
        links = false

        // Enables or disables formatting options.
        // Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
        // Defaults to `NEVER`.
        // 
        formatted = 'ALWAYS'

        // Preconfigured changelog options.
        // Valid values are [`gitmoji`, `conventional-commits`].
        // Requires `formatted` to be enabled.
        // Defaults to empty.
        // 
        preset = 'gitmoji'

        // The template to use for each change.
        // Defaults to `- {{commitShortHash}} {{commitTitle}} ({{commitAuthor}})`.
        //  
        format = '- {{commitShortHash}} {{commitTitle}}'

        // The template to use for the whole changelog.
        // Defaults is shown.
        //  
        content = '#Changelog\n\n{{changelogChanges}}\n{{changelogContributors}}'

        // Path to a template file that defines the contents.
        // Review the available Name Templates.
        // Defaults to `src/jreleaser/templates/changelog.tpl`.
        // 
        contentTemplate = 'path/to/template/changelog.tpl'

        // 
        contributors {
          // Enables the contributors block.
          // Defaults to `true`.
          // 
          enabled = true

          // The template to use for each contributor.
          // Defaults to `{{contributorName}}`.
          //  
          format = '- {{contributorName}} ({{contributorUsernameAsLink}})'
        }

        // 
        hide {
          // Hide uncategorized commits.
          // Defaults to `false`.
          // 
          uncategorized = true

          // Hide matching categories.
          // Entries must exactly match category titles defined below.
          // Defaults to empty.
          // 
          categories = ['Merge']

          // Hide matching contributor names.
          // Value may be plain text or regex.
          // Defaults to empty.
          // 
          contributors = ['[bot]']
        }

        // A list of labels to be included.
        // Only changes matching this list will be included.
        // Defaults to empty.
        // 
        includeLabels = [
           'issue'
        ]

        // A list of labels to be excluded.
        // Changes matching this list will be excluded.
        // Defaults to empty.
        // 
        excludeLabels = [
           'issue'
        ]

        // Defines rules that apply labels to changes.
        // Matchers are evaluated independently; the label will
        // be set if at least one of the matchers meets the criteria.
        // 
        labeler {
          // The label to be applied.
          // 
          label = 'issue'

          // Matches the text of the first commit line.
          // Value may be plain text or regex.
          // Use `regex:` as prefix to indicate a regex.
          // 
          title = 'regex:fix:'

          // Matches the full text of the commit.
          // Value may be plain text or regex.
          // Use `regex:` as prefix to indicate a regex.
          // 
          body = 'Fixes #'

          // Priority when sorting.
          // Defaults to `null`
          // 
          order = 1
        }

        // Groups changes by category.
        // Defaults are shown.
        // 
        category  {
          title = '🚀 Features'
          labels = [
            'feature',
            'enhancement'
          ]
          order = 1
        }
        category {
          title = '🐛 Bug Fixes'
          // You may override the format per category.
          format '- {{commitShortHash}} {{commitBody}}'
          labels = [
            'bug',
            'fix'
          ]
          order = 2
        }

        // Defines rules for replacing the generated content.
        // Each replacer is applied in order.
        //  
        replacer {
          search = '\[chore\]\s'
          replace = ''
        }
        replacer {
          search = '/CVE-(\d{4})-(\d+)/g'
          replace = 'https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-$1-$2'
        }
      }
    }
  }
}