-
-
Notifications
You must be signed in to change notification settings - Fork 301
feat: add custom validation #1236
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: v4-11-0
Are you sure you want to change the base?
feat: add custom validation #1236
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1236 +/- ##
==========================================
+ Coverage 97.33% 98.68% +1.34%
==========================================
Files 42 60 +18
Lines 2104 2664 +560
==========================================
+ Hits 2048 2629 +581
+ Misses 56 35 -21
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
fbf3813 to
7bd16c3
Compare
|
@Lee-W I was wondering if you had any input to this PR? |
|
I'll be mostly out till at least mid-Oct, will try to check in depth after that. Thanks! |
Lee-W
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall, I love this idea! left a few improvement suggestions
|
I'll be mostly out for the following month. Will try to take a look when I'm back. |
Lee-W
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for taking so long. Some nitpicks. but we're close to merge I think!
| allow_abort: bool, | ||
| allowed_prefixes: list[str], | ||
| max_msg_length: int, | ||
| ) -> tuple[bool, list]: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's also use ValidationResult here
| mocker.patch.object(sys, "argv", testargs) | ||
| mocker.patch( | ||
| "commitizen.commands.check.open", | ||
| mocker.mock_open(read_data="ABC-123 add commitizen pre-commit hook"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's make it obvious wrong. I read a few time to notice the missing :
|
|
||
|
|
||
| @pytest.fixture | ||
| def use_cz_custom_validator(mocker): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: If it's only used in tests/commands/test_check_command.py, we probably can move it there.
|
Hey @benediktziegler , I left a few nits, but overall this PR is great! We're super close to merging. |
Description
This PR adds functionality to customise the commit message validation and to format the
InvalidCommitMessageErrorto give better/more detailed feedback to the user.Checklist
./scripts/formatand./scripts/testlocally to ensure this change passes linter check and testExpected behavior
The developer of a custom commitizen class can override the
validate_commit_messageandformat_error_messagemethods to perform more complex commit message format checks then just a regex match and give more detailed feedback on failure.Steps to Test This Pull Request
Run the the
test_check_command_with_custom_validator_succeedandtest_check_command_with_custom_validator_failtests intest_check_command.py.Additional context
This PR implements and fixes the comments from #648.