Skip to content
play

GitHub Action

Format Release Notes

v1.1.0 Latest version

Format Release Notes

play

Format Release Notes

Action to format the text of the release to the milestone

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Format Release Notes

uses: Beakyn/gha-format-release-notes@v1.1.0

Learn more about this action in Beakyn/gha-format-release-notes

Choose a version

Beakyn

Format Release Notes

Generate the release notes from a milestone before creating a new release.

Pre-requisites

Create a workflow .yml file in your .github/workflows directory. An example workflow is available below. For more information, reference the GitHub Help Documentation for Creating a workflow file.

Inputs

repository: Github repository. Add the Github context value: github.repository. (required)

milestone: Milestone id, not title please. (required)

custom-row: Custom row format. You're able to use the Github issue object values ​​to build your row.
Example: "(#${issue.number}) - ${issue.title}: ${issue.body}"

custom-group-by-label: You're able to create groups by combining issue labels. You must add a collection of groups and each group hastitle and labels.

Outputs

release-notes: Formatted release notes.

Example

name: Generete release from milestone

on:
  workflow_dispatch:
    inputs:
      milestone:
        description: "Milestone ID"
        required: true
      version:
        description: "Version to be released"
        required: true

jobs:
  generate-release:
    name: Generete release from milestone
    runs-on: ubuntu-latest
    steps:
      - name: Relese notes format
        uses: Beakyn/gha-format-release-notes@v1
        id: format
        env:
          GITHUB_TOKEN: ${{ github.token }}
        with:
          # required
          repository: ${{ github.repository }}
          milestone: ${{ github.event.inputs.milestone }}

          # optional
          custom-row: "${issue.number} <--> ${issue.title}"
          custom-group-by-label: |
            [
              {
                "title": "### Feature 🎉",
                "labels": ["feature"]
              },
              {
                "title": "### Bug Fixes 🐛",
                "labels": ["bug"]
              },
              {
                "title": "### Refactor & Improvements ✨",
                "labels": ["enhancement", "refactor", "chore"]
              }
            ]

      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ github.token }}
        with:
          tag_name: ${{ github.event.inputs.version }}
          release_name: Release ${{ github.event.inputs.version }}
          body: ${{steps.format.outputs.release-notes}}
          draft: false
          prerelease: false

      - name: Close milestone
        uses: Beakyn/gha-close-milestone@master
        env:
          GITHUB_TOKEN: ${{ github.token }}
        with:
          # required
          repository: ${{ github.repository }}
          milestone: ${{ github.event.inputs.milestone }}