Skip to content

Commit caf2564

Browse files
authored
clear cache for plugins scan diff (#230)
1 parent 0868d32 commit caf2564

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

detect_secrets/core/scan.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from typing import Generator
99
from typing import Iterable
1010
from typing import List
11+
from typing import Optional
1112
from typing import Set
1213
from typing import Tuple
1314
from typing import TYPE_CHECKING
@@ -196,7 +197,7 @@ def scan_diff(diff: str) -> Generator[PotentialSecret, None, None]:
196197
return
197198

198199
for filename, lines in _get_lines_from_diff(diff):
199-
yield from _process_line_based_plugins(lines, filename=filename)
200+
yield from _process_line_based_plugins(lines, filename=filename, is_scan_diff=True)
200201

201202

202203
def scan_for_allowlisted_secrets_in_file(filename: str) -> Generator[PotentialSecret, None, None]:
@@ -338,6 +339,7 @@ def _get_lines_from_diff(diff: str) -> \
338339
def _process_line_based_plugins(
339340
lines: List[Tuple[int, str, bool, bool]],
340341
filename: str,
342+
is_scan_diff: Optional[bool] = False,
341343
) -> Generator[PotentialSecret, None, None]:
342344
line_content = [line[1] for line in lines]
343345

@@ -384,6 +386,7 @@ def _process_line_based_plugins(
384386
line_number=line_number,
385387
context=code_snippet,
386388
raw_context=raw_code_snippet,
389+
is_scan_diff=is_scan_diff,
387390
):
388391
secret.is_removed = is_removed
389392
secret.is_added = is_added

detect_secrets/plugins/private_key.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ def analyze_line(
7575
line_number: int = 0,
7676
context: Optional[CodeSnippet] = None,
7777
raw_context: Optional[CodeSnippet] = None,
78+
is_scan_diff: Optional[bool] = False,
7879
**kwargs: Any,
7980
) -> Set[PotentialSecret]:
8081
output: Set[PotentialSecret] = set()
@@ -86,9 +87,14 @@ def analyze_line(
8687
),
8788
)
8889

89-
if not output and filename not in self._analyzed_files \
90+
to_analyze_line = filename not in self._analyzed_files
91+
if is_scan_diff:
92+
to_analyze_line = True
93+
94+
if not output and to_analyze_line \
9095
and 0 < self.get_file_size(filename) < PrivateKeyDetector.MAX_FILE_SIZE:
91-
self._analyzed_files.add(filename)
96+
if not is_scan_diff:
97+
self._analyzed_files.add(filename)
9298
file_content = self.read_file(filename)
9399
if file_content:
94100
output.update(

0 commit comments

Comments
 (0)