|
43 | 43 |
|
44 | 44 | from commitizen import out
|
45 | 45 | from commitizen.bump import normalize_tag
|
| 46 | +from commitizen.cz.base import ChangelogReleaseHook |
46 | 47 | from commitizen.exceptions import InvalidConfigurationError, NoCommitsFoundError
|
47 | 48 | from commitizen.git import GitCommit, GitTag
|
48 | 49 | from commitizen.version_schemes import (
|
@@ -113,6 +114,7 @@ def generate_tree_from_commits(
|
113 | 114 | unreleased_version: str | None = None,
|
114 | 115 | change_type_map: dict[str, str] | None = None,
|
115 | 116 | changelog_message_builder_hook: MessageBuilderHook | None = None,
|
| 117 | + changelog_release_hook: ChangelogReleaseHook | None = None, |
116 | 118 | merge_prerelease: bool = False,
|
117 | 119 | scheme: VersionScheme = DEFAULT_SCHEME,
|
118 | 120 | ) -> Iterable[dict]:
|
@@ -143,11 +145,14 @@ def generate_tree_from_commits(
|
143 | 145 | commit_tag, used_tags, merge_prerelease, scheme=scheme
|
144 | 146 | ):
|
145 | 147 | used_tags.append(commit_tag)
|
146 | | - yield { |
| 148 | + release= { |
147 | 149 | "version": current_tag_name,
|
148 | 150 | "date": current_tag_date,
|
149 | 151 | "changes": changes,
|
150 | 152 | }
|
| 153 | + if changelog_release_hook: |
| 154 | + release = changelog_release_hook(release, commit_tag) |
| 155 | + yield release |
151 | 156 | current_tag_name = commit_tag.name
|
152 | 157 | current_tag_date = commit_tag.date
|
153 | 158 | changes = defaultdict(list)
|
@@ -178,7 +183,14 @@ def generate_tree_from_commits(
|
178 | 183 | change_type_map,
|
179 | 184 | )
|
180 | 185 |
|
181 | | - yield {"version": current_tag_name, "date": current_tag_date, "changes": changes} |
| 186 | + release = { |
| 187 | + "version": current_tag_name, |
| 188 | + "date": current_tag_date, |
| 189 | + "changes": changes, |
| 190 | + } |
| 191 | + if changelog_release_hook: |
| 192 | + release = changelog_release_hook(release, commit_tag) |
| 193 | + yield release |
182 | 194 |
|
183 | 195 |
|
184 | 196 | def process_commit_message(
|
|
0 commit comments