Skip to content

Commit 092ec64

Browse files
committed
fix(commit): honor message length limit from cli and config
CLI > config > default (0) for not limit
1 parent 818fa1a commit 092ec64

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

commitizen/commands/commit.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@ def __init__(self, config: BaseConfig, arguments: CommitArgs) -> None:
5454
self.arguments = arguments
5555
self.backup_file_path = get_backup_file_path()
5656

57+
message_length_limit = arguments.get("message_length_limit")
58+
self.message_length_limit: int = (
59+
message_length_limit
60+
if message_length_limit is not None
61+
else config.settings["message_length_limit"]
62+
)
63+
5764
def _read_backup_message(self) -> str | None:
5865
# Check the commit backup file exists
5966
if not self.backup_file_path.is_file():
@@ -85,19 +92,14 @@ def _get_message_by_prompt_commit_questions(self) -> str:
8592
return message
8693

8794
def _validate_subject_length(self, message: str) -> None:
88-
message_length_limit = self.arguments.get(
89-
"message_length_limit", self.config.settings.get("message_length_limit", 0)
90-
)
9195
# By the contract, message_length_limit is set to 0 for no limit
92-
if (
93-
message_length_limit is None or message_length_limit <= 0
94-
): # do nothing for no limit
96+
if self.message_length_limit <= 0:
9597
return
9698

9799
subject = message.partition("\n")[0].strip()
98-
if len(subject) > message_length_limit:
100+
if len(subject) > self.message_length_limit:
99101
raise CommitMessageLengthExceededError(
100-
f"Length of commit message exceeds limit ({len(subject)}/{message_length_limit}), subject: '{subject}'"
102+
f"Length of commit message exceeds limit ({len(subject)}/{self.message_length_limit}), subject: '{subject}'"
101103
)
102104

103105
def manual_edit(self, message: str) -> str:

0 commit comments

Comments
 (0)