commitizen / cz-cli

The commitizen command line utility. #BlackLivesMatter
http://commitizen.github.io/cz-cli/
MIT License
16.82k stars 551 forks source link

Feature request: Git Co-author #678

Open ArrayKnight opened 5 years ago

ArrayKnight commented 5 years ago

For companies that do a fair amount of paired programming, it's valuable to be able to represent multiple authors for commits. So we use Git's co-author feature: https://help.github.com/en/articles/creating-a-commit-with-multiple-authors#creating-co-authored-commits-on-the-command-line

It would be great if this was a feature with these capabilities:

alvarolorentedev commented 2 years ago

@ArrayKnight I am currently using https://www.npmjs.com/package/cz-format-extension to achieve this using the list of contributors on package.json. You can see the code here.

const { contributors } = require('./package.json')
....
module.exports = {
  questions({inquirer}) {
    return [
      ...
      {
        type: 'checkbox',
        name: 'coauthors',
        message: 'Select Co-Authors if any:',
        choices: contributors.map(contributor => ({
            name: contributor.name,
            value: `Co-authored-by: ${contributor.name} <${contributor.email}>`,
        }))
      },
    ]
  },
  commitMessage({answers}) {
    ....
    const coauthors = answers.coauthors.join('\n');
    ....
  }
}
p-m-p commented 1 year ago

I was looking for similar solution to this but didn't find anything so added a wrapper for cz-conventional-changelog to add co-authors https://github.com/p-m-p/cz-conventional-changelog-coauthors.

Happy to provide as a proper feature to one of the core libraries if desired.

antono4 commented 1 year ago

how to Creating a commit with multiple authors