Reddit

Submits a post to Reddit. Reddit requires all API clients to authenticate with OAUTH 2. You much create an account (with a verified email address), setup an application (script type) and note the following:

  • client_id

  • client_secret

Configuration

Legend:

  • required

  • optional

  • may use environment variable

  • accepts Name Templates

  • YAML

  • TOML

  • JSON

  • Maven

  • Gradle

# 
announce:
  # 
  reddit:
    # Enables or disables Reddit.
    # 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 `reddit`, i.e, `redditFoo`.
      foo: bar

    # Reddit API client ID for OAuth authentication.
    #  
    clientId: __USE_ENVIRONMENT_VARIABLE__

    # Reddit API client secret for OAuth authentication.
    #  
    clientSecret: __USE_ENVIRONMENT_VARIABLE__

    # Reddit username for authentication.
    #  
    username: __USE_ENVIRONMENT_VARIABLE__

    # Reddit password for authentication.
    #  
    password: __USE_ENVIRONMENT_VARIABLE__

    # Target subreddit name for posting announcements (without r/ prefix).
    # 
    subreddit: programming

    # The title of the Reddit post.
    #  
    title: '{{projectName}} {{projectVersion}} Released!'

    # The type of Reddit submission to create.
    # Supported values are  ['self', 'link'].
    #  
    submissionType: self

    # The url of the page being submitted.
    # Required when submission type is 'link'.
    # 
    url: http://www.reddit.com/reddit/reddit

    # The body of the post.
    # Required when submission type is 'self'.
    # Review the available Name Templates.
    #  
    text: '🚀 {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}'

    # Path to a template file that contains the text.
    # Review the available Name Templates.
    # 
    textTemplate: path/to/template/reddit.tpl
# 
[announce.reddit]
  # Enables or disables Reddit.
  # 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 `reddit`, i.e, `redditFoo`.

  # Reddit API client ID for OAuth authentication.
  #  
  clientId = "__USE_ENVIRONMENT_VARIABLE__"

  # Reddit API client secret for OAuth authentication.
  #  
  clientSecret = "__USE_ENVIRONMENT_VARIABLE__"

  # Reddit username for authentication.
  #  
  username = "__USE_ENVIRONMENT_VARIABLE__"

  # Reddit password for authentication.
  #  
  password = "__USE_ENVIRONMENT_VARIABLE__"

  # Target subreddit name for posting announcements (without r/ prefix).
  # 
  subreddit = "programming"

  # The title of the Reddit post.
  #  
  title = "{{projectName}} {{projectVersion}} Released!"

  # The type of Reddit submission to create.
  # Supported values are  ['self', 'link'].
  #  
  submissionType = "self"

  # The url of the page being submitted.
  # Required when submission type is 'link'.
  # 
  url = "http://www.reddit.com/reddit/reddit"

  # The body of the post.
  # Required when submission type is 'self'.
  # Review the available Name Templates.
  #  
  text = "🚀 {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}"

  # Path to a template file that contains the text.
  # Review the available Name Templates.
  # 
  textTemplate = "path/to/template/reddit.tpl"
{
  // 
  "announce": {
    // 
    "reddit": {
      // Enables or disables Reddit.
      // 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 `reddit`, i.e, `redditFoo`.
        "foo": "bar"
      },

      // Reddit API client ID for OAuth authentication.
      //  
      "clientId": "__USE_ENVIRONMENT_VARIABLE__",

      // Reddit API client secret for OAuth authentication.
      //  
      "clientSecret": "__USE_ENVIRONMENT_VARIABLE__",

      // Reddit username for authentication.
      //  
      "username": "__USE_ENVIRONMENT_VARIABLE__",

      // Reddit password for authentication.
      //  
      "password": "__USE_ENVIRONMENT_VARIABLE__",

      // Target subreddit name for posting announcements (without r/ prefix).
      // 
      "subreddit": "programming",

      // The title of the Reddit post.
      //  
      "title": "{{projectName}} {{projectVersion}} Released!",

      // The type of Reddit submission to create.
      // Supported values are  ['self', 'link'].
      //  
      "submissionType": "self",

      // The url of the page being submitted.
      // Required when submission type is 'link'.
      // 
      "url": "http://www.reddit.com/reddit/reddit",

      // The body of the post.
      // Required when submission type is 'self'.
      // Review the available Name Templates.
      //  
      "text": "🚀 {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}",

      // Path to a template file that contains the text.
      // Review the available Name Templates.
      // 
      "textTemplate": "path/to/template/reddit.tpl"

    }
  }
}
<jreleaser>
  <!--
    
  -->
  <announce>
    <!--
      
    -->
    <reddit>
      <!--
        Enables or disables Reddit.
        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 `reddit`, i.e, `redditFoo`.
        -->
        <foo>bar</foo>
      </extraProperties>

      <!--
        Reddit API client ID for OAuth authentication.
         
      -->
      <clientId>__USE_ENVIRONMENT_VARIABLE__</clientId>

      <!--
        Reddit API client secret for OAuth authentication.
         
      -->
      <clientSecret>__USE_ENVIRONMENT_VARIABLE__</clientSecret>

      <!--
        Reddit username for authentication.
         
      -->
      <username>__USE_ENVIRONMENT_VARIABLE__</username>

      <!--
        Reddit password for authentication.
         
      -->
      <password>__USE_ENVIRONMENT_VARIABLE__</password>

      <!--
        Target subreddit name for posting announcements (without r/ prefix).
        
      -->
      <subreddit>programming</subreddit>

      <!--
        The title of the Reddit post.
         
      -->
      <title>{{projectName}} {{projectVersion}} Released!</title>

      <!--
        The type of Reddit submission to create.
        Supported values are  ['self', 'link'].
         
      -->
      <submissionType>self</submissionType>

      <!--
        The url of the page being submitted.
        Required when submission type is 'link'.
        
      -->
      <url>http://www.reddit.com/reddit/reddit</url>;

      <!--
        The body of the post.
        Required when submission type is 'self'.
        Review the available Name Templates.
         
      -->
      <text>🚀 {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}</text>

      <!--
        Path to a template file that contains the text.
        Review the available Name Templates.
        
      -->
      <textTemplate>path/to/template/reddit.tpl</textTemplate>

    </reddit>
  </announce>
</jreleaser>
jreleaser {
  // 
  announce {
    // 
    reddit {
      // Enables or disables Reddit.
      // 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 `reddit`, i.e, `redditFoo`.
      //  
      extraProperties.put('foo', 'bar')

      // Reddit API client ID for OAuth authentication.
      //  
      clientId = '__USE_ENVIRONMENT_VARIABLE__'

      // Reddit API client secret for OAuth authentication.
      //  
      clientSecret = '__USE_ENVIRONMENT_VARIABLE__'

      // Reddit username for authentication.
      //  
      username = '__USE_ENVIRONMENT_VARIABLE__'

      // Reddit password for authentication.
      //  
      password = '__USE_ENVIRONMENT_VARIABLE__'

      // Target subreddit name for posting announcements (without r/ prefix).
      // 
      subreddit = 'programming'

      // The title of the Reddit post.
      //  
      title = '{{projectName}} {{projectVersion}} Released!'

      // The type of Reddit submission to create.
      // Supported values are  ['self', 'link'].
      //  
      submissionType = 'self'

      // The url of the page being submitted.
      // Required when submission type is 'link'.
      // 
      url = 'http://www.reddit.com/reddit/reddit'

      // The body of the post.
      // Required when submission type is 'self'.
      // Review the available Name Templates.
      //  
      text = '🚀 {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}'

      // Path to a template file that contains the text.
      // Review the available Name Templates.
      // 
      textTemplate = 'path/to/template/reddit.tpl'
    }
  }
}

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.reddit.active

JRELEASER_ANNOUNCE_REDDIT_ACTIVE

clientId

jreleaser.announce.reddit.clientId
jreleaser.reddit.clientId

JRELEASER_ANNOUNCE_REDDIT_CLIENT_ID
JRELEASER_REDDIT_CLIENT_ID

clientSecret

jreleaser.announce.reddit.clientSecret
jreleaser.reddit.clientSecret

JRELEASER_ANNOUNCE_REDDIT_CLIENT_SECRET
JRELEASER_REDDIT_CLIENT_SECRET

username

jreleaser.announce.reddit.username
jreleaser.reddit.username

JRELEASER_ANNOUNCE_REDDIT_USERNAME
JRELEASER_REDDIT_USERNAME

password

jreleaser.announce.reddit.password
jreleaser.reddit.password

JRELEASER_ANNOUNCE_REDDIT_PASSWORD
JRELEASER_REDDIT_PASSWORD

Templates

The default location for templates is:

src/jreleaser/templates

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

  • reddit.tpl

Templates may be initialized using the template command