$meta

The metadata settings for the configuration file.

$meta.markup

The markup format used in strings in this configuration file. May be asciidoc or markdown.

This probably matters less than you might imagine, as ReleaseHx will use AsciiDoc-style _italic_ and *bold* syntax, and there should not be much call for divergent syntax like for links or images. All default values are cross-compatible.

type

String

default

markdown

path

config.$meta.markup

$meta.slug_type

The format of slugs used in your application, for use with sluggerize Liquid filter.

Must be kebab (ex: hyphen-delimited-slug) or snake (ex: underscore_delimited_slug).

type

String

default

kebab

path

config.$meta.slug_type

$meta.tplt_lang

The default format used in fields of Template type. Must be liquid or erb.

type

String

default

liquid

path

config.$meta.tplt_lang

origin

The API or file source for the issues.

origin.source

The type of API or file to use for the issues source. May be jira, github, gitlab, or rhyml.

The jira, github, and gitlab types are all REST APIs that return an individualized JSON payload upon request, to be converted to RHYML format.

Alternately, you may use a file directly written in RHYML-style YAML (rhyml).

If you wish to mix Git and API sources, this field should still reference the API.

Custom APIs are also available, but you will need to create a custom client in the _apis directory (config.paths.api_clients_dir), and a custom mapping in the _mappings directory (<<conf_ppty_paths_mappings_dir).

type

String

default

rhyml

path

config.origin.source

origin.project

The string used to identify the project in the remote API. Only required if the API requires a project identifier.

type

Slug

path

config.origin.project

origin.href

The local or remote URI for the API or JSON file. Either the REST API endpoint path or the path to a local or remote JSON file containing the issues data.

This field may be templated, accepting Liquid placeholders like {{ proj }} (the sibling project property) or {{ version }} (the argued release version code).

type

URI

templating

immediate rendering

path

config.origin.href

origin.auth

Properties related to API authentication.

This block should be unnecessary if you use a supported API (Jira, GitHub, GitLab), unless you wish to use differently named environment variables for API credentials.

origin.auth.mode

The type of authentication to use.

Options are: basic, token, bearer, header, query, none.

origin.auth.header

The header to use for authentication. Only used if origin.auth.mode is header.

type

String

path

config.origin.auth.header

origin.auth.cred_uri

The location of the API credentials file for declaring API authentication arguments without environment variables.

The value can be a local path with read access or an HTTP path (not recommended unless ReleaseHx is always executed on an organizational VPN).

The default order of credential strings defaults to:

API_KEY
USERNAME
ORGANIZATION

However, this format can be customized using [conf_ppty_cred_key_line], [conf_ppty_cred_user_line], and [conf_ppty_cred_org_line].

Note that each of these lines can be overridden with an environment variable: config.origin.auth.key_env, config.origin.auth.user_env, and config.origin.auth.org_env.

Important
This file should probably be added to .gitignore in your application repo.
type

URI

default

RELEASEHX_API_CRED

path

config.origin.auth.cred_uri

origin.auth.cred_key_line

Number of the line of the credentials file (at config.origin.auth.cred_uri) on which the key or token string appears.

type

Number

default

1

path

config.origin.auth.cred_key_line

origin.auth.cred_user_line

Number of the line of the credentials file (at config.origin.auth.cred_uri) on which the user string appears.

type

Number

default

2

path

config.origin.auth.cred_user_line

origin.auth.cred_org_line

Number of the line of the credentials file (at config.origin.auth.cred_uri) on which the org string appears.

type

Number

default

3

path

config.origin.auth.cred_org_line

origin.auth.key_env

Name of the environment variable containing the API key or token. Will override the key line in an existing credentials file (see config.origin.auth.cred_uri).

type

String

default

RELEASEHX_API_KEY

path

config.origin.auth.key_env

origin.auth.user_env

Name of the environment variable containing the API username. Will override the user line in an existing credentials file (see config.origin.auth.cred_uri).

type

String

default

RELEASEHX_API_USER

path

config.origin.auth.user_env

origin.auth.org_env

Name of the environment variable containing the organization credential. Will override the org line in an existing credentials file (see config.origin.auth.cred_uri).

type

String

default

RELEASEHX_API_ORG

path

config.origin.auth.org_env

conversions

Details about content origination, as well as markup sources and conversion. Used to assist mapping between API source payloads and the corresponding properties of their target RHYML change records.

conversions.summ

The source of the summary (Changelog) content. Must be issue_heading, custom_field, or commit_message_heading.

If issue_heading, the summary or title field will be used. If commit_message_heading, the first line of the Git commit will be used.

type

String

default

issue

path

config.conversions.summ

conversions.head

The source of release-note headlines, when it is not the same as the summary.

Unless a head is available in the RHYML source, the summ will be used. By default, ReleaseHx does not generate a head property for work items.

Potential values: issue_heading, release_note_heading, or commit_message_heading.

When set to issue_heading, the RHYML head property will derive from the issue title or summary.

When set to release_note_heading or commit_message_heading, the head property will derive from the first line of the release note or commit message, respectively, so long as it matches the Regular Expression set in ppty.release_note_heading_pattern. When set to commit_message_heading, the RHYML head property will derive from the first line of the commit message.

type

String

path

config.conversions.head

conversions.note

The source of the release notes content. Must be issue_body, custom_field, or commit_message.

Defaults to issue_body for GitHub and GitLab, but to custom_field for Jira.

type

String

path

config.conversions.note

conversions.note_custom_field

The name of the custom field to use for the release notes content. Only used if conversions.note is custom_field.

This purposely has no default, as you will probably have to look up the actual field ID, which will be something like customfield_10010.

conversions.note_pattern

The Regular Expressions pattern to match in the body of an issue or commit message, after which all content is considered the release note matter.

Defaults to a Markdown or AsciiDoc header or HTML comment with the case-insensitive string release note in it.

Uses Capture group note in the Regular Expression to establish the entire note content.

See the conversions.head_pattern property for details on extracting a heading (head in RHYML) from the note content.

type

RegExp

default
/^((#|=)+ (Draft )?Release Note.*)|(<!-- (draft )?release note -->)\n(?<note>\w(.|\n)+)/gmi
path

config.conversions.note_pattern

conversions.head_pattern

The Regular Expressions pattern to match in the note text to be used to establish a heading for the note (head). This text is removed from the note value during a draft operation, if the pattern matches.

Defaults to a Markdown or AsciiDoc header or HTML comment with the case-insensitive string release note in it.

The head capture group is snipped from text matching this pattern.

type

RegExp

default
/^(?<head>[A-Z].*[^.!])\n\n[A-Z].*/gm
path

config.conversions.head_pattern

conversions.markup

The origin markup format for notes. May be markdown or asciidoc.

type

String

default

markdown

path

config.conversions.markup

conversions.engine

The markup converter to use for the issues. Defaults to asciidoctor for AsciiDoc and redcarpet for Markdown. Options include asciidoctor, redcarpet, commonmarker, kramdown, or pandoc.

type

String

path

config.conversions.engine

extensions

Default file extensions.

extensions.markdown

File extension for Markdown drafts.

type

String

default

md

path

config.extensions.markdown

extensions.asciidoc

File extension for AsciiDoc drafts.

type

String

default

adoc

path

config.extensions.asciidoc

extensions.yaml

File extension for YAML drafts.

type

String

default

yml

path

config.extensions.yaml

types

Issue types to include in the release history, in the order of display.

List as many as you wish to match up with corresponding metadata at the source.

type

Map

path

config.types

types.label_prefix

The prefix used in issue labels to identify type labels. For example, 'type:' would match labels like 'type:feature', 'type:bug'. Another common pattern is 'kind:' for labels like 'kind:feature', 'kind:enhancement'.

If set to an empty string or null, type detection will only look for direct label matches against the configured type slugs (e.g., looking for 'bug', 'feature' labels directly).

This setting allows you to customize how your organization names type labels. The mapping system will look for labels that start with this prefix to determine the type of each change.

Examples:

  • type: matches type:feature, type:bug

  • kind: matches kind:enhancement, kind:defect

  • category- matches category-feature, category-bugfix

When no prefix is configured (empty string), the system will look for labels that directly match the slug property of each configured type.

type

String

default

path

config.types.label_prefix

types.feature

A new capability, functionality, or interface element.

types.feature.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

type

String

default

feature

path

config.types.feature.slug

types.feature.text

The display label for the type in the release history output. Defaults to the capitalized key name.

type

String

default

New feature

path

config.types.feature.text

types.feature.head

The header for the type in the release history output. Defaults in templates to the text property pluralized.

type

String

default

New features

path

config.types.feature.head

types.feature.icon

The icon to use for issues of this type.

type

String

default

plus-square-o

path

config.types.feature.icon

types.bug

A fix for a previously reported issue.

types.bug.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

type

String

default

bug

path

config.types.bug.slug

types.bug.text

The display label for the type in the release history output. Defaults to the capitalized key name.

type

String

default

Bug fix

path

config.types.bug.text

types.bug.head

The header for the type in the release history output. Defaults in templates to the text property pluralized.

type

String

default

Bug fixes

path

config.types.bug.head

types.bug.icon

The icon to use for issues of this type.

type

String

default

bug

path

config.types.bug.icon

types.improvement

An enhancement to an existing capability, functionality, or interface element.

types.improvement.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

type

String

default

improvement

path

config.types.improvement.slug

types.improvement.text

The display label for the type in the release history output. Defaults to the capitalized key name.

type

String

default

Improvement

path

config.types.improvement.text

types.improvement.head

The header for the type in the release history output. Defaults in templates to the text property pluralized.

type

String

default

Improvements

path

config.types.improvement.head

types.improvement.icon

The icon to use for issues of this type.

type

String

default

wrench

path

config.types.improvement.icon

types.documentation

An update to the documentation.

types.documentation.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

type

String

default

documentation

path

config.types.documentation.slug

types.documentation.text

The display label for the type in the release history output. Defaults to the capitalized key name.

type

String

default

Documentation

path

config.types.documentation.text

types.documentation.head

The header for the type in the release history output. Defaults in templates to the text property pluralized.

type

String

default

Docs Changes

path

config.types.documentation.head

types.documentation.icon

The icon to use for issues of this type.

type

String

default

book

path

config.types.documentation.icon

types.<type_name>

The corresponding issue type.

The key should be a simple string for referencing the slug in RHYML and ReleaseHx templates. This is what will be entered in a change’s type property in RHYML.

types.<type_name>.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

types.<type_name>.text

The display label for the type in the release history output. Defaults to the capitalized key name.

types.<type_name>.head

The header for the type in the release history output. Defaults in templates to the text property pluralized.

types.<type_name>.icon

The icon to use for issues of this type.

parts

The map of product components to include in the release history, in the order of display.

List as many as you wish to match up with corresponding metadata at the source.

type

Map

path

config.parts

parts.label_prefix

The prefix used in issue labels to identify component/part labels. For example, 'part:' would match labels like 'part:frontend', 'part:backend'. Another common pattern is 'component:' for labels like 'component:ui', 'component:api'.

This setting allows you to customize how your organization names component labels. The mapping system will look for labels that start with this prefix to determine which parts/components are affected by each change.

Examples:

  • part: matches part:frontend, part:backend

  • component: matches component:ui, component:api

  • area- matches area-security, area-performance

type

String

default

part:

path

config.parts.label_prefix

parts.<part_name>

The corresponding product component.

The key should be a simple string for referencing the slug in RHYML and ReleaseHx templates. This is what will be entered in a change’s part property in RHYML.

type

Map

path

config.parts.<part_name>

parts.<part_name>.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

Note
This technically does not have to be a “Slug” String, if the system permits spaces, colons, etc. It just needs to exactly match whatever String the remote API returns to represent the label/tag.
parts.<part_name>.text

The display text for the component in the release history output. Defaults to the capitalized key name.

parts.<part_name>.head

The header for the component in the release history output. Defaults in templates to the text property pluralized.

parts.<part_name>.icon

The icon to use for issues that affect this component.

tags

Handling for tags, labels, or toggles associated with source Issues.

Subordinate property keys (other than include and exclude) represent individual tag names, with the default set documented here. The property <your_tag_name> represents arbitrarily named tags, any number of which you are welcome to add.

This block serves to filter out any unrelated labels/tags ingested from APIs during the conversion from payload to RHYML draft. Only tags with their own property here will be ported from the issue source to the RHYML change record’s tags Array.

type

Array

path

config.tags

tags._include

The tags, labels, or toggles that trigger inclusion in the release history.

type

Array

default
- highlight
- deprecation
- removal
- breaking
- experimental
- changelog
path

config.tags._include

tags._exclude

The list of tags that cause a change/issue to be excluded from the release history.

type

Array

default

path

config.tags._exclude

tags.highlight

The tag, label, or toggle that indicates an issue is to be highlighted or prioritized in sorts.

tags.highlight.head

How this tag will display as a grouping title.

type

String

default

Highlights

path

config.tags.highlight.head

tags.highlight.text

How this tag will display as a label.

type

String

default

highlight

path

config.tags.highlight.text

tags.highlight.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

Note
This technically does not have to be a “Slug” String, if the system permits spaces. It just needs to exactly match whatever String the remote API returns to represent the label/tag.
type

String

default

highlighted

path

config.tags.highlight.slug

tags.highlight.icon

The icon to use for issues so-tagged.

type

String

default

star

path

config.tags.highlight.icon

tags.highlight.drop

Whether to drop this tag when creating a RHYML object from API source. Basically decides whether this tag is user-facing.

type

Boolean

default

false

path

config.tags.highlight.drop

tags.highlight.groupable

Whether this tag can be used to group issues in the release history.

type

Boolean

default

true

path

config.tags.highlight.groupable

tags.breaking

The tag, label, or toggle that indicates a potentially disruptive change.

tags.breaking.head

How this tag will display as a grouping title.

type

String

default

Breaking Changes

path

config.tags.breaking.head

tags.breaking.text

How this tag will display as a label.

type

String

default

Breaking

path

config.tags.breaking.text

tags.breaking.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

Note
This technically does not have to be a “Slug” String, if the system permits spaces. It just needs to exactly match whatever String the remote API returns to represent the label/tag.
type

String

default

breaking

path

config.tags.breaking.slug

tags.breaking.icon

The icon to use for issues so-tagged.

type

String

default

exclamation-triangle

path

config.tags.breaking.icon

tags.breaking.drop

Whether to drop this tag when creating a RHYML object from API source. Basically decides whether this tag is user-facing.

type

Boolean

default

false

path

config.tags.breaking.drop

tags.breaking.groupable

Whether this tag can be used to group issues in the release history.

type

Boolean

default

true

path

config.tags.breaking.groupable

tags.removal

The tag, label, or toggle that indicates a change includes a feature removal.

tags.removal.head

How this tag will display as a grouping title.

type

String

default

Feature Removals

path

config.tags.removal.head

tags.removal.text

How this tag will display as a label.

type

String

default

Removed

path

config.tags.removal.text

tags.removal.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

Note
This technically does not have to be a “Slug” String, if the system permits spaces. It just needs to exactly match whatever String the remote API returns to represent the label/tag.
type

String

default

removal

path

config.tags.removal.slug

tags.removal.icon

The icon to use for issues so-tagged.

type

String

default

sign-out

path

config.tags.removal.icon

tags.removal.drop

Whether to drop this tag when creating a RHYML object from API source. Basically decides whether this tag is user-facing.

type

Boolean

default

false

path

config.tags.removal.drop

tags.removal.groupable

Whether this tag can be used to group issues in the release history.

type

Boolean

default

true

path

config.tags.removal.groupable

tags.deprecation

The tag, label, or toggle that indicates an issue includes a feature discontinuation announcement.

tags.deprecation.head

How this tag will display as a grouping title.

type

String

default

Deprecations

path

config.tags.deprecation.head

tags.deprecation.text

How this tag will display as a label.

type

String

default

Deprecated

path

config.tags.deprecation.text

tags.deprecation.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

Note
This technically does not have to be a “Slug” String, if the system permits spaces. It just needs to exactly match whatever String the remote API returns to represent the label/tag.
type

String

default

deprecation

path

config.tags.deprecation.slug

tags.deprecation.icon

The icon to use for issues so-tagged.

type

String

default

exclamation-triangle

path

config.tags.deprecation.icon

tags.deprecation.drop

Whether to drop this tag when creating a RHYML object from API source. Basically decides whether this tag is user-facing.

type

Boolean

default

false

path

config.tags.deprecation.drop

tags.deprecation.groupable

Whether this tag can be used to group issues in the release history.

type

Boolean

default

true

path

config.tags.deprecation.groupable

tags.security

The tag, label, or toggle that indicates a change includes a security-related alteration.

tags.security.head

How this tag will display as a grouping title.

type

String

default

Security Fixes

path

config.tags.security.head

tags.security.text

How this tag will display as a label.

type

String

default

Security

path

config.tags.security.text

tags.security.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

Note
This technically does not have to be a “Slug” String, if the system permits spaces. It just needs to exactly match whatever String the remote API returns to represent the label/tag.
type

String

default

security

path

config.tags.security.slug

tags.security.icon

The icon to use for issues so-tagged.

type

String

default

shield

path

config.tags.security.icon

tags.security.drop

Whether to drop this tag when creating a RHYML object from API source. Basically decides whether this tag is user-facing.

type

Boolean

default

false

path

config.tags.security.drop

tags.security.groupable

Whether this tag can be used to group issues in the release history.

type

Boolean

default

true

path

config.tags.security.groupable

tags.experimental

The tag, label, or toggle that indicates a feature that is not yet stable or may not be permanent.

tags.experimental.head

How this tag will display as a grouping title.

type

String

default
Experimental Features
path

config.tags.experimental.head

tags.experimental.text

How this tag will display as a label.

type

String

default

Experimental

path

config.tags.experimental.text

tags.experimental.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

Note
This technically does not have to be a “Slug” String, if the system permits spaces. It just needs to exactly match whatever String the remote API returns to represent the label/tag.
type

String

default

experimental

path

config.tags.experimental.slug

tags.experimental.icon

The icon to use for issues so-tagged.

type

String

default

flask

path

config.tags.experimental.icon

tags.experimental.drop

Whether to drop this tag when creating a RHYML object from API source. Basically decides whether this tag is user-facing.

type

Boolean

default

false

path

config.tags.experimental.drop

tags.experimental.groupable

Whether this tag can be used to group issues in the release history.

type

Boolean

default

true

path

config.tags.experimental.groupable

tags.internal

The tag, label, or toggle that indicates an issue documents a feature that is not intended for “public” use or visibility.

tags.internal.head

How this tag will display as a grouping title.

type

String

default

Internal Changes

path

config.tags.internal.head

tags.internal.text

How this tag will display as a label.

type

String

default

Internal

path

config.tags.internal.text

tags.internal.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

Note
This technically does not have to be a “Slug” String, if the system permits spaces. It just needs to exactly match whatever String the remote API returns to represent the label/tag.
type

String

default

internal

path

config.tags.internal.slug

tags.internal.icon

The icon to use for issues so-tagged.

type

String

default

lock

path

config.tags.internal.icon

tags.internal.drop

Whether to drop this tag when creating a RHYML object from API source. Basically decides whether this tag is user-facing.

type

Boolean

default

false

path

config.tags.internal.drop

tags.internal.groupable

Whether this tag can be used to group issues in the release history.

type

Boolean

default

true

path

config.tags.internal.groupable

tags.changelog

The tag, label, or toggle that indicates an issue should appear in the Changelog even if it does not have a Release Note.

There is no icon associated with changelog-tagged issues, as it is only declaring that an issue belongs in the Changelog.

tags.changelog.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

Note
This technically does not have to be a “Slug” String, if the system permits spaces. It just needs to exactly match whatever String the remote API returns to represent the label/tag.
type

String

default

changelog

path

config.tags.changelog.slug

tags.changelog.drop

Whether to drop this tag when creating a RHYML object from API source. Basically decides whether this tag is user-facing.

type

Boolean

default

true

path

config.tags.changelog.drop

tags.changelog.groupable

Whether this tag can be used to group issues in the release history.

type

Boolean

default

false

path

config.tags.changelog.groupable

tags.release_note_needed

The tag, label, or toggle that indicates an issue requires a release note to be written. This is used by the rhx CLI to determine which issues are expected to contain release notes when the release-note content is empty. This tag can be automatically removed, and it does not show up in published Changelog or Release Notes (unless you add it).

tags.release_note_needed.slug

The literal string used in the Issues system for tagging or labeling an issue to be handled, if different than the key name.

Note
This technically does not have to be a “Slug” String, if the system permits spaces. It just needs to exactly match whatever String the remote API returns to represent the label/tag.
type

String

default

release_note_needed

path

config.tags.release_note_needed.slug

tags.release_note_needed.drop

Whether to drop this tag when creating a RHYML object from API source. Basically decides whether this tag is user-facing.

type

Boolean

default

true

path

config.tags.release_note_needed.drop

tags.release_note_needed.groupable

Whether this tag can be used to group issues in the release history.

type

Boolean

default

false

path

config.tags.release_note_needed.groupable

tags.<your_tag_name>

Unlimited custom tags of your choosing, associated with a tag, label, or toggle in the Issues system or manually assignable in RHYML. These property represents any arbitrarily named tags you might wish to add. No slug sub-property is available because the name of this property should exactly match your tag/label.

tags.<your_tag_name>.head

How this tag will display as a grouping title.

tags.<your_tag_name>.text

How this tag will display as a label.

tags.<your_tag_name>.icon

The icon to use for issues so-tagged.

tags.<your_tag_name>.drop

Whether to drop this tag when creating a RHYML object from API source. Basically decides whether this tag is user-facing.

tags.<your_tag_name>.groupable

Whether this tag can be used to group issues in the release history.

paths

The configuration for the paths to include in the release history listings.

paths.drafts_dir

The path to the output directory for generated drafts (YAML, Markdown, AsciiDoc).

type

Path

default

_drafts

path

config.paths.drafts_dir

paths.enrich_dir

The path to the output directory for enriched files (HTML, PDF).

type

Path

default

_publish

path

config.paths.enrich_dir

paths.output_dir

The base directory from which any other output paths are relative. This is the parent directory for config.paths.drafts_dir and config.paths.enrich_dir. It also serves as a base path for any argued files.

Example: If this property is set to _output, and config.paths.drafts_dir is _drafts, then running rhx 1.1.0 --md --yaml --asciidoc would generate the files at _releasehx/_drafts/.

type

Path

default

.

path

config.paths.output_dir

paths.draft_filename

The filename template for the draft files.

May include {{ version }} and {{ format_ext }} as placeholders, where format_ext is determined at file-write time and based on preferences defined in the config.extensions block.

type

FileName

templating

liquid, delayed rendering

default
{{ version }}.{{ format_ext }}
path

config.paths.draft_filename

paths.enrich_filename

The filename template for the enriched files.

May include {{ version }} and {{ format_ext }} as placeholders, where format_ext.

Published file extensions must be: .html, .pdf. They can be set with [conf_ppty_extensions_html] and [conf_ppty_extensions_pdf] properties, respectively.

type

FileName

templating

liquid, delayed rendering

default
release-history-{{ version }}.{{ format_ext }}
path

config.paths.enrich_filename

paths.payloads_dir

The path to the directory for storing API payloads. This is used to store the raw API responses for debugging and reference.

type

Path

default

_payloads

path

config.paths.payloads_dir

paths.cache

Settings for the ReleaseHx application cache.

paths.cache.enabled

Enable automatic caching of API responses to improve performance and reduce API calls.

type

Boolean

default

false

path

config.paths.cache.enabled

paths.cache.ttl_hours

Time-to-live for cached API responses in hours. After this time, cached responses will be considered stale and fresh data will be fetched from the API.

type

Integer

default

24

path

config.paths.cache.ttl_hours

paths.cache.dir

The directory where cached API responses are stored. Cache files are organized by API type, project, and version.

type

Path

default

.releasehx/cache

path

config.paths.cache.dir

paths.cache.prompt_gitignore

Quietly check the project’s git status after writing to cache and, if cache is found untracked, suggest adding this cache path to .gitignore or deleting and disabling caching.

type

Boolean

default

true

path

config.paths.cache.prompt_gitignore

paths.templates_dir

The path to the templates directory.

type

Path

default

_templates

path

config.paths.templates_dir

paths.mappings_dir

The path to the directory containing user-defined API mappings.

ReleaseHx checks here first for a file named <origin_source_name>.yaml or <origin_source_name>.yml, where <origin_source_name> is set in the origin.source property. If no file is found, the mapping is expected to be supplied by the gem (see <GEM_ROOT>/mappings/).

type

String

default

_mappings

path

config.paths.mappings_dir

paths.api_clients_dir

The path to the directory containing user-defined API client definitions.

ReleaseHx checks here first for a file named <api_from_name>.yaml, where <api_from_name> is set in the config.origin.source` property. If no file is found, the client class is expected to be supplied by the gem (see <GEM_ROOT>/lib/releasehx/apis/).

type

String

default

_apis

path

config.paths.api_clients_dir

modes

Default settings for rhx command executions.

modes.wrapped

Include (or exclude) head, header, and footer elements when enriching to HTML.

type

Boolean

default

false

path

config.modes.wrapped

modes.html_frontmatter

Include frontmatter in the rendered HTML.

See the templates.page_frontmatter property for details.

type

Boolean

default

true

path

config.modes.html_frontmatter

modes.markdown_frontmatter

Include frontmatter in Markdown drafts.

Uses the templates.markdown_frontmatter template.

type

Boolean

default

false

path

config.modes.markdown_frontmatter

modes.asciidoc_frontmatter

Include frontmatter in AsciiDoc drafts.

Uses the templates.asciidoc_frontmatter template.

modes.fetch

What to fetch when gathering issues from API.

Valid entries:

  • all-tagged — fetches issues with release_note_needed tag.

type

String

default

notes-only

path

config.modes.fetch

modes.remove_excess_lines

Reduces N+ consecutive blank lines to N lines.

type

Integer

default

1

path

config.modes.remove_excess_lines

rhyml

Settings related to RHYML data objects and documents.

rhyml.markup

The markup format for the note or memo properties of RHYML objects.

Change to asciidoc to convert upstream Markdown to AsciiDoc.

This setting can be set (and overridden) with the $config.markup property in any given RHYML document.

type

String

default

markdown

path

config.rhyml.markup

rhyml.chid

The template for automatic change ID/slug construction, if available at draft-time.

A liquid template with access to local variables including:

Release variables
  • release.code

  • release.date

  • release.hash

Work/change item variables
  • change.tick

  • change.hash

  • change.type

  • change.part

  • change.summ

The template established here is only for drafting chid slugs. It is not used down the line to validate chid entries, which will be valid as long as they are Slug-formatted strings.

type

Slug

templating

liquid, delayed rendering

default
{{- change.tick }}-{{ change.summ | truncate: 20 | slugify }}
path

config.rhyml.chid

rhyml.empty_notes

What to do for issues that lack a release note but have the release_note_needed tag (or a label otherwise declared in config.tags.release_note_needed.slug).

  • skip the issue when drafting notes (can update with --amend)

  • empty include the issue with an empty note

  • dump the complete issue body/description and commit message as the note property

type

String

default

skip

path

config.rhyml.empty_notes

rhyml.empty_notes_content

The content to use for empty notes when config.rhyml.empty_notes is set to 'empty'

type

String

default

RELEASE NOTE NEEDED

path

config.rhyml.empty_notes_content

rhyml.max_parts

The maximum number of affected part categories that can be recorded for a single change.

When 0, part records are disabled for all changes. When 1, only one part is allowed per change (String). When 2 or more, a single affiliated part category may be recorded using the part property, but more than one must be recorded using the parts property (Array).

type

Integer

default

1

path

config.rhyml.max_parts

rhyml.pasterize_summ

Whether to convert verbs in the summ property to past tense when drafting. Replaces common words like adds with added, fix with fixed, etc.

type

Boolean

default

false

path

config.rhyml.pasterize_summ

rhyml.pasterize_head

Whether to convert verbs in the head property to past tense when drafting. Replaces common words like adds with added, fix with fixed, etc.

type

Boolean

default

false

path

config.rhyml.pasterize_head

history

Configurations for the overall document, when applicable.

history.head

The header for the release history output.

type

String

templating

liquid, delayed rendering

default
Release History -- {{ release.code }} - {{ release.date }}
path

config.history.head

history.htag

The heading level (H1, H2, etc) for the release history header.

type

String

default

h1

path

config.history.htag

history.markdown_frontmatter

Designates the content inserted at the top of Markdown files as document-level metadata.

A Liquid template to be prepended at the top of Markdown draft files.

Templates may contain the following variables, automatically generated, as applicable:

  • date (DateTime)

  • version (String)

  • title (String)

type

Liquid

default
---
title: Release History for {{ release.code }}
version: {{ release.code }}
date: {{ release.date }}
---
path

config.history.markdown_frontmatter

history.asciidoc_frontmatter

Designates the way front-matter is inserted at the top of AsciiDoc files. Several variables are available to templates.

AsciiDoc frontmatter templates may also contain AsciiDoc attribute placeholders.

type

Liquid

default
:page-title: Release History for {{ release.code }}
:page-version: {{ release.code }}
:page-date: {{ release.date }}
path

config.history.asciidoc_frontmatter

history.html_frontmatter

Designates the way front-matter is inserted at the top of unwrapped rendered HTML.

The frontmatter property is a Liquid template that is inserted at the top of the rendered HTML file.

It may include {{ title }}, {{ version }}, {{ date }}, as well as any vars-scoped variables as you pass in.

type

Liquid

default
---
title: Release History for {{ release.code }}
version: {{ release.code }}
date: {{ release.date }}
---
path

config.history.html_frontmatter

history.items

Settings pertaining to displayed items across Changelog and Release Notes sections.

Most of these settings can be defined separately for each section under config.changelog.items and config.notes.items. If an identically named setting exists, it will override the primary designator defined in this config.history.items block.

history.items.allow_redundant

Whether to allow duplicate entries in a given section, for instance across groups for part:group sorts where a change affects multiple parts.

type

Boolean

default

false

path

config.history.items.allow_redundant

history.items.metadata_labels

If and where to display icons in relation to labels in item metadata.

Use before or after to choose a spot, none or '$nil' to disable.

type

String

default

before

path

config.history.items.metadata_labels

history.items.metadata_icons

Whether to include icons for metadata in item metadata.

type

Boolean

default

before

path

config.history.items.metadata_icons

history.items.show_lead

Whether to include the lead-in text for the section in the item metadata. This is useful for displaying the section header in the item metadata.

type

Boolean

default

false

path

config.history.items.show_lead

history.items.show_type_label

Whether to show the type label in the item metadata output. If false, the type will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.type_label property, which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.history.items.show_type_label

history.items.show_parts_label

Whether to show the parts label in the item metadata output. If false, parts will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.parts_label property (and optionally the config.history.labeling.part_label), which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.history.items.show_parts_label

history.items.show_tags_label

Whether to show the tags label in the item metadata output. If false, tags will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.tags_label property (and optionally the config.history.labeling.tag_label), which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.history.items.show_tags_label

history.items.show_lead_label

Whether to show the lead label in the item metadata output. If false, the lead will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.lead_label property, which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.history.items.show_lead_label

history.items.show_auths_label

Whether to show the authors label in the item metadata output. If false, authors will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.auth_label property, which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.history.items.show_auths_label

history.labeling

Settings for labeling items in the release history output. These properties establish how metadata and other elements apply to a given subject’s nomenclature. If you want to refer to “tags” as “labels” or “parts” as “components”, map those namespaces here.

history.labeling.singularize_labels

Whether to singularize labels in the output when only one instance of the category is present. For instance, if a change has only one part and the conf_ppty_history_labeling_part_label is set to Part, the output will use labeling like Part: instead of Parts:.

This also applies to tag_label and auth_label as well as the part_label. The type and lead labels are not affected by this setting.

type

Boolean

default

true

path

config.history.labeling.singularize_labels

history.labeling.type_label

The label to use for the type of change. Defaults to the type.text property of the change.

type

String

default

type

path

config.history.labeling.type_label

history.labeling.type_icon

The icon to use for the type of change. Defaults to the type.icon property of the change.

history.labeling.parts_label

The label to use for the part/component affected by the change.

type

String

default

Components

path

config.history.labeling.parts_label

history.labeling.part_label

The label to use for the singular part/component affected by the change, when only one part is permitted.

This value will apply either when config.rhyml.max_parts is set to 1 or when the change has only one part and config.history.labeling.singularize_labels is true.

type

String

default

Part

path

config.history.labeling.part_label

history.labeling.parts_icon

The icon to use for the part/component affected by the change.

type

String

default

puzzle-piece

path

config.history.labeling.parts_icon

history.labeling.tags_label

The tags associated with the change, if any. Defaults to an empty array.

type

Array

default

Tags

path

config.history.labeling.tags_label

history.labeling.tag_label

The label to use for the singular tag associated with the change, when only one tag is permitted.

This value will apply either when config.rhyml.max_parts is set to 1 or when the change has only one tag and config.history.labeling.singularize_labels is true.

In supporting templates, this label will only be displayed if the show_tags_label` setting is true for the relevant section.

type

String

default

Tag

path

config.history.labeling.tag_label

history.labeling.tags_icon

The icon to use for the tags associated with the change.

type

String

default

tags

path

config.history.labeling.tags_icon

history.labeling.lead_label

The label to use for the lead contributor of the change.

type

String

default

Contributed by

path

config.history.labeling.lead_label

history.labeling.lead_icon

The icon to use for the lead contributor of the change.

type

String

default

user

path

config.history.labeling.lead_icon

history.labeling.auths_label

The label to use for the authors of the change. This is used when multiple authors are present.

type

String

default

Contributors

path

config.history.labeling.auths_label

history.labeling.auth_label

The label to use for the singular author of the change, when only one author is listed and config.history.labeling.singularize_labels is true.

history.labeling.join_string

The string to use to join multiple tags, parts, or authors in the output. Defaults to a comma and space (`, `).

type

String

default

,

path

config.history.labeling.join_string

changelog

The configuration for the changelog output.

changelog.head

The header for the changelog output.

type

String

templating

liquid, delayed rendering

default

Changelog

path

config.changelog.head

changelog.text

The text for the changelog output. Change to null to hide.

type

String

templating

liquid, delayed rendering

default
Summaries of all user-facing changes made since the previous release.
path

config.changelog.text

changelog.htag

The heading level (H1, H2, etc) for the changelog section header.

type

String

default

h2

path

config.changelog.htag

changelog.spot

Where in the document to place the changelog (1 = top, 2 = bottom).

type

Integer

default

2

path

config.changelog.spot

changelog.sort

The sort order for the changelog output.

Indicate whether you wish to group output by this sort criterion, or else just order by that criteria, with or without a label denoting the criterion.

If <criterion>:group (default), the output will be grouped into sections with the group instance If <criterion>:grouping1, the criterion will be added to the first of 2 grouping tiers into which the output will be divided. If <criterion>:grouping2, the criterion will be added to the second of 2 grouping tiers into which the output will be divided. If <criterion>:label, the output will be order by the criterion, with a label indicating the criterion. If <criterion>:none, the output will be ordered by the criterion, with no label.

For example:

sort:
  - 'part:group'
  - 'type:label'

Would produce something like:

## Web UI

- Feature description or summary [New feature]

- Another feature description or summary [New feature]

- Improvement description or summary [Improvement]

## Backend

- Feature description or summary [New feature]

- Bug fix description or summary [Bug Fixes]

For 2-tiered grouping arrangements, use something like:

sort:
  - 'part:grouping1'
  - 'type:grouping2'

This would output for instance:

## Web UI

### New features
- Feature description or summary
- Another feature description or summary

### Improvements
- Improvement description or summary

You may also use tag-based groupings, but the tags must be listed explicitly.

sort:
  - 'breaking:group'
  - 'deprecation:group'
  - 'type:group'
  - 'part:label'

This would output something akin to:

## Breaking Changes
- We are breaking this thing! [Web UI]

## Deprecations
- We are deprecating this thing! [Backend]

## New features
- Feature description or summary [Web UI]
- Another feature description or summary [Web UI]

## Improvements
- Improvement description or summary [Backend]
type

Array

default
- part:grouping1
path

config.changelog.sort

changelog.items

Settings that affect the frame/shape and arrangement of individual changelog entries.

changelog.items.frame

The layout for the changelog entry display.

Can be ordered, unordered, paragraph, or basic.

type

String

default

unordered

path

config.changelog.items.frame

changelog.items.allow_redundant

Whether to allow duplicate entries in a given section, for instance across groups for part:group sorts where a change affects multiple parts.

type

Boolean

default

false

path

config.changelog.items.allow_redundant

changelog.items.metadata_labels

If and where to display icons in relation to labels in item metadata.

Use before or after to choose a spot, none or '$nil' to disable.

type

String

default

before

path

config.changelog.items.metadata_labels

changelog.items.metadata_icons

Whether to include icons for metadata in item metadata.

type

Boolean

default

before

path

config.changelog.items.metadata_icons

changelog.items.show_lead

Whether to include the lead-in text for the section in the item metadata. This is useful for displaying the section header in the item metadata.

type

Boolean

default

false

path

config.changelog.items.show_lead

changelog.items.show_type_label

Whether to show the type label in the item metadata output. If false, the type will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.type_label property, which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.changelog.items.show_type_label

changelog.items.show_parts_label

Whether to show the parts label in the item metadata output. If false, parts will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.parts_label property (and optionally the config.history.labeling.part_label), which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.changelog.items.show_parts_label

changelog.items.show_tags_label

Whether to show the tags label in the item metadata output. If false, tags will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.tags_label property (and optionally the config.history.labeling.tag_label), which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.changelog.items.show_tags_label

changelog.items.show_lead_label

Whether to show the lead label in the item metadata output. If false, the lead will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.lead_label property, which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.changelog.items.show_lead_label

changelog.items.show_auths_label

Whether to show the authors label in the item metadata output. If false, authors will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.auth_label property, which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.changelog.items.show_auths_label

notes

The configuration for the Release Notes listing section.

notes.head

The header for the notes output.

type

String

templating

liquid, delayed rendering

default

Release Notes

path

config.notes.head

notes.text

The text for the release notes output. Change to null to hide.

type

String

templating

liquid, delayed rendering

default
Descriptions of any specially notable changes or additions since the previous release.
path

config.notes.text

notes.htag

The heading level (H1, H2, etc) for the release notes section header.

type

String

default

h2

path

config.notes.htag

notes.spot

Where in the document to place the Release Notes relative to the Changelog.

type

Integer

default

1

path

config.notes.spot

notes.sort

The sort order for the release notes output.

Indicate whether you wish to group output by this sort criterion, or else just order by that criteria, with or without a label denoting the criterion.

If <criterion>:group (default), the output will be grouped into sections with the group instance If <criterion>:grouping1, the criterion will be added to the first of 2 grouping tiers into which the output will be divided. If <criterion>:grouping2, the criterion will be added to the second of 2 grouping tiers into which the output will be divided. If <criterion>:label, the output will be order by the criterion, with a label indicating the criterion. If <criterion>:none, the output will be ordered by the criterion, with no label.

For example:

sort:
  - 'part:group'
  - 'type:label'

Would produce something like:

## Web UI

- Feature description or summary [New feature]

- Another feature description or summary [New feature]

- Improvement description or summary [Improvement]

## Backend

- Feature description or summary [New feature]

- Bug fix description or summary [Bug Fixes]

For 2-tiered grouping arrangements, use something like:

sort:
  - 'part:grouping1'
  - 'type:grouping2'

This would output for instance:

## Web UI

### New features
- Feature description or summary
- Another feature description or summary

### Improvements
- Improvement description or summary

You may also use tag-based groupings, but the tags must be listed explicitly.

sort:
  - 'breaking:group'
  - 'deprecation:group'
  - 'type:group'
  - 'part:label'

This would output something akin to:

## Breaking Changes
- We are breaking this thing! [Web UI]

## Deprecations
- We are deprecating this thing! [Backend]

## New features
- Feature description or summary [Web UI]
- Another feature description or summary [Web UI]

## Improvements
- Improvement description or summary [Backend]
type

Array

default
- highlight:grouping1
- deprecation:grouping1
- removal:grouping1
- breaking:grouping1
- type:grouping1
- part:grouping2
path

config.notes.sort

notes.items

Settings that affect the frame/shape and arrangement of individual release-note item displays.

notes.items.frame

The layout for the release-note item display.

Can be table-cols-1, table-cols-2, desc-list, or admonition.

type

String

default

table-cols-1

path

config.notes.items.frame

notes.items.allow_redundant

Whether to allow duplicate entries in a given section, for instance across groups for part:group sorts where a change affects multiple parts.

type

Boolean

default

false

path

config.notes.items.allow_redundant

notes.items.metadata_labels

If and where to display icons in relation to labels in item metadata.

Use before or after to choose a spot, none or '$nil' to disable.

type

String

default

before

path

config.notes.items.metadata_labels

notes.items.metadata_icons

Whether to include icons for metadata in item metadata.

type

Boolean

default

before

path

config.notes.items.metadata_icons

notes.items.show_lead

Whether to include the lead-in text for the section in the item metadata. This is useful for displaying the section header in the item metadata.

type

Boolean

default

false

path

config.notes.items.show_lead

notes.items.show_type_label

Whether to show the type label in the item metadata output. If false, the type will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.type_label property, which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.notes.items.show_type_label

notes.items.show_parts_label

Whether to show the parts label in the item metadata output. If false, parts will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.parts_label property (and optionally the config.history.labeling.part_label), which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.notes.items.show_parts_label

notes.items.show_tags_label

Whether to show the tags label in the item metadata output. If false, tags will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.tags_label property (and optionally the config.history.labeling.tag_label), which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.notes.items.show_tags_label

notes.items.show_lead_label

Whether to show the lead label in the item metadata output. If false, the lead will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.lead_label property, which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.notes.items.show_lead_label

notes.items.show_auths_label

Whether to show the authors label in the item metadata output. If false, authors will be listed unlabeled in the output, for templates that support this option.

Corresponds to the config.history.labeling.auth_label property, which defines the content displayed when this property is true for a given section of the history output.

type

Boolean

default

false

path

config.notes.items.show_auths_label