Zulip

Posts a message to a Zulip server. You must procure an account and apiKey to use this announcer.

Configuration

Legend:

  • required

  • optional

  • may use environment variable

  • accepts Name Templates

  • YAML

  • TOML

  • JSON

  • Maven

  • Gradle

# 
announce:
  # 
  zulip:
    # Enables or disables Zulip.
    # Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
    # Defaults to `NEVER`.
    #  
    active: ALWAYS

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

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

    # Additional properties used when evaluating templates.
    #  
    extraProperties:
      # Key will be capitalized and prefixed with `zulip`, i.e, `zulipFoo`.
      foo: bar

    # The Zulip account (typically an email address) to use.
    #  
    account: announce-bot@my.zulipchat.com

    # The Zulip server endpoint.
    #  
    apiHost: https://my.zulipchat.com/api/v1

    # The ApiKey associated with the given account.
    #  
    apiKey: __USE_ENVIRONMENT_VARIABLE__

    # The channel where the message will be sent to
    # Defaults to `announce`.
    # 
    channel: announce

    # The message's subject.
    # Review the available Name Templates.
    #  
    subject: '{{projectNameCapitalized}} {{projectVersion}} released!'

    # The announcement message.
    # Review the available Name Templates.
    #  
    message: '🚀 {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}'

    # Path to a template file that contains the message.
    # Review the available Name Templates.
    # Defaults to `src/jreleaser/templates/zulip.tpl`.
    # 
    messageTemplate: path/to/template/zulip.tpl
# 
[announce.zulip]
  # Enables or disables Zulip.
  # Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
  # Defaults to `NEVER`.
  #  
  active = "ALWAYS"

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

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

  # Additional properties used when evaluating templates.
  #  
  extraProperties.foo = "bar"
  # Key will be capitalized and prefixed with `zulip`, i.e, `zulipFoo`.

  # The Zulip account (typically an email address) to use.
  #  
  account = "announce-bot@my.zulipchat.com"

  # The Zulip server endpoint.
  #  
  apiHost = "https://my.zulipchat.com/api/v1"

  # The ApiKey associated with the given account.
  #  
  apiKey = "__USE_ENVIRONMENT_VARIABLE__"

  # The channel where the message will be sent to
  # Defaults to `announce`.
  # 
  channel = "announce"

  # The message's subject.
  # Review the available Name Templates.
  #  
  subject = "{{projectNameCapitalized}} {{projectVersion}} released!"

  # The announcement message.
  # Review the available Name Templates.
  #  
  message = "🚀 {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}"

  # Path to a template file that contains the message.
  # Review the available Name Templates.
  # Defaults to `src/jreleaser/templates/zulip.tpl`.
  # 
  messageTemplate = "path/to/template/zulip.tpl"
{
  // 
  "announce": {
    // 
    "zulip": {
      // Enables or disables Zulip.
      // Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
      // Defaults to `NEVER`.
      //  
      "active": "ALWAYS",

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

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

      // Additional properties used when evaluating templates.
      //  
      "extraProperties": {
        // Key will be capitalized and prefixed with `zulip`, i.e, `zulipFoo`.
        "foo": "bar"
      },

      // The Zulip account (typically an email address) to use.
      //  
      "account": "announce-bot@my.zulipchat.com",

      // The Zulip server endpoint.
      //  
      "apiHost": "https://my.zulipchat.com/api/v1",

      // The ApiKey associated with the given account.
      //  
      "apiKey": "__USE_ENVIRONMENT_VARIABLE__",

      // The channel where the message will be sent to
      // Defaults to `announce`.
      // 
      "channel": "announce",

      // The message's subject.
      // Review the available Name Templates.
      // 
      "subject": "{{projectNameCapitalized}} {{projectVersion}} released!",

      // The announcement message.
      // Review the available Name Templates.
      //  
      "message": "🚀 {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}",

      // Path to a template file that contains the message.
      // Review the available Name Templates.
      // Defaults to `src/jreleaser/templates/zulip.tpl`.
      // 
      "messageTemplate": "path/to/template/zulip.tpl"
    }
  }
}
<jreleaser>
  <!--
    
  -->
  <announce>
    <!--
      
    -->
    <zulip>
      <!--
        Enables or disables Zulip.
        Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
        Defaults to `NEVER`.
         
      -->
      <active>ALWAYS</active>

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

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

      <!--
        Additional properties used when evaluating templates.
         
      -->
      <extraProperties>
        <!--
          Key will be capitalized and prefixed with `zulip`, i.e, `zulipFoo`.
        -->
        <foo>bar</foo>
      </extraProperties>

      <!--
        The Zulip account (typically an email address) to use.
         
      -->
      <account>announce-bot@my.zulipchat.com</account>

      <!--
        The Zulip server endpoint.
         
      -->
      <apiHost>https://my.zulipchat.com/api/v1</apiHost>

      <!--
        The ApiKey associated with the given account.
         
      -->
      <apiKey>__USE_ENVIRONMENT_VARIABLE__</apiKey>

      <!--
        The channel where the message will be sent to
        Defaults to `announce`.
        
      -->
      <channel>announce</channel>

      <!--
        The message's subject.
        Review the available Name Templates.
        
      -->
      <subject>{{projectNameCapitalized}} {{projectVersion}} released!</subject>

      <!--
        The announcement message.
        Review the available Name Templates.
         
      -->
      <message>🚀 {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}</message>

      <!--
        Path to a template file that contains the message.
        Review the available Name Templates.
        Defaults to `src/jreleaser/templates/zulip.tpl`.
        
      -->
      <messageTemplate>path/to/template/zulip.tpl</messageTemplate>
    </zulip>
  </announce>
</jreleaser>
jreleaser {
  // 
  announce {
    // 
    zulip {
      // Enables or disables Zulip.
      // Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
      // Defaults to `NEVER`.
      //  
      active = 'ALWAYS'

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

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

      // Additional properties used when evaluating templates.
      // Key will be capitalized and prefixed with `zulip`, i.e, `zulipFoo`.
      //  
      extraProperties.put('foo', 'bar')

      // The Zulip account (typically an email address) to use.
      //  
      account = 'announce-bot@my.zulipchat.com'

      // The Zulip server endpoint.
      //  
      apiHost = 'https://my.zulipchat.com/api/v1'

      // The ApiKey associated with the given account.
      //  
      apiKey = '__USE_ENVIRONMENT_VARIABLE__'

      // The channel where the message will be sent to
      // Defaults to `announce`.
      // 
      channel = 'announce'

      // The message's subject.
      // Review the available Name Templates.
      // 
      subject = '{{projectNameCapitalized}} {{projectVersion}} released!'

      // The announcement message.
      // Review the available Name Templates.
      //  
      message = '🚀 {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}'

      // Path to a template file that contains the message.
      // Review the available Name Templates.
      // Defaults to `src/jreleaser/templates/zulip.tpl`.
      // 
      messageTemplate = 'path/to/template/zulip.tpl'
    }
  }
}

You may define either message or messageTemplate, with the former taking precedence over the latter.

Environment

When not explicitly set, the value of the following properties may be resolved from an environment variable or a system property as shown in the table. The system property takes precedence over the environment variable.

System Property Environment Variable

active

jreleaser.announce.zulip.active

JRELEASER_ANNOUNCE_ZULIP_ACTIVE

account

jreleaser.announce.zulip.account
jreleaser.zulip.account

JRELEASER_ANNOUNCE_ZULIP_ACCOUNT
JRELEASER_ZULIP_ACCOUNT

apiKey

jreleaser.announce.zulip.api.key
jreleaser.zulip.api.key

JRELEASER_ANNOUNCE_ZULIP_API_KEY
JRELEASER_ZULIP_API_KEY

apiHost

jreleaser.announce.zulip.api.host
jreleaser.zulip.api.host

JRELEASER_ANNOUNCE_ZULIP_API_HOST
JRELEASER_ZULIP_API_HOST

Templates

The default location for templates is:

src/jreleaser/templates

The following list shows the filenames that may be used to override default templates:

  • zulip.tpl

Templates may be initialized using the template command