Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit bbae8e0

Browse files
feat(changelog): expose commits sha1, author and author_email in changelog tree (fix #987) (#1013)
1 parent c8a9008 commit bbae8e0

File tree

3 files changed

+27
-5
lines changed

3 files changed

+27
-5
lines changed

‎commitizen/changelog.py‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,12 @@ def process_commit_message(
200200
changes: dict[str | None, list],
201201
change_type_map: dict[str, str] | None = None,
202202
):
203-
message: dict = parsed.groupdict()
203+
message: dict = {
204+
"sha1": commit.rev,
205+
"author": commit.author,
206+
"author_email": commit.author_email,
207+
**parsed.groupdict(),
208+
}
204209

205210
if processed := hook(message, commit) if hook else message:
206211
messages = [processed] if isinstance(processed, dict) else processed

‎docs/customization.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,9 @@ Each `Change` has the following fields:
505505
| ---- | ---- | ----------- |
506506
| scope | `str | None` | An optional scope |
507507
| message | `str` | The commit message body |
508+
| sha1 | `str` | The commit `sha1` |
509+
| author | `str` | The commit author name |
510+
| author_email | `str` | The commit author email |
508511

509512
!!! Note
510513
The field values depend on the customization class and/or the settings you provide

‎tests/test_changelog.py‎

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,10 +1084,24 @@ def test_generate_tree_from_commits(gitcommits, tags, merge_prereleases):
10841084
tree = changelog.generate_tree_from_commits(
10851085
gitcommits, tags, parser, changelog_pattern, merge_prerelease=merge_prereleases
10861086
)
1087-
if merge_prereleases:
1088-
assert tuple(tree) == COMMITS_TREE_AFTER_MERGED_PRERELEASES
1089-
else:
1090-
assert tuple(tree) == COMMITS_TREE
1087+
expected = (
1088+
COMMITS_TREE_AFTER_MERGED_PRERELEASES if merge_prereleases else COMMITS_TREE
1089+
)
1090+
1091+
for release, expected_release in zip(tree, expected):
1092+
assert release["version"] == expected_release["version"]
1093+
assert release["date"] == expected_release["date"]
1094+
assert release["changes"].keys() == expected_release["changes"].keys()
1095+
for change_type in release["changes"]:
1096+
changes = release["changes"][change_type]
1097+
expected_changes = expected_release["changes"][change_type]
1098+
for change, expected_change in zip(changes, expected_changes):
1099+
assert change["scope"] == expected_change["scope"]
1100+
assert change["breaking"] == expected_change["breaking"]
1101+
assert change["message"] == expected_change["message"]
1102+
assert change["author"] == "Commitizen"
1103+
assert change["author_email"] in "author@cz.dev"
1104+
assert "sha1" in change
10911105

10921106

10931107
def test_generate_tree_from_commits_with_no_commits(tags):

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /