@@ -21,6 +21,7 @@ class CheckArgs(TypedDict, total=False):
2121 message_length_limit : int
2222 allowed_prefixes : list [str ]
2323 message : str
24+ default_range : bool
2425
2526
2627class Check :
@@ -40,6 +41,7 @@ def __init__(self, config: BaseConfig, arguments: CheckArgs, *args: object) -> N
4041 self .allow_abort = bool (
4142 arguments .get ("allow_abort" , config .settings ["allow_abort" ])
4243 )
44+ self .default_range = bool (arguments .get ("default_range" ))
4345 self .max_msg_length = arguments .get ("message_length_limit" , 0 )
4446
4547 # we need to distinguish between None and [], which is a valid value
@@ -50,25 +52,28 @@ def __init__(self, config: BaseConfig, arguments: CheckArgs, *args: object) -> N
5052 else config .settings ["allowed_prefixes" ]
5153 )
5254
53- self ._valid_command_argument ()
54-
55- self .config : BaseConfig = config
56- self .encoding = config .settings ["encoding" ]
57- self .cz = factory .committer_factory (self .config )
58-
59- def _valid_command_argument (self ) -> None :
6055 num_exclusive_args_provided = sum (
6156 arg is not None
62- for arg in (self .commit_msg_file , self .commit_msg , self .rev_range )
57+ for arg in (
58+ self .commit_msg_file ,
59+ self .commit_msg ,
60+ self .rev_range ,
61+ )
6362 )
64- if num_exclusive_args_provided == 0 and not sys .stdin .isatty ():
65- self .commit_msg = sys .stdin .read ()
66- elif num_exclusive_args_provided != 1 :
63+
64+ if num_exclusive_args_provided > 1 :
6765 raise InvalidCommandArgumentError (
6866 "Only one of --rev-range, --message, and --commit-msg-file is permitted by check command! "
6967 "See 'cz check -h' for more information"
7068 )
7169
70+ if num_exclusive_args_provided == 0 and not sys .stdin .isatty ():
71+ self .commit_msg = sys .stdin .read ()
72+
73+ self .config : BaseConfig = config
74+ self .encoding = config .settings ["encoding" ]
75+ self .cz = factory .committer_factory (self .config )
76+
7277 def __call__ (self ) -> None :
7378 """Validate if commit messages follows the conventional pattern.
7479
@@ -109,7 +114,10 @@ def _get_commits(self) -> list[git.GitCommit]:
109114 return [git .GitCommit (rev = "" , title = "" , body = self ._filter_comments (msg ))]
110115
111116 # Get commit messages from git log (--rev-range)
112- return git .get_commits (end = self .rev_range )
117+ return git .get_commits (
118+ git .get_default_branch () if self .default_range else None ,
119+ self .rev_range ,
120+ )
113121
114122 @staticmethod
115123 def _filter_comments (msg : str ) -> str :
@@ -134,7 +142,7 @@ def _filter_comments(msg: str) -> str:
134142 The filtered commit message without comments.
135143 """
136144
137- lines = []
145+ lines : list [ str ] = []
138146 for line in msg .split ("\n " ):
139147 if "# ------------------------ >8 ------------------------" in line :
140148 break
0 commit comments