1
1
mirror of https://github.com/orhun/git-cliff.git synced 2024-12-15 06:33:23 +03:00
git-cliff/.github
Eliza Weisman 0bf499ec94
feat(commit)!: pass footer token and separator to template (#97)
* 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>
2022-07-12 15:38:16 +03:00
..
actions/run-fixtures-test chore(ci): return to nightly builds (#73) 2022-03-29 14:44:45 +03:00
fixtures feat(commit)!: pass footer token and separator to template (#97) 2022-07-12 15:38:16 +03:00
ISSUE_TEMPLATE chore(project): rename 2021-05-30 01:45:03 +03:00
workflows chore(docker): disable building arm64 docker images temporarily 2022-06-23 22:21:27 +02:00
CODEOWNERS chore(project): update code owners 2021-05-30 00:56:54 +03:00
FUNDING.yml docs(project): add FUNDING.yml 2021-05-30 14:21:28 +03:00
PULL_REQUEST_TEMPLATE.md Initial commit 2021-05-11 01:54:45 +03:00