René's URL Explorer Experiment


Title: Support multi-line commit body input by axkoro · Pull Request #1919 · commitizen-tools/commitizen · GitHub

Open Graph Title: Support multi-line commit body input by axkoro · Pull Request #1919 · commitizen-tools/commitizen

X Title: Support multi-line commit body input by axkoro · Pull Request #1919 · commitizen-tools/commitizen

Description: Description The interactive commit prompt had no way to enter multi-line commit bodies without resorting to --edit or using the newline separator | which is completely undocumented, from what I can tell. This PR enables multi-line input for the commit body by setting multiline=True on the body question. This uses Questionary's native multi-line input. I also added a custom key binding, so that Enter submits on an empty buffer (skipping the field). Otherwise it now inserts a newline. Non-empty input can be submitted with Alt+Enter (Questionary's default). 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 Run uv run poe all locally to ensure this change passes linter check and tests Manually test the changes: Verify the feature/bug fix works as expected in real-world scenarios Test edge cases and error conditions Ensure backward compatibility is maintained Document any manual testing steps performed Update the documentation for the changes No updating required, from what I can tell. Steps to Test This Pull Request Added: entering multi-line commit body Run cz commit and proceed to the body prompt Type something, press Enter → a newline should be inserted Type another line, press Alt+Enter → the input should be submitted with both lines preserved in the commit body Kept: skipping the commit body Run cz commit and proceed to the body prompt (Enter nothing) Press Enter → the field should be skipped Additional Context The body prompt now displays a > prefix, which is prompt_toolkit's default multi-line indicator. This is slightly inconsistent with the other input fields. Remove it or keep this and maybe even add it to the other inputs as well? Resolves #1917

Open Graph Description: Description The interactive commit prompt had no way to enter multi-line commit bodies without resorting to --edit or using the newline separator | which is completely undocumented, from what I can...

X Description: Description The interactive commit prompt had no way to enter multi-line commit bodies without resorting to --edit or using the newline separator | which is completely undocumented, from what I can...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:3a80f259-2d2a-6920-7da2-35a8b0b57229
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id831A:2E7285:2E8B5A1:3FAFAE5:6A4EF81F
html-safe-nonce8e397dfb63e8b22f5f95096fa492ce6ce6822324a1d6e149eb9bc8ff5acdc657
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MzFBOjJFNzI4NToyRThCNUExOjNGQUZBRTU6NkE0RUY4MUYiLCJ2aXNpdG9yX2lkIjoiNzg0Mjg2ODQ3MTk0MzU5MTk2NyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac35e021203e42cf0eed71a8d90f72b479545b2e4b3bfe26fd9838a6f635f91761
hovercard-subject-tagpull_request:3473266915
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/1919/files
twitter:imagehttps://avatars.githubusercontent.com/u/24815452?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/24815452?s=400&v=4
og:image:altDescription The interactive commit prompt had no way to enter multi-line commit bodies without resorting to --edit or using the newline separator | which is completely undocumented, from what I can...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb92d11c0aa4a77d54ef4af1078b6a15fb5a70a215b30c4ecf28889d5a8e656d9
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
release2b8f23afb982271f1b22258a94aede67a6b77760
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/commitizen-tools/commitizen/pull/1919/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fcommitizen-tools%2Fcommitizen%2Fpull%2F1919%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/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/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/enterprise/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%2F1919%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/1919/files
Reloadhttps://github.com/commitizen-tools/commitizen/pull/1919/files
Reloadhttps://github.com/commitizen-tools/commitizen/pull/1919/files
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1919/files
commitizen-tools https://github.com/commitizen-tools
commitizenhttps://github.com/commitizen-tools/commitizen
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1919/files
Notifications https://github.com/login?return_to=%2Fcommitizen-tools%2Fcommitizen
Fork 344 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
axkorohttps://github.com/axkoro
commitizen-tools:masterhttps://github.com/commitizen-tools/commitizen/tree/master
axkoro:feature/multi-line-commit-bodyhttps://github.com/axkoro/commitizen/tree/feature/multi-line-commit-body
Conversation 1 https://github.com/commitizen-tools/commitizen/pull/1919
Commits 4 https://github.com/commitizen-tools/commitizen/pull/1919/commits
Checks 20 https://github.com/commitizen-tools/commitizen/pull/1919/checks
Files changed https://github.com/commitizen-tools/commitizen/pull/1919/files
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1919/files
Support multi-line commit body input https://github.com/commitizen-tools/commitizen/pull/1919/files#top
Show all changes 4 commits https://github.com/commitizen-tools/commitizen/pull/1919/files
7ef38b7 feat(cz-commit): enable multi-line body input in interactive prompt axkoro Mar 31, 2026 https://github.com/commitizen-tools/commitizen/pull/1919/commits/7ef38b7209ce31e0c55b52e638bd1500ae6ceade
7013205 test(cz-commit): add tests for multi-line body input axkoro Mar 31, 2026 https://github.com/commitizen-tools/commitizen/pull/1919/commits/701320509ef562c4c2531fb2c8731d4832731bf4
c1ec0e8 refactor(cz-commit): use Keys.Enter enum constant over string literal axkoro Mar 31, 2026 https://github.com/commitizen-tools/commitizen/pull/1919/commits/c1ec0e853b208048aeb71f894fd1aba3e1150a13
aa3c061 docs(cli/screenshots): update CLI screenshots axkoro Mar 31, 2026 https://github.com/commitizen-tools/commitizen/pull/1919/commits/aa3c06121bd3add9bdc2e147231c1d07261f5a9f
Clear filters https://github.com/commitizen-tools/commitizen/pull/1919/files
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1919/files
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1919/files
conventional_commits.py https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-75caab3ab9b4490578957c3d47e01cff4dc9e393772e839e699cb27f69ec108d
utils.py https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-a65f6ac2f09ba19e2e8e989de2caf799bca776af4b63662e8c5b324ab32b2992
question.py https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-bb142ffe4a415c1d98f5f8d19b84c41f7986ef8815dc516e704a4168aa3bb311
bump.gif https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-3f4ae524317062d94d47d4e3708bc770dc3837d79c44156c9b144094e2d10160
commit.gif https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-249010e3b825b7a77bc456b8a19d8528780b54567607d6726ceda966a36bfe76
init.gif https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-b4bf63a82e50fbaccc92d7e5a303e3fd55737a01b2b58856ebdb263151cdabc4
shortcut_custom.gif https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-2b3173b3a421fb573812dfe4bc63534de5105d0cf1a82a647392da5cd544ba7e
shortcut_default.gif https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-0205dc25993d8a43aa234cfba3dd2a54ea1e3d336274e77584d09175219e1a12
test_cz_conventional_commits.py https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-a82b0adf72b8fcc6ad5b6a6c05ef03e8c864b47332dafdee03ddd0961c7b986f
test_cz_utils.py https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-5941f3749bc14995a3c74203971aaf0ddb809204622136d4c2613cbafb7f1a13
commitizen/cz/conventional_commits/conventional_commits.pyhttps://github.com/commitizen-tools/commitizen/pull/1919/files#diff-75caab3ab9b4490578957c3d47e01cff4dc9e393772e839e699cb27f69ec108d
View file https://github.com/commitizen-tools/commitizen/blob/aa3c06121bd3add9bdc2e147231c1d07261f5a9f/commitizen/cz/conventional_commits/conventional_commits.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1919/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-75caab3ab9b4490578957c3d47e01cff4dc9e393772e839e699cb27f69ec108d
https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-75caab3ab9b4490578957c3d47e01cff4dc9e393772e839e699cb27f69ec108d
https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-75caab3ab9b4490578957c3d47e01cff4dc9e393772e839e699cb27f69ec108d
https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-75caab3ab9b4490578957c3d47e01cff4dc9e393772e839e699cb27f69ec108d
commitizen/cz/utils.pyhttps://github.com/commitizen-tools/commitizen/pull/1919/files#diff-a65f6ac2f09ba19e2e8e989de2caf799bca776af4b63662e8c5b324ab32b2992
View file https://github.com/commitizen-tools/commitizen/blob/aa3c06121bd3add9bdc2e147231c1d07261f5a9f/commitizen/cz/utils.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1919/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-a65f6ac2f09ba19e2e8e989de2caf799bca776af4b63662e8c5b324ab32b2992
commitizen/question.pyhttps://github.com/commitizen-tools/commitizen/pull/1919/files#diff-bb142ffe4a415c1d98f5f8d19b84c41f7986ef8815dc516e704a4168aa3bb311
View file https://github.com/commitizen-tools/commitizen/blob/aa3c06121bd3add9bdc2e147231c1d07261f5a9f/commitizen/question.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1919/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-bb142ffe4a415c1d98f5f8d19b84c41f7986ef8815dc516e704a4168aa3bb311
https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-bb142ffe4a415c1d98f5f8d19b84c41f7986ef8815dc516e704a4168aa3bb311
docs/images/cli_interactive/bump.gifhttps://github.com/commitizen-tools/commitizen/pull/1919/files#diff-3f4ae524317062d94d47d4e3708bc770dc3837d79c44156c9b144094e2d10160
View file https://github.com/commitizen-tools/commitizen/blob/aa3c06121bd3add9bdc2e147231c1d07261f5a9f/docs/images/cli_interactive/bump.gif
Open in desktop https://desktop.github.com
Reload?https://github.com/commitizen-tools/commitizen/pull/1919/files
docs/images/cli_interactive/commit.gifhttps://github.com/commitizen-tools/commitizen/pull/1919/files#diff-249010e3b825b7a77bc456b8a19d8528780b54567607d6726ceda966a36bfe76
View file https://github.com/commitizen-tools/commitizen/blob/aa3c06121bd3add9bdc2e147231c1d07261f5a9f/docs/images/cli_interactive/commit.gif
Open in desktop https://desktop.github.com
Reload?https://github.com/commitizen-tools/commitizen/pull/1919/files
docs/images/cli_interactive/init.gifhttps://github.com/commitizen-tools/commitizen/pull/1919/files#diff-b4bf63a82e50fbaccc92d7e5a303e3fd55737a01b2b58856ebdb263151cdabc4
View file https://github.com/commitizen-tools/commitizen/blob/aa3c06121bd3add9bdc2e147231c1d07261f5a9f/docs/images/cli_interactive/init.gif
Open in desktop https://desktop.github.com
Reload?https://github.com/commitizen-tools/commitizen/pull/1919/files
docs/images/cli_interactive/shortcut_custom.gifhttps://github.com/commitizen-tools/commitizen/pull/1919/files#diff-2b3173b3a421fb573812dfe4bc63534de5105d0cf1a82a647392da5cd544ba7e
View file https://github.com/commitizen-tools/commitizen/blob/aa3c06121bd3add9bdc2e147231c1d07261f5a9f/docs/images/cli_interactive/shortcut_custom.gif
Open in desktop https://desktop.github.com
Reload?https://github.com/commitizen-tools/commitizen/pull/1919/files
docs/images/cli_interactive/shortcut_default.gifhttps://github.com/commitizen-tools/commitizen/pull/1919/files#diff-0205dc25993d8a43aa234cfba3dd2a54ea1e3d336274e77584d09175219e1a12
View file https://github.com/commitizen-tools/commitizen/blob/aa3c06121bd3add9bdc2e147231c1d07261f5a9f/docs/images/cli_interactive/shortcut_default.gif
Open in desktop https://desktop.github.com
Reload?https://github.com/commitizen-tools/commitizen/pull/1919/files
tests/test_cz_conventional_commits.pyhttps://github.com/commitizen-tools/commitizen/pull/1919/files#diff-a82b0adf72b8fcc6ad5b6a6c05ef03e8c864b47332dafdee03ddd0961c7b986f
View file https://github.com/commitizen-tools/commitizen/blob/aa3c06121bd3add9bdc2e147231c1d07261f5a9f/tests/test_cz_conventional_commits.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1919/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-a82b0adf72b8fcc6ad5b6a6c05ef03e8c864b47332dafdee03ddd0961c7b986f
https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-a82b0adf72b8fcc6ad5b6a6c05ef03e8c864b47332dafdee03ddd0961c7b986f
tests/test_cz_utils.pyhttps://github.com/commitizen-tools/commitizen/pull/1919/files#diff-5941f3749bc14995a3c74203971aaf0ddb809204622136d4c2613cbafb7f1a13
View file https://github.com/commitizen-tools/commitizen/blob/aa3c06121bd3add9bdc2e147231c1d07261f5a9f/tests/test_cz_utils.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/commitizen-tools/commitizen/pull/1919/{{ revealButtonHref }}
https://github.com/commitizen-tools/commitizen/pull/1919/files#diff-5941f3749bc14995a3c74203971aaf0ddb809204622136d4c2613cbafb7f1a13
Please reload this pagehttps://github.com/commitizen-tools/commitizen/pull/1919/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.