All Projects → metcalfc → changelog-generator

metcalfc / changelog-generator

Licence: MIT license
GitHub Action to generate changelogs, release notes, whatever

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to changelog-generator

github-env-vars-action
🚀 GitHub Action for Environment Variables
Stars: ✭ 129 (+35.79%)
Mutual labels:  cicd, github-actions
web-extension-boilerplate
The web extension boilerplate help to set up project quickly using typescript, jest, webpack, githook, prettier and github actions
Stars: ✭ 35 (-63.16%)
Mutual labels:  cicd, github-actions
django-template
The ultimate Django template: production ready Django 3.2 with Docker, HTTPS and CI/CD using Github actions ‎️‍🔥
Stars: ✭ 20 (-78.95%)
Mutual labels:  cicd, github-actions
actions
Our Library of GitHub Actions
Stars: ✭ 49 (-48.42%)
Mutual labels:  cicd, github-actions
Github Pages Deploy Action
Automatically deploy your project to GitHub Pages using GitHub Actions. This action can be configured to push your production-ready code into any branch you'd like.
Stars: ✭ 2,507 (+2538.95%)
Mutual labels:  cicd, github-actions
github-create-release-action
Github Action that create Github Release automatically
Stars: ✭ 28 (-70.53%)
Mutual labels:  cicd, github-actions
httptest
A simple concurrent HTTP testing tool
Stars: ✭ 42 (-55.79%)
Mutual labels:  cicd, github-actions
Android-CICD
This repo demonstrates how to work on CI/CD for Mobile Apps 📱 using Github Actions 💊 + Firebase Distribution 🎉
Stars: ✭ 37 (-61.05%)
Mutual labels:  cicd, github-actions
Cml
♾️ CML - Continuous Machine Learning | CI/CD for ML
Stars: ✭ 2,843 (+2892.63%)
Mutual labels:  cicd, github-actions
django-step-by-step
A Django + Vue reference project that focuses on developer tooling and CI/CD + IaC
Stars: ✭ 86 (-9.47%)
Mutual labels:  cicd, github-actions
iOSDC2020-Talk-Sample
iOSDC 2020「GitHub ActionsでiOSアプリをCIする個人的ベストプラクティス」レギュラートークのサンプルリポジトリ
Stars: ✭ 35 (-63.16%)
Mutual labels:  github-actions
assign-author
GitHub Actions to assign author to issue or PR
Stars: ✭ 55 (-42.11%)
Mutual labels:  github-actions
releasify
A tool to release in a simpler way your module
Stars: ✭ 54 (-43.16%)
Mutual labels:  release-notes
cfn-deploy
A useful GitHub Action to help you deploy cloudformation templates
Stars: ✭ 14 (-85.26%)
Mutual labels:  github-actions
ghaction-cmake
cmake swiss army knife github docker action
Stars: ✭ 19 (-80%)
Mutual labels:  github-actions
actions-NjuHealthReport
Github Actions: 完成每日健康填报打卡,So easy
Stars: ✭ 68 (-28.42%)
Mutual labels:  github-actions
maven-settings-xml-action
Github Action to create maven settings (~/.m2/settings.xml)
Stars: ✭ 48 (-49.47%)
Mutual labels:  github-actions
pangyo-smilecook
🍱 Github Actions를 활용한 판교 한식뷔페 스마일쿡 식단 슬랙봇
Stars: ✭ 12 (-87.37%)
Mutual labels:  github-actions
actions-publish-gh-pages
🍣 A GitHub Action to publish static website using GitHub Pages
Stars: ✭ 12 (-87.37%)
Mutual labels:  github-actions
zhiiiyang
It is a self-updating personal README showing my latest tweet and reply.
Stars: ✭ 27 (-71.58%)
Mutual labels:  github-actions

Gitpod ready-to-code

Get a changelog between two references

This Action returns a markdown formatted changelog between two git references. There are other projects that use milestones, labeled PRs, etc. Those are just too much work for simple projects.

I just wanted a simple way to populate the body of a GitHub Release.

Example Release Notes

Inputs

mytoken

A GITHUB_TOKEN with the ability to pull from the repo in question. This is required.

Why do we need myToken? Read more here: https://help.github.com/en/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token#about-the-github_token-secret

head-ref

The name of the head reference. Default ${{github.sha}}.

base-ref

The name of the second branch. Defaults to the tag_name of the latest GitHub release. This must be a GitHub release. Git tags or branches will not work.

Outputs

changelog

Markdown formatted changelog.

Example usage

There are two blocks you will need:

First block

First you will need to generate the changelog itself. To get the changelog between the SHA of the commit that triggered the action and the tag of the latest release:

- name: Generate changelog
  id: changelog
  uses: metcalfc/[email protected]
  with:
    myToken: ${{ secrets.GITHUB_TOKEN }}

Or, if you have two specific references you want:

- name: Generate changelog
  id: changelog
  uses: metcalfc/[email protected]
  with:
    myToken: ${{ secrets.GITHUB_TOKEN }}
    head-ref: 'v0.0.2'
    base-ref: 'v0.0.1'

Second block

Then you can use the resulting changelog:

- name: Get the changelog
  run: |
    cat << "EOF"
    ${{ steps.changelog.outputs.changelog }}
    EOF

Simple output modifications

Some folks have asked if the action can support changing the output. For example:

  • Reverse order UPDATE as of 2021/11/22 chronological is the default and it can be reversed by setting reverse: 'true' in the workflow.
  • Ignore entries that include this string.
  • Etc

In order to keep this action as simple as possible we aren't planning to add more flags or options. However since the output is just text you can write a command line to do anything you want. In issue #93 we had a user that wanted to list the changelog in reverse order and drop any entries with gh-pages. Here is how they can do that but using Bumping as the restrict word because it shows up in this projects history:

      - name: Modify the changelog
        id: modified
        run: |
          set -o noglob
          log=$(cat << "EOF" | grep -v Bumping | tac
          ${{ steps.changelog.outputs.changelog }}
          EOF
          )
          log="${log//'%'/'%25'}"
          log="${log//$'\n'/'%0A'}"
          log="${log//$'\r'/'%0D'}"
          echo "::set-output name=modified::$log"
      - name: Print the modified changelog
        run: |
          cat << "EOF"
          ${{ steps.modified.outputs.modified }}
          EOF

You might be wondering about that set of escaping for the log. Thats because GitHub Actions doesn't support multiline output. Read more here.

Example use case

Generating the release notes for a GitHub Release.

Open Discussions for feature requests or questions

Issues are for folks who are actively using the action and running into an "issue" (bug, missing doc, etc).

Feature requests should be in the discussion section.. Just to set expectations the bar for a new feature getting added is going to be very high. There is a cost to adding features in the development and maintainance of the feature. So if you want to jump in and help develop and maintain lets discuss. If you want to fire off feature ideas, go for it. Just understand its very likely that without someone willing to take up the task, they won't get implemented.

Keep up-to-date with GitHub Dependabot

Since Dependabot has native GitHub Actions support, to enable it on your GitHub repo all you need to do is add the .github/dependabot.yml file:

version: 2
updates:
  # Maintain dependencies for GitHub Actions
  - package-ecosystem: 'github-actions'
    directory: '/'
    schedule:
      interval: 'daily'

Troubleshooting

Error not found

Error: Not Found

If you are seeing this error its likely that you do not yet have a GitHub release. You might have a git tag and that shows up in the release tab. The API this Action uses only works with GitHub Releases. Convert one of your tags to a release and you'll be on your way. You can check out how this repository uses this action and GitHub releases for an example.

Acknowledgements

I took the basic framework for this action from: jessicalostinspace/commit-difference-action. Thanks @jessicalostinspace.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].