Git Product home page Git Product logo

auto-changelog's Introduction

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Hi there, I'm Ardalan Amini ๐Ÿ‘‹๐Ÿป

Website LinkedIn Twitter

I'm a full-stack software engineer with more experience & focus in the backend development.

  • I enjoy participating in challenging ideas and great teams, gaining new experiences and learn new stuff.
  • 6+ years of software engineering experience.
  • Managed tasks & some product pipelines using Trello.
  • Very much focused on maintenance & clean code and structure, efficiency, performance & overall quality.

๐Ÿ“ˆ Github Stats

Github Stats Top Langs

๐ŸŒŸ Top Repositories

Express.js API Template ESLint Noir Config

auto-changelog's People

Contributors

ardalanamini avatar dependabot[bot] avatar laughedelic avatar lukesavefrogs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

auto-changelog's Issues

Change log grabs too many commit messages when tag is not latest

Recreate:

  1. Create and push some commits to your default (main) branch.
  2. List your commits. Let's say your commits look like this:
$ git log --pretty=oneline
15027957951b64cf874c3557a0f3547bd83b3ff6 Merge branch 'experiment'
a6b4c97498bd301d84096da251c98a07c7723e65 feat: Create write support
0d52aaab4479697da7686c15f77a3d64d9165190 feat: One more thing
6d52a271eda8725415634dd79daabbc4d9b6008e Merge branch 'experiment'
0b7434d86859cc7b8c3d5e1dddfed66ff742fcbc feat: Add commit function
9fceb02d0ae598e95dc970b74767f19372d61af8 feat: Update rakefile
  1. Create a tag with an older commit than the most recent on in the main branch.
git tag v1.2 0b7434d
git push origin v1.2

The release github action is triggered:

name: Create Release

on:
  push:
    tags:
      - 'v*'
jobs:
  create-release:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Changelog
        id: changelog
        uses: ardalanamini/auto-changelog@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}

The ${{ steps.changelog.outputs.changelog }} value will include all the commits:

Create write support
One more thing
Add commit function
Update rakefile

It should just checkout the tag and include only the changes between the previous tag and the current tag. Or if this is the first tag of the repository, it should include everything up to just the commit the tag refers to.

Is there a way to exclude certain commits based on a pattern?

Consider these commits:

image

They are automatic, usually I forget to amend their message to add a prefix. I'd like to exclude those from the changelog, as they appear like this:

image

Is there a way to configure the action to exclude it? (I would exclude this if it starts with "Merge"

feat: Add tag-pattern action input.

Hey there! I really fancy this action and you have done a very good job on it!
I'd just fancy requesting and favor having this implemented into the action itself:

The ability to specify a tag-pattern to select and compare latest commits with rather than all commits in a specified tag.

For example, in the specified image below, the specified tag-pattern should be player and it should retrieve the latest commits between it and the latest (similar) tag:
image

Since my changelogs currently appear as this, it just becomes unreadable and I haven't found any other workaround for it:
image

It'd be handy if they appeared similarly to the following attachment upon release, with the newly specified tag-pattern and its corresponding value of player only revealing the latest commit differences between the new and last tags with said pattern:
image

It should utilize something similar to this:
image

Thank you again maintaining this wonderful GitHub Action!

Action just doesn't work.

I have copy pasted the example code, commited with the message "ci: Testing ci", and the action just does not output anything.
::set-output name=changelog:: ##[debug]steps.generate-changelog.outputs.changelog=

Multiline commit messages are dropped

Hi! Thanks for the useful action!

I noticed that some of my commits don't make it to the changelog. I found that it happens to all commits with multiline messages. I suspect that the problem is in the commit regex:

const COMMIT_REGEX = /^([^)]*)(?:\(([^)]*?)\)|):(.*?(?:\[([^\]]+?)\]|))\s*$/;

But I'm not sure how to fix it. Could you look into it?

feat: add include-commit-links action input

Hi and thanks for this very useful action!
I'd like just one thing: a config parameter to skip adding the whole commit link.

Example:

image

As you can see after the commit name there a big link.

Thanks.

maybe a bug: in one repository it takes all commits

Hi! I'm using your very useful action in a lot of my projects, but I have a problem in just one. Although the action is the same (Copy pasted) and although I create releases and tags in the same manner, in one repo it always takes all commits instead of just taking the commits from the last release.

The GitHub action:

name: ๐Ÿ“ Generate release notes
on:
  release:
    types: [published]
  workflow_dispatch:
  
jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - name: Changelog
        uses: ardalanamini/auto-changelog@v3
        id: changelog
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          commit-types: |
            feat: ๐Ÿš€ Nuove feature
            feature: ๐Ÿš€ Nuove feature
            fix: ๐Ÿž Bugfix
            perf: ๐Ÿ“ˆ Migliorie di performance
            test: ๐Ÿ‘จโ€๐Ÿ”ฌ Test
            chore: ๐Ÿงน Pulizia codice
          default-commit-type: ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป Cose tecniche
          mention-authors: false
          include-compare: false
          semver: false
          include-commit-links: false
          include-pr-links: false

      - name: last-release-notes.md - Checkout repo
        uses: actions/checkout@v3
        
      - name: last-release-notes.md - Write
        uses: DamianReeves/write-file-action@master
        with:
          path: ./last-release-notes.md
          contents: | 
            ${{steps.changelog.outputs.changelog}}
          write-mode: overwrite 

      - name: last-release-notes.md - Commit & Push
        uses: Andro999b/[email protected]
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: main
          force: true
          message: 'Aggiornate note ultima release'

The output:

image

...and so on.

My tags:

image

I expected, as it is doing in my other repos, that it would take only the commits beginning from the v2.2.17.


Do you have any clue? Maybe is there some commit name that breaks it? Can I do something to help you investigate this?

Thanks.

bug: The prerelease output always returns false

I have set semver: true and the release type is prerelease , However I am still getting the ${{ steps.changelog.outputs.prereleas}} value false.

below is the code I have used.

  - name: Changelog
    uses: ardalanamini/auto-changelog@v3
    id: changelog
    with:
      github-token: ${{ github.token }}
      mention-authors: true
      mention-new-contributors: true
      include-compare: true
      semver: true

  - name: Append the CHANGELOG.md
    shell: bash
    run: |
      echo  ${{ steps.changelog.outputs.prerelease }}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.