GitHub

Configure releases to https://api.github.com.

You must define a value for both host and apiEndpoint if using GitHub Enterprise.

Legend:

  • required

  • optional

  • may use environment variable

  • accepts Name Templates

  • YAML

  • TOML

  • JSON

  • Maven

  • Gradle

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

    # Disables or enables publication to GitHub.
    # 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 GitHub host url.
    # 
    host: github.com

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

    # The GitHub API endpoint to use.
    # You can skip `/api/v1` as it will be added by default.
    # 
    apiEndpoint: https://api.github.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 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

    # 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`.
    #  
    update: true

    # Release sections to be updated.
    # Valid values are [`TITLE`, `BODY`, `ASSETS`].
    # Defaults to `ASSETS`.
    # 
    updateSections:
      - 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

    # 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

    # Links the release with a discussion.
    # The named category must exist.
    # Defaults to empty.
    # 
    discussionCategoryName: Announcements

    # 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

      # 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.
          # 
          title: '^fix:'

          # Matches the full text of the commit.
          # Value may be plain text or regex.
          # 
          body: 'Fixes #'

      # Groups changes by category.
      # Defaults are shown.
      # 
      categories:
        - title: '🚀 Features'
          labels:
            - 'feature'
            - 'enhancement'
        - title: '🐛 Bug Fixes'
          labels:
            - 'bug'
            - 'fix'

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

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

    # 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

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

    #  
    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.github]

  # Disables or enables publication to GitHub.
  # 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 GitHub host url.
  # 
  host = "github.com"

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

  # The GitHub API endpoint to use.
  # You can skip `/api/v1` as it will be added by default.
  # 
  apiEndpoint = "https://api.github.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 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

  # 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`.
  #  
  update = true

  # Release sections to be updated.
  # Valid values are [`TITLE`, `BODY`, `ASSETS`].
  # Defaults to `ASSETS`.
  # 
  updateSections = ["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"

  # 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

  # Links the release with a discussion.
  # The named category must exist.
  # Defaults to empty.
  # 
  discussionCategoryName = "Announcements"

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

  # 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.github.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.github.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.github.changelog.labelers]]
    # The label to be applied.
    # 
    label = "issue"

    # Matches the text of the first commit line.
    # Value may be plain text or regex.
    # 
    title = "^fix:"

    # Matches the full text of the commit.
    # Value may be plain text or regex.
    # 
    body = "Fixes #"

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

  [[release.github.changelog.categories]]
    title = "🐛 Bug Fixes"
    labels = ["bug", "fix"]

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

  [[release.github.changelog.replacers]]
    search = "/CVE-(\d{4})-(\d+)/g"
    replace = "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-$1-$2"

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

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

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

  #  
  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.
    // 
    "github": {
      // Disables or enables publication to GitHub.
      // 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 GitHub host url.
      // 
      "host": "github.com",

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

      // The GitHub API endpoint to use.
      // You can skip `/api/v1` as it will be added by default.
      // 
      "apiEndpoint": "https://api.github.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 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,

      // 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`.
      //  
      "update": true,

      // Release sections to be updated.
      // Valid values are [`TITLE`, `BODY`, `ASSETS`].
      // Defaults to `ASSETS`.
      // 
      "updateSections": ["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",

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

      // Links the release with a discussion.
      // The named category must exist.
      // Defaults to empty.
      // 
      "discussionCategoryName": "Announcements",

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

        // 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.
            // 
            "title": "^fix:",

            // Matches the full text of the commit.
            // Value may be plain text or regex.
            // 
            "body": "Fixes #"
          }
        ],

        // Groups changes by category.
        // Defaults are shown.
        // 
        "categories": [
          {
            "title": "🚀 Features",
            "labels": [
              "feature",
              "enhancement"
            ]
          },
          {
            "title": "🐛 Bug Fixes",
            "labels": [
              "bug",
              "fix"
            ]
          }
        ],

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

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

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

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

      //  
      "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.
      
    -->
    <github>

      <!--
        Disables or enables publication to GitHub.
        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 GitHub host url.
        
      -->
      <host>github.com</host>

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

      <!--
        The GitHub API endpoint to use.
        You can skip `/api/v1` as it will be added by default.
        
      -->
      <apiEndpoint>https://api.github.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 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>

      <!--
        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`.
         
      -->
      <update>true</update>

      <!--
        Release sections to be updated.
        Valid values are [`TITLE`, `BODY`, `ASSETS`].
        Defaults to `ASSETS`.
        
      -->
      <updateSections>
          <updateSection>ASSETS</updateSection>
      </updateSections>

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

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

      <!--
        Links the release with a discussion.
        The named category must exist.
        Defaults to empty.
        
      -->
      <discussionCategoryName>Announcements</discussionCategoryName>

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

      <!--
        Changelog customization.
        
      -->
      <changelog>

        <!--
           Disables or enables the changelog.
          defaults to `true`.
          
        -->
        <enabled>true</enabled>

        <!--
          Sorts commits in ascending (oldest first) or descending (newer first).
          Valid values are>`ASC`, `DESC`.
          Defaults to `DESC`.
          
        -->
        <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.
          
        -->
        <external>path/to/changelog.md</external>

        <!--
          Create explicit markdown links for commit hashes.
          Defaults to `false`.
          
        -->
        <links>false</links>

        <!--
          Enables or disables formatting options.
          Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
          Defaults to `NEVER`.
          
        -->
        <formatted>ALWAYS</formatted>

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

        <!--
          The template to use for the whole changelog.
          Defaults is shown.
           
        -->
        <content>
          # Changelog

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

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

        <!--
          
        -->
        <contributors>
          <!--
            Enables the contributors block.
            Defaults to `true`.
            
          -->
          <enabled>true</enabled>

          <!--
            The template to use for each contributor.
            Defaults to `{{contributorName}}`.
             
          -->
          <format>- {{contributorName}} ({{contributorUsernameAsLink}})</format>
        </contributors>

        <!--
          
        -->
        <hide>
          <!--
            Hide uncategorized commits.
            Defaults to `false`.
            
          -->
          <uncategorized>true</uncategorized>

          <!--
            Hide matching categories.
            Entries must exactly match category titles defined below.
            Defaults to empty.
            
          -->
          <categories>
            <category>Merge</category>
          </categories>

          <!--
            Hide matching contributor names.
            Value may be plain text or regex.
            Defaults to empty.
            
          -->
          <contributors>
            <contributor>[bot]</contributor>
          </contributors>
        </hide>

        <!--
          A list of labels to be included.
          Only changes matching this list will be included.
          Defaults to empty.
          
        -->
        <includeLabels>
          <includeLabel>issue</includeLabel>
        </includeLabels>

        <!--
          A list of labels to be excluded.
          Changes matching this list will be excluded.
          Defaults to empty.
          
        -->
        <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.
          
        -->
        <labelers>
          <labeler>
            <!--
              The label to be applied.
              
            -->
            <label>issue</label>

            <!--
              Matches the text of the first commit line.
              Value may be plain text or regex.
              
            -->
            <title>^fix:</title>

            <!--
              Matches the full text of the commit.
              Value may be plain text or regex.
              
            -->
            <body>Fixes #</body>
          </labeler>
        </labelers>

        <!--
          Groups changes by category.
          Defaults are shown.
          
        -->
        <categories>
          <category>
            <title>🚀 Features</title>
            <labels>feature,enhancement</labels>
          </category>
          <category>
            <title>🐛 Bug Fixes</title>
            <labels>bug,fix</labels>
          </category>
        </categories>

        <!--
          Defines rules for replacing the generated content.
          Each replacer is applied in order.
           
        -->
        <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>

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

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

      <!--
         
      -->
      <downloadUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFileName}}</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>
    </github>
  </release>
</jreleaser>
jreleaser {
  // 
  release {
    // Repo in which the release will be created.
    // 
    github {
      // Disables or enables publication to GitHub.
      // 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 GitHub host url.
      // 
      host = 'github.com'

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

      // The GitHub API endpoint to use.
      // You can skip `/api/v1` as it will be added by default.
      // 
      apiEndpoint = 'https://api.github.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 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

      // 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`.
      //  
      update = true

      // Release sections to be updated.
      // Valid values are [`TITLE`, `BODY`, `ASSETS`].
      // Defaults to `ASSETS`.
      // 
      updateSection('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.
      // v
      branch = 'main'

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

      // Links the release with a discussion.
      // The named category must exist.
      // Defaults to empty.
      // 
      discussionCategoryName = 'Announcements'

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

        // 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.
          // 
          title = '^fix:'

          // Matches the full text of the commit.
          // Value may be plain text or regex.
          // 
          body = 'Fixes #'
        }

        // Groups changes by category.
        // Defaults are shown.
        // 
        category  {
          title = '🚀 Features'
          labels = [
            'feature',
            'enhancement'
          ]
        }
        category {
          title = '🐛 Bug Fixes'
          labels = [
            'bug',
            'fix'
          ]
        }

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

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

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

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

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

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

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

Changelog

You may define either content or contentTemplate, with the latter taking precedence over the former.

Changelog formatting applies only to the automatically generated changelog, that is, formatting won’t occur if the external property is set. Format applies only to local commits at the moment, the use of labelers is highly encouraged.

The changelog.format property only accepts the following name templates:

Key Description

commitShortHash

head commit hash abbreviated to 7 characters

commitFullHash

head commit hash

commitTitle

first line of the commit message

commitAuthor

full name of the commit author

commitsUrl

commits URl as provided by the Git host

The content and contentTemplate accept all Name Templates, take special consideration on {{changelogChanges}} and {{changelogContributors}} as they define the parsed commits.

Contributors

Contributor names are added to the formatted changelog by default. You may choose to provide a custom format or disable this behavior completely. The contributors.format property accepts the following templates:

Key Description

contributorName

the contributor’s name as plain text

contributorNameAsLink

the contributor’s name as a link

contributorUsername

the contributor’s username as plain text

contributorUsernameAsLink

the contributor’s username as a link

The use of {{contributorNameAsLink}}, {{contributorUsername}}, or {{contributorUsernameAsLink}} incurs on a network call to the remote service to find out information related to the given contributor.

Use a - or * character as prefix in format to list each contributor on its own row.

The following configuration

release:
  github:
    username: aalmiray
    overwrite: true
    draft: false
    sign: true
    changelog:
      formatted: ALWAYS
      format: '- {{commitShortHash}} {{commitTitle}}'
      labelers:
        - label: 'feature'
          title: 'Resolves #'
          body: 'Resolves #'
        - label: 'issue'
          title: 'Fixes #'
          body: 'Fixes #'
        - label: 'issue'
          title: 'Relates to #'
          body: 'Relates to #'
        - label: 'task'
          title: '[chore]'
      categories:
        - title: '🚀 Features'
          labels:
            - 'feature'
        - title: '✅ Issues'
          labels:
            - 'issue'
        - title: '🧰 Tasks'
          labels:
            - 'task'
      replacers:
        - search: '\[chore\] '

Generates a changelog similar to

jreleaser changelog render

Git Remote

JReleaser asumes 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.