Skip to main content
Guides

Issue / PR descriptions

Render a cleaned excerpt of each issue or PR body under its title.

By default, ReleaseJet renders one bullet per issue or PR with just the title. The description field lets you opt in to also showing a cleaned excerpt of the body underneath.

description: extract

Available since 1.14.0. The default is none, so existing configs render exactly as they did before.

description

"none" | "extract" | "ai" · default: "none"

Issue/PR description rendering: "none" (off, default), "extract" (cleaned first paragraph), "ai" (Pro M3a; treated as "none" in core).

The three modes

ValueEffect
noneTitle only. Default — matches output from versions ≤ 1.13.x.
extractRenders the cleaned first paragraph of each body as a sub-bullet, truncated to ~200 characters with an ellipsis.
aiReserved for AI-summarised descriptions in the Pro plugin. Treated as none in core unless @releasejet/pro is loaded with a valid license.

What extract cleans

Real-world issue and PR bodies are messy. The extractor handles the common cases so you don't end up with a wall of template text in your release notes:

  • HTML comment templates (<!-- ... -->) — stripped from the top, including multi-comment issue templates.
  • Leading ATX headers (# Title, ## Description, etc.) — skipped.
  • Leading blockquote lines (copy-pasted Slack or email quotes) — skipped.
  • Internal whitespace — collapsed to single spaces; CRLF normalised to LF.
  • Long paragraphs — truncated at the last word boundary (≤199 chars) with a single .
  • Empty / heading-only / comment-only bodies — render the title with no excerpt line and no placeholder.

Only the first paragraph (up to the next blank line) is taken — code blocks, screenshots, and follow-up details further down the body are left out of the notes.

Example

Issue body:

<!-- Bug template -->
## Description

Users were redirected to /login instead of their target after SSO callback,
so the deep link was lost completely on every sign-in attempt regardless of
provider.

With description: none (default):

- Fix login redirect bug (#142)

With description: extract:

- Fix login redirect bug (#142)
  - Users were redirected to /login instead of their target after SSO callback, so the deep link was lost completely on every sign-in attempt regardless of…

Provider coverage

ProviderSourceSupported
GitHubissues
GitHubpull_requests
GitLabissues
GitLabmerge_requests

GitLab merge-request support is not yet implemented in the CLI; once it lands, descriptions will be picked up automatically.

Tips

  • Keep the first paragraph of an issue or PR body short and self-contained — that's what ends up in the notes. Detail, repro steps, and screenshots can live further down without affecting the excerpt.
  • If your team uses an issue template with a ## Description header, you don't need to remove it before closing — the extractor skips leading headers automatically.
  • description: extract is purely additive: titles still show. If a body is empty or boilerplate-only, the bullet falls back to title-only with no empty placeholder.

Next steps