* feat: support splitting commits by lines
* refactor(config): update the description for split_commits
* style(fmt): apply formatting via rustfmt
* refactor(test): create helper method for split_commits test
* fix(changelog): change the default behaviour for split_commits when it is not provided
* test(fixture): add test fixture for splitting commits
* docs(readme): update table of contents
* docs(readme): add warning about split_commits flag
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* fix(commit): pass footer token and separator to template
Currently, when a conventional commit has footers, only the footers'
values (the part after the separator token, such as `:`) are passed to
the template. This means that when multiple footers, such as
`Signed-off-by:` and `Co-authored-by:` are present, it isn't currently
possible for the template to determine the name of the footer. This
makes actually using data from footers in templates impractical in most
cases.
This commit fixes this by changing the `Serialize` impl for `Commit` to
pass the commit's footers as a structured object rather than a string.
The structured `Footer` type includes the footer's token (which is what
`git_conventional` calls the name preceding the separator token), the
separator, and the value.
I didn't make the new `Footer` type and `Commit::footers` method public,
because it isn't strictly necessary to add them to the `git-cliff-core`
public API to fix this issue. However, we can make them public in a
follow-up PR if this is considered useful.
Fixes#96
BREAKING CHANGE:
This changes type of the `commit.footers` array exposed to templates.
Currently, when a template uses `commit.footers`, it can treat the
values as strings. After this change, the footer object will need to
have its fields unpacked in order to use them.
However, the impact of this breakage is probably not that severe, since
it's not really practical to use footers in templates with the current
system.
* docs(README): discuss footers in README
Signed-off-by: Eliza Weisman <eliza@buoyant.io>
* docs(examples): Add footers to `detailed.toml`
Signed-off-by: Eliza Weisman <eliza@buoyant.io>
* refac(commit): address review feedback
Signed-off-by: Eliza Weisman <eliza@buoyant.io>
* docs(README): address README review feedback
Signed-off-by: Eliza Weisman <eliza@buoyant.io>
* refactor(example): update detailed example about newline issues
* test(fixture): add test fixture for commit footers
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* fix: issue #50
* chore: Check some lints and styles
* docs: add scope example
* chore: fix some typos in cargo docs
* style: rerun cargo fmt and cargo lint
* style(config): update wording in the comment
* test(config): add tests about specifying the scope
* test(fixture): add test fixture for custom scope
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* docs(readme): add `@favware/cliff-jumper` package
Honestly not entirely sure what the definition of a "similar project" is but I figured I'd give it a shot adding this as I recently finished it.
* Update README.md
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>