changelog gh-release cli command
docs-builder changelog gh-release <repo> [<version>] [options]
Create changelog files and a bundle from a GitHub release by parsing pull request references from the release notes.
Only automated GitHub release notes (the default format or Release Drafter format) are supported at this time.
For general information about changelogs, go to Create release notes from changelogs.
<repo>stringrequired- Required: GitHub repository in owner/repo format (e.g., "elastic/elasticsearch" or just "elasticsearch" which defaults to elastic/elasticsearch)
<version>string-
Optional: Version tag to fetch (e.g., "v9.0.0", "9.0.0"). Defaults to "latest"
Default:
latest
--configstring-
Optional: Path to the changelog.yml configuration file. Defaults to 'docs/changelog.yml'
Constraints: symbolic links not allowed, must exist, extensions: yml, yaml, supports
~home expansion --descriptionstring- Optional: Bundle description text with placeholder support. Supports VERSION, LIFECYCLE, OWNER, and REPO placeholders. Overrides bundle.description from config.
--outputstring- Optional: Output directory for changelog files. Falls back to bundle.directory in changelog.yml when not specified. Defaults to './changelogs'
--release-datestring- Optional: Explicit release date for the bundle in YYYY-MM-DD format. Overrides GitHub release published date.
--[no-]strip-title-prefix-
Optional: Remove square brackets and text within them from the beginning of PR titles (e.g., "[Inference API] Title" becomes "Title")
Default:
false --[no-]warn-on-type-mismatch-
Optional: Warn when the type inferred from release notes section headers doesn't match the type derived from PR labels. Defaults to true
Default:
false -l--log-levelenum-
Minimum log level.
Values: trace, debug, information, warning, error, critical, none
Default:
information -c--config-sourceenum-
Override the configuration source: local, remote
Values: local, remote, embedded
--[no-]skip-private-repositories- Skip cloning private repositories
The command creates two types of output in the directory specified by --output:
- One YAML changelog file per pull request found in the release notes.
- A bundle file at
{output}/bundles/{version}-{product}-bundle.ymlthat references all created changelog files.
The product, target version, and lifecycle are inferred automatically from the release tag and the repository name (via products.yml). For example, a tag of v9.2.0 on elastic/elasticsearch creates changelogs with product: elasticsearch, target: 9.2.0, and lifecycle: ga.
The rules.bundle section of your changelog.yml applies to bundles created by this command.
For details, refer to Changelog configuration reference > rules.bundle.
# Latest release
docs-builder changelog gh-release elastic/elasticsearch
# Specific version tag
docs-builder changelog gh-release elastic/elasticsearch v9.2.0
# Short repository name (defaults to elastic/ owner)
docs-builder changelog gh-release elasticsearch v9.2.0
# Custom output directory
docs-builder changelog gh-release elasticsearch v9.2.0 \
--output ./docs/changelog \
--config ./docs/changelog.yml
# Description with placeholders
docs-builder changelog gh-release elasticsearch v9.2.0 \
--description "Elasticsearch {version} release. Download: https://github.com/{owner}/{repo}/releases/tag/v{version}"