From e36771b57aa7d57bc18aa4addfbb59852452f687 Mon Sep 17 00:00:00 2001 From: Adam Zethraeus Date: Thu, 9 Jun 2022 23:58:53 -0700 Subject: [PATCH] Add parameter controlling whether lfs files are excluded from rule MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Defaults to `true`, permitting large files as long as they are in lfs — which is the current behavior. --- pre_commit_hooks/check_added_large_files.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pre_commit_hooks/check_added_large_files.py b/pre_commit_hooks/check_added_large_files.py index 79c8d4e..8f17d4a 100644 --- a/pre_commit_hooks/check_added_large_files.py +++ b/pre_commit_hooks/check_added_large_files.py @@ -33,6 +33,7 @@ def filter_lfs_files(filenames: set[str]) -> None: # pragma: no cover (lfs) def find_large_added_files( filenames: Sequence[str], maxkb: int, + allow_in_lfs: bool, *, enforce_all: bool = False, ) -> int: @@ -40,7 +41,9 @@ def find_large_added_files( # us about retv = 0 filenames_filtered = set(filenames) - filter_lfs_files(filenames_filtered) + + if allow_in_lfs: + filter_lfs_files(filenames_filtered) if not enforce_all: filenames_filtered &= added_files() @@ -64,6 +67,10 @@ def main(argv: Sequence[str] | None = None) -> int: '--enforce-all', action='store_true', help='Enforce all files are checked, not just staged files.', ) + parser.add_argument( + '--allow-in-lfs', type=bool, default=true, + help='Whether to allow large files if stored in git lfs', + ) parser.add_argument( '--maxkb', type=int, default=500, help='Maximum allowable KB for added files', @@ -73,6 +80,7 @@ def main(argv: Sequence[str] | None = None) -> int: return find_large_added_files( args.filenames, args.maxkb, + args.allow_in_lfs, enforce_all=args.enforce_all, )