Generic

Use this releaser if no specific releaser is available.

Refer to Changelog for full options on changelog customizations.

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
# 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"
{
  // 
  "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"
      },
    }
  }
}
<jreleaser>
  <!--
    
  -->
  <release>
    <!--
      Repo in which the release will be created.
      
    -->
    <generic>

      <!--
        Disables or enables publication to Generic.
        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 Generic host url.
        
      -->
      <host>https://my.githost.com</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.
         
      -->
      <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.
         
      -->
      <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}}`.
          
      -->
      <tagName>v1.0.0</tagName>

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

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

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



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





      <!--
        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>
    </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.
      // 
      repoOwner = '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'
      }
    }
  }
}