changelog note cli command
docs-builder changelog note [options]
Create a changelog YAML for content that is not tied to a pull request. Typical uses are known issues and security advisories. For details and examples, go to Create changelogs.
Files are named note-{slug}.yml. Each product lists products[].versions — the release versions the change applies to.
--namestring- Explicit slug for the note filename. Defaults to a slug derived from the title.
--productsstring- Products and versions in the format
"product versions [lifecycle], ..."whereversionsis a|-separated list of release versions (for example,"elasticsearch 9.3.0|9.4.0 ga"). Unlikechangelog add, the middle slot is required and is a version list, not omitted. The valid product identifiers are listed in products.yml. --actionstring- Optional action text.
--areasstring[]-
Optional area tags.
Repeatable: pass
--areasmultiple times to supply more than one value --concise-
Omit schema reference comments from the generated YAML.
Default:
false --configstring-
Path to the changelog.yml configuration file.
Constraints: symbolic links not allowed, must exist, extensions: yml, yaml
--descriptionstring- Additional information (max 600 characters). Optional.
--no-extract-release-notes-
Skip extracting release note text from PR/issue descriptions.
Default:
false --no-extract-issues-
Skip extracting linked issues/PRs from PR/issue body.
Default:
false --feature-idstring- Optional feature ID.
--highlight- Mark the entry as a highlight.
--impactstring- Optional impact text.
--issuesstring[]-
URLs of related issues. Optional citation field; listing issues does not attach the file to a release.
Repeatable: pass
--issuesmultiple times to supply more than one value --ownerstring- GitHub owner. Falls back to bundle.owner or "elastic".
--outputstring- Output directory.
--prsstring[]-
Optional PR URLs (cited but not used as anchor).
Repeatable: pass
--prsmultiple times to supply more than one value --repostring- GitHub repository name.
--strip-title-prefix-
Strip a repo-name prefix from the title.
Default:
false --strict-fetch-
Treat GitHub fetch failures as errors.
Default:
false --subtypestring- Entry subtype.
--titlestring- A short, user-facing headline (max 80 characters). Required.
--typestring- The type of change. For valid values, see ChangelogEntryType.cs. Required.
-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
--skip-private-repositories- Skip cloning private repositories
-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
--skip-private-repositories- Skip cloning private repositories
The --products option uses the same positional slots as changelog add, but the middle slot is a |-separated version list and is required:
"elasticsearch 9.3.0 ga"— one version"elasticsearch 9.3.0|9.4.0|9.5.0 ga"— multiple versions"cloud-serverless 2025-08-05"— date-based release, one version
A changelog that spans products can declare each product separately:
docs-builder changelog note \
--title "Known issue with aggregations" \
--type known-issue \
--products "elasticsearch 9.3.0|9.4.0 ga" \
--products "kibana 9.3.0|9.4.0 ga"
The command writes a note-{slug}.yml file to the configured output directory:
title: Known issue with aggregations
type: known-issue
products:
- product: elasticsearch
versions: [9.3.0, 9.4.0]
lifecycle: ga
Upload is the same as for other changelog YAML files. The scrubber writes two indexes per note:
changelog/{org}/{repo}/notes-{product}-{version}.json— notes for that product and version.changelog bundlereads this key first.changelog/{org}/{repo}/notes-{version}.json— the union of notes for that version across products, kept for older CLI pins.
{changelog} does not read these indexes. It loads published bundle YAML (and amend sidecars listed in bundle/{product}/registry.json).
If the release bundle for that product and version or date has already shipped when you upload, the scrubber generates an amend file so the changelog reaches published docs without a manual rerun.
If there is no existing or planned bundle for that product and version or date, you can create a bundle from a path list that contains all the relevant changelogs. Refer to Bundle by file paths.
The same configuration-file checks that apply to changelog add apply here:
valid products, lifecycles, and type values are validated against docs/changelog.yml when it exists.
A version in --products for changelog add is an error; use changelog note instead.