Home › Guide
Guide

How to make an automated changelog from GitHub

Your commits already say what changed. The work is turning them into something a customer will read. Below: how to do it by hand, step by step, and then how FoxPlug does it for you. If you only want the result, paste your repository here first.

Paste your repository and see the update

Doing it by hand

  1. 1. Collect what changed

    List the commits since your last update, without merge commits:

    git log --since="2 weeks ago" --no-merges --pretty=format:"%h %s"

    git log --since shows only commits more recent than a date, and --no-merges leaves out merge commits.git-scm.com/docs/git-log, checked 2026-09-30

  2. 2. Or let GitHub list it for a release

    GitHub can generate release notes for a release: a list of merged pull requests, a list of contributors and a link to the full changelog.docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes, checked 2026-09-30

    When you draft a new release, the Generate release notes button sits above the description field, and GitHub asks you to check the result.docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes, checked 2026-09-30

    A .github/release.yml file groups pull requests into categories by label and can leave out labels and authors.docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes, checked 2026-09-30

    What you get is a list of pull request titles. It is accurate and complete, and it is written for the people who wrote the code.

  3. 3. Name commits so they sort themselves

    Under Conventional Commits, a feat commit introduces a new feature and a fix commit patches a bug.conventionalcommits.org/en/v1.0.0, checked 2026-09-30

    With prefixes like these, a script can split the list into new features and fixes. It still cannot say why a change matters to the person using your product.

  4. 4. Rewrite it for people

    Keep a Changelog's first principle is that changelogs are for humans, not machines, and it groups changes under types such as Added and Fixed.keepachangelog.com/en/1.1.0, checked 2026-09-30

    This is the step that takes the time. Take each line and say what the user can now do:

    Commitfix(billing): allow switching billing interval during trial
    Changelog lineYou can now switch between monthly and yearly billing while you are still on your trial.
  5. 5. Publish it, then announce it

    Put the entry on your changelog page. Then write the announcement again for each place your users are: a post for X, a longer one for LinkedIn, a short one for Bluesky, Threads or Mastodon, and the update email. Each one is written from scratch, because each platform reads differently.

Steps 1 to 3 can be scripted. Steps 4 and 5 are writing, and they are the ones that wait until someone has time.

How FoxPlug does it

FoxPlug does steps 1, 4 and 5 for you, and leaves the last word to you.

Try it on your own repository with the box at the top of this page. No account is needed to see the result. What each plan includes is on the pricing page.

Comparing changelog tools?

If you already use a changelog tool, these pages say what it is good at and where FoxPlug is different, with every line linked to the tool's own page.

Sources