Skip to main content

Automatically generated release notes

You can automatically generate release notes for your GitHub releases

Who can use this feature

Repository collaborators and people with write access to a repository can generate and customize automated release notes for a release.

About automatically generated release notes

Automatically generated release notes provide an automated alternative to manually writing release notes for your GitHub releases. With automatically generated release notes, you can quickly generate an overview of the contents of a release. Automatically generated release notes include a list of merged pull requests, a list of contributors to the release, and a link to a full changelog.

You can also customize your automated release notes, using labels to create custom categories to organize pull requests you want to include, and exclude certain labels and users from appearing in the output.

Creating automatically generated release notes for a new release

  1. On your GitHub Enterprise Server instance, navigate to the main page of the repository.

  2. A la derecha de la lista de archivos, haga clic en Releases. Sección Releases en la barra lateral del lado derecho

  3. Click Draft a new release. Releases draft button

  4. Type a version number for your release. Alternatively, select an existing tag.

    Releases tagged version

  5. If you have created a new tag, use the drop-down menu to select the branch that contains the project you want to release. Releases tagged branch

  6. Opcionalmente, en la parte superior derecha del cuadro de texto de descripción, selecciona el menú desplegable de Etiqueta anterior y haz clic en la etiqueta que identifica la versión anterior. Captura de pantalla en la que se muestra cómo seleccionar una etiqueta para identificar la versión anterior

  7. To the top right of the description text box, click Generate release notes. Generate release notes

  8. Check the generated notes to ensure they include all (and only) the information you want to include.

  9. Optionally, to include binary files such as compiled programs in your release, drag and drop or manually select files in the binaries box. Providing a DMG with the Release

  10. To notify users that the release is not ready for production and may be unstable, select This is a pre-release. Checkbox to mark a release as prerelease

  11. If you're ready to publicize your release, click Publish release. To work on the release later, click Save draft. Publish release and Draft release buttons

Configuring automatically generated release notes

  1. On your GitHub Enterprise Server instance, navigate to the main page of the repository.
  2. Encima de la lista de archivos, haga clic en Create new file (Crear archivo) mediante la lista desplegable Add file (Agregar archivo). "Crear archivo" en la lista desplegable "Agregar archivo"
  3. In the file name field, type .github/release.yml to create the release.yml file in the .github directory. Create new file
  4. In the file, using the configuration options below, specify in YAML the pull request labels and authors you want to exclude from this release. You can also create new categories and list the pull request labels to be included in each of them.

Configuration options

ParameterDescription
changelog.exclude.labelsA list of labels that exclude a pull request from appearing in release notes.
changelog.exclude.authorsA list of user or bot login handles whose pull requests are to be excluded from release notes.
changelog.categories[*].titleRequired. The title of a category of changes in release notes.
changelog.categories[*].labelsRequired. Labels that qualify a pull request for this category. Use * as a catch-all for pull requests that didn't match any of the previous categories.
changelog.categories[*].exclude.labelsA list of labels that exclude a pull request from appearing in this category.
changelog.categories[*].exclude.authorsA list of user or bot login handles whose pull requests are to be excluded from this category.

Example configurations

A configuration for a repository that labels semver releases

YAML
# .github/release.yml

changelog:
  exclude:
    labels:
      - ignore-for-release
    authors:
      - octocat
  categories:
    - title: Breaking Changes 🛠
      labels:
        - Semver-Major
        - breaking-change
    - title: Exciting New Features 🎉
      labels:
        - Semver-Minor
        - enhancement
    - title: Other Changes
      labels:
        - "*"

A configuration for a repository that doesn't tag pull requests but where we want to separate out Dependabot automated pull requests in release notes (labels: '*' is required to display a catchall category)

YAML
# .github/release.yml

changelog:
  categories:
    - title: 🏕 Features
      labels:
        - '*'
      exclude:
        labels:
          - dependencies
    - title: 👒 Dependencies
      labels:
        - dependencies

Further reading