René's URL Explorer Experiment


Title: fix(changelog): add changelog_subject_only to skip body parsing by bearomorphism · Pull Request #1974 · commitizen-tools/commitizen · GitHub

Open Graph Title: fix(changelog): add changelog_subject_only to skip body parsing by bearomorphism · Pull Request #1974 · commitizen-tools/commitizen

X Title: fix(changelog): add changelog_subject_only to skip body parsing by bearomorphism · Pull Request #1974 · commitizen-tools/commitizen

Description: Description Closes #1267. Why commitizen.changelog.generate_tree_from_commits() parses both the commit subject and each \n\n-separated block of commit.body against commit_parser. So a commit such as feat: new feature refactor: incidental cleanup produces two changelog entries: ### Feat - new feature ### Refactor - incidental cleanup This is rarely what the author intended — they wrote one feat, the body was just a note. The maintainer ack on #1267 confirms the body-parsing is undesirable, but flipping the default would be a behaviour break for existing users (some intentionally rely on it for multi-message commits). What changed File Change commitizen/defaults.py New TypedDict field changelog_subject_only: bool and DEFAULT_SETTINGS["changelog_subject_only"] = False. commitizen/changelog.py generate_tree_from_commits() gains a subject_only: bool = False kwarg. When True, the body iteration is replaced with an empty tuple, so only the subject is matched. commitizen/commands/changelog.py Changelog.__call__ forwards self.config.settings["changelog_subject_only"] to generate_tree_from_commits(). This single call site is shared by cz changelog and cz bump --changelog. tests/test_changelog.py New test_generate_tree_from_commits_subject_only_skips_body_blocks exercises both modes against a commit whose body contains a parser-matching block. tests/commands/test_changelog_command.py New test_changelog_subject_only_setting_skips_body_parsing is an end-to-end test (real config file, real cz changelog invocation) that catches typos in the config-key wiring. tests/test_conf.py Two expected-Settings literals updated to include the new key (otherwise the strict-equality assertions in TestReadCfg::test_load_conf fail). docs/commands/changelog.md New ### changelog_subject_only section next to the existing --merge-prerelease documentation. How it works Default-off semantics. changelog_subject_only = false is the default in both the Settings TypedDict and DEFAULT_SETTINGS, so BaseConfig.__init__ always seeds the dict-key with False and the dict-index access in Changelog.__call__ cannot KeyError. Single chokepoint. Body iteration happens at one place — the chain([subject_match], (body_map_pat.match(block) for block in commit.body.split("\n\n"))) in generate_tree_from_commits(). Replacing the second argument of chain with () when subject_only=True is the entire behavioural change. Why from __future__ import annotations matters. The new body_matches: Iterable[re.Match[str] | None] annotation only resolves in TYPE_CHECKING blocks at runtime; without from __future__ import annotations the import would have to leave TYPE_CHECKING. The file already had it. The end-to-end test was specifically requested. Both reviewers (sonnet-4.6 and GitHub Copilot) flagged that the lib-level test alone wouldn't catch a typo in the self.config.settings["changelog_subject_only"] lookup at commands/changelog.py. The fixup commit 292feb4f adds an integration test that constructs a real config and runs cz changelog --dry-run, then verified by hand that the test fails (with KeyError) when the config key is mistyped. Backward compatibility The default false preserves the historical body-parsing behaviour for every user who hasn't opted in. All 158 pre-existing tests/test_changelog.py and tests/commands/test_changelog_command.py tests pass unchanged. The new subject_only kwarg on generate_tree_from_commits() defaults to False, so any external caller that imports the function continues to work. Checklist I have read the contributing guidelines Was generative AI tooling used to co-author this PR? Yes (please specify the tool below) Generated-by: Claude following the guidelines Code Changes Add test cases to all the changes you introduce (1 unit test + 1 integration test) Run uv run poe all locally to ensure this change passes linter check and tests (poe lint clean; 159 changelog tests pass) Manually test the changes (see "Steps to Test" below) Update the documentation for the changes Documentation Changes Added a ### changelog_subject_only section to docs/commands/changelog.md Run uv run poe doc locally to ensure the documentation pages render correctly Check and fix any broken links (internal or external) Expected Behavior Setting Subject feat: X + body refactor: Y Result changelog_subject_only unset (default false) Both subject and body block parsed Two entries: one feat, one refactor (legacy) changelog_subject_only = true Only subject parsed One entry: feat: X Applies to both cz changelog and cz bump --changelog. Steps to Test This Pull Request git fetch fork fix/1267-changelog-subject-only git checkout fork/fix/1267-changelog-subject-only # 1. Lib-level regression test (forces the body-skip behaviour at the call site). uv run pytest tests/test_changelog.py -k subject_only -v # 2. End-to-end test (real config file, real cz changelog invocation). uv run pytest tests/commands/test_changelog_command.py::test_changelog_subject_only_setting_skips_body_parsing -v # 3. Verify the e2e test would catch a typo in the config-key wiring. sed -i.bak 's/changelog_subject_only/changelog_subject_only_TYPO/' commitizen/commands/changelog.py uv run pytest tests/commands/test_changelog_command.py::test_changelog_subject_only_setting_skips_body_parsing -v # expected: KeyError: 'changelog_subject_only_TYPO' mv commitizen/commands/changelog.py.bak commitizen/commands/changelog.py uv run pytest tests/commands/test_changelog_command.py::test_changelog_subject_only_setting_skips_body_parsing -v # expected: 1 passed # 4. Full changelog suite (no regressions). uv run pytest tests/test_changelog.py tests/commands/test_changelog_command.py -q # expected: 159 passed Additional Context Surfaced while triaging open issues in #1965. Maintainer ack on #1267 confirmed body-parsing is at-best opt-in. The end-to-end integration test was added in fixup commit 292feb4f after both review passes (sonnet-4.6 and Copilot) flagged the wiring as the only path not exercised by tests.

Open Graph Description: Description Closes #1267. Why commitizen.changelog.generate_tree_from_commits() parses both the commit subject and each \n\n-separated block of commit.body against commit_parser. So a commit such a...

X Description: Description Closes #1267. Why commitizen.changelog.generate_tree_from_commits() parses both the commit subject and each \n\n-separated block of commit.body against commit_parser. So a commit such a...

Opengraph URL: https://github.com/commitizen-tools/commitizen/pull/1974

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:a046a1fc-18eb-6ec2-4cb2-f10839738594
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idC268:39522F:1342398:1A933F1:6A4DE967
html-safe-noncefcf047a2b6bcffbed63da91d1c2c09367553282670b1dc05f74580aad6916961
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMjY4OjM5NTIyRjoxMzQyMzk4OjFBOTMzRjE6NkE0REU5NjciLCJ2aXNpdG9yX2lkIjoiMTA4ODMzNTg0MDA1OTAwNjQ3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacaaa6a7c99a88deb1351df0e6b2924f5f4a9d9c6bd45c2cb96857a4b4852a1771
hovercard-subject-tagpull_request:3654741141
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/commitizen-tools/commitizen/pull/1974/files
twitter:imagehttps://avatars.githubusercontent.com/u/26526132?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/26526132?s=400&v=4
og:image:altDescription Closes #1267. Why commitizen.changelog.generate_tree_from_commits() parses both the commit subject and each \n\n-separated block of commit.body against commit_parser. So a commit such a...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None06b8a6144231bf3a234f1c2e9993861e07ce98a905912b114aa386c2d7e84b33
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/commitizen-tools/commitizen git https://github.com/commitizen-tools/commitizen.git
octolytics-dimension-user_id62252524
octolytics-dimension-user_logincommitizen-tools
octolytics-dimension-repository_id106127589
octolytics-dimension-repository_nwocommitizen-tools/commitizen
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id106127589
octolytics-dimension-repository_network_root_nwocommitizen-tools/commitizen
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release1d344bdb7547fe6bca17a59bb2b8aac3dc9532a0
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/commitizen-tools/commitizen/pull/1974/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fcommitizen-tools%2Fcommitizen%2Fpull%2F1974%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fcommitizen-tools%2Fcommitizen%2Fpull%2F1974%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=commitizen-tools%2Fcommitizen
Reloadhttps://github.com/commitizen-tools/commitizen/pull/1974/files
Reloadhttps://github.com/commitizen-tools/commitizen/pull/1974/files
Reloadhttps://github.com/commitizen-tools/commitizen/pull/1974/files
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1974/files
commitizen-tools https://github.com/commitizen-tools
commitizenhttps://github.com/commitizen-tools/commitizen
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1974/files
Notifications https://github.com/login?return_to=%2Fcommitizen-tools%2Fcommitizen
Fork 343 https://github.com/login?return_to=%2Fcommitizen-tools%2Fcommitizen
Star 3.5k https://github.com/login?return_to=%2Fcommitizen-tools%2Fcommitizen
Code https://github.com/commitizen-tools/commitizen
Issues 116 https://github.com/commitizen-tools/commitizen/issues
Pull requests 45 https://github.com/commitizen-tools/commitizen/pulls
Discussions https://github.com/commitizen-tools/commitizen/discussions
Actions https://github.com/commitizen-tools/commitizen/actions
Projects https://github.com/commitizen-tools/commitizen/projects
Security and quality 0 https://github.com/commitizen-tools/commitizen/security
Insights https://github.com/commitizen-tools/commitizen/pulse
Code https://github.com/commitizen-tools/commitizen
Issues https://github.com/commitizen-tools/commitizen/issues
Pull requests https://github.com/commitizen-tools/commitizen/pulls
Discussions https://github.com/commitizen-tools/commitizen/discussions
Actions https://github.com/commitizen-tools/commitizen/actions
Projects https://github.com/commitizen-tools/commitizen/projects
Security and quality https://github.com/commitizen-tools/commitizen/security
Insights https://github.com/commitizen-tools/commitizen/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fcommitizen-tools%2Fcommitizen%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fcommitizen-tools%2Fcommitizen%2Fissues%2Fnew%2Fchoose
bearomorphismhttps://github.com/bearomorphism
commitizen-tools:masterhttps://github.com/commitizen-tools/commitizen/tree/master
bearomorphism:fix/1267-changelog-subject-onlyhttps://github.com/bearomorphism/commitizen/tree/fix/1267-changelog-subject-only
Conversation 4 https://github.com/commitizen-tools/commitizen/pull/1974
Commits 3 https://github.com/commitizen-tools/commitizen/pull/1974/commits
Checks 20 https://github.com/commitizen-tools/commitizen/pull/1974/checks
Files changed https://github.com/commitizen-tools/commitizen/pull/1974/files
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1974/files
fix(changelog): add changelog_subject_only to skip body parsing https://github.com/commitizen-tools/commitizen/pull/1974/files#top
Show all changes 3 commits https://github.com/commitizen-tools/commitizen/pull/1974/files
7898cd0 fix(changelog): add `changelog_subject_only` to skip body parsing bearomorphism May 9, 2026 https://github.com/commitizen-tools/commitizen/pull/1974/commits/7898cd0f0d3f43c8aee043ddc3bd867651a1c71f
591fc33 test(conf): add `changelog_subject_only` to expected settings bearomorphism May 9, 2026 https://github.com/commitizen-tools/commitizen/pull/1974/commits/591fc33d1e4259ff6b994b20fc1b6196ecfd0d4f
292feb4 test(changelog): cover changelog_subject_only config wiring bearomorphism May 9, 2026 https://github.com/commitizen-tools/commitizen/pull/1974/commits/292feb4f37c9716d8c5c81310da8f9dc88afe101
Clear filters https://github.com/commitizen-tools/commitizen/pull/1974/files
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1974/files
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1974/files
changelog.py https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-9a66aca02ea7d31a58e52fc33fc6914dc724c8eb36ccb69f365f86ec3490497b
changelog.py https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-c6c18b0eef4f3598794a5fa7177ac53dd0cd8eba8f29ed7be7319c6d431f21c1
defaults.py https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-c951de16d627d82e01eb3ce8d7c4f0b28973ffe147520620762e7140ede2dd80
changelog.md https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-bee3ba551a92137fcbeef9fd1f3f02eec0b959b19e6bece8a18764dc0f50a877
test_changelog_command.py https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-0f17f809d9a80303c2327a3d2830cecb7b76156ea47ad96b9dbbc877a08eb144
test_changelog.py https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-a851993f0fd5a02da3608dd2bde34d3575e429c25ae8c52e2496205ad0492de0
test_conf.py https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-6468e768366adbe7dd3205f161126966a694d5ddc2aa94a1e50a6d4da339139f
commitizen/changelog.pyhttps://github.com/commitizen-tools/commitizen/pull/1974/files#diff-9a66aca02ea7d31a58e52fc33fc6914dc724c8eb36ccb69f365f86ec3490497b
View file https://github.com/bearomorphism/commitizen/blob/292feb4f37c9716d8c5c81310da8f9dc88afe101/commitizen/changelog.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1974/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-9a66aca02ea7d31a58e52fc33fc6914dc724c8eb36ccb69f365f86ec3490497b
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-9a66aca02ea7d31a58e52fc33fc6914dc724c8eb36ccb69f365f86ec3490497b
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-9a66aca02ea7d31a58e52fc33fc6914dc724c8eb36ccb69f365f86ec3490497b
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-9a66aca02ea7d31a58e52fc33fc6914dc724c8eb36ccb69f365f86ec3490497b
commitizen/commands/changelog.pyhttps://github.com/commitizen-tools/commitizen/pull/1974/files#diff-c6c18b0eef4f3598794a5fa7177ac53dd0cd8eba8f29ed7be7319c6d431f21c1
View file https://github.com/bearomorphism/commitizen/blob/292feb4f37c9716d8c5c81310da8f9dc88afe101/commitizen/commands/changelog.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1974/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-c6c18b0eef4f3598794a5fa7177ac53dd0cd8eba8f29ed7be7319c6d431f21c1
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-c6c18b0eef4f3598794a5fa7177ac53dd0cd8eba8f29ed7be7319c6d431f21c1
commitizen/defaults.pyhttps://github.com/commitizen-tools/commitizen/pull/1974/files#diff-c951de16d627d82e01eb3ce8d7c4f0b28973ffe147520620762e7140ede2dd80
View file https://github.com/bearomorphism/commitizen/blob/292feb4f37c9716d8c5c81310da8f9dc88afe101/commitizen/defaults.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1974/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-c951de16d627d82e01eb3ce8d7c4f0b28973ffe147520620762e7140ede2dd80
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-c951de16d627d82e01eb3ce8d7c4f0b28973ffe147520620762e7140ede2dd80
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-c951de16d627d82e01eb3ce8d7c4f0b28973ffe147520620762e7140ede2dd80
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-c951de16d627d82e01eb3ce8d7c4f0b28973ffe147520620762e7140ede2dd80
docs/commands/changelog.mdhttps://github.com/commitizen-tools/commitizen/pull/1974/files#diff-bee3ba551a92137fcbeef9fd1f3f02eec0b959b19e6bece8a18764dc0f50a877
View file https://github.com/bearomorphism/commitizen/blob/292feb4f37c9716d8c5c81310da8f9dc88afe101/docs/commands/changelog.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1974/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-bee3ba551a92137fcbeef9fd1f3f02eec0b959b19e6bece8a18764dc0f50a877
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-bee3ba551a92137fcbeef9fd1f3f02eec0b959b19e6bece8a18764dc0f50a877
tests/commands/test_changelog_command.pyhttps://github.com/commitizen-tools/commitizen/pull/1974/files#diff-0f17f809d9a80303c2327a3d2830cecb7b76156ea47ad96b9dbbc877a08eb144
View file https://github.com/bearomorphism/commitizen/blob/292feb4f37c9716d8c5c81310da8f9dc88afe101/tests/commands/test_changelog_command.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1974/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-0f17f809d9a80303c2327a3d2830cecb7b76156ea47ad96b9dbbc877a08eb144
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-0f17f809d9a80303c2327a3d2830cecb7b76156ea47ad96b9dbbc877a08eb144
tests/test_changelog.pyhttps://github.com/commitizen-tools/commitizen/pull/1974/files#diff-a851993f0fd5a02da3608dd2bde34d3575e429c25ae8c52e2496205ad0492de0
View file https://github.com/bearomorphism/commitizen/blob/292feb4f37c9716d8c5c81310da8f9dc88afe101/tests/test_changelog.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1974/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-a851993f0fd5a02da3608dd2bde34d3575e429c25ae8c52e2496205ad0492de0
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-a851993f0fd5a02da3608dd2bde34d3575e429c25ae8c52e2496205ad0492de0
tests/test_conf.pyhttps://github.com/commitizen-tools/commitizen/pull/1974/files#diff-6468e768366adbe7dd3205f161126966a694d5ddc2aa94a1e50a6d4da339139f
View file https://github.com/bearomorphism/commitizen/blob/292feb4f37c9716d8c5c81310da8f9dc88afe101/tests/test_conf.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1974/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-6468e768366adbe7dd3205f161126966a694d5ddc2aa94a1e50a6d4da339139f
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-6468e768366adbe7dd3205f161126966a694d5ddc2aa94a1e50a6d4da339139f
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-6468e768366adbe7dd3205f161126966a694d5ddc2aa94a1e50a6d4da339139f
https://github.com/commitizen-tools/commitizen/pull/1974/files#diff-6468e768366adbe7dd3205f161126966a694d5ddc2aa94a1e50a6d4da339139f
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1974/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.