Skip to main content

Changelog

Generate changelogs from git commits

The changelog stage generates release notes from git commits between the previous tag and the current tag.

Minimal config

Changelog generation works with no config — it collects all commits since the last tag.

Changelog config fields

FieldTypeDefaultDescription
sortstringascSort order: asc or desc
usestringgitSource: git (commit parsing), github (fetch commits via GitHub API), or github-native (GitHub's generated notes)
abbrevintnoneTruncate commit hashes to this length
disableboolfalseDisable changelog generation
headerstringnoneText prepended to changelog
footerstringnoneText appended to changelog
filters.excludelistnoneRegex patterns to exclude commits
filters.includelistnoneRegex patterns to include (whitelist)
groupslistnoneGroup commits by pattern

Commit grouping

Group conventional commits by type:

changelog:
  groups:
    - title: "Features"
      regexp: "^feat"
      order: 0
    - title: "Bug Fixes"
      regexp: "^fix"
      order: 1
    - title: "Documentation"
      regexp: "^docs"
      order: 2
    - title: "Other"
      regexp: ".*"
      order: 99

Filtering commits

changelog:
  filters:
    exclude:
      - "^chore"
      - "^ci"
      - "Merge pull request"

Full example

changelog:
  sort: desc
  header: |
    ## Changelog
  filters:
    exclude:
      - "^chore"
      - "^ci"
  groups:
    - title: "Features"
      regexp: "^feat"
      order: 0
    - title: "Bug Fixes"
      regexp: "^fix"
      order: 1
    - title: "Other"
      regexp: ".*"
      order: 99