From b261af9fbd8bfcc3f412ab48f283c1970e5841c0 Mon Sep 17 00:00:00 2001 From: John-Paul Dakran Date: Thu, 23 Jun 2022 15:02:54 -0400 Subject: [PATCH] Catch value error when performing audit hightlight line if the secret is not found on that line, instead of breaking the tool (#568) --- detect_secrets/util/code_snippet.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/detect_secrets/util/code_snippet.py b/detect_secrets/util/code_snippet.py index 740bc4271..a08c17939 100644 --- a/detect_secrets/util/code_snippet.py +++ b/detect_secrets/util/code_snippet.py @@ -3,6 +3,7 @@ from .color import AnsiColor from .color import colorize +from detect_secrets.exceptions import SecretNotFoundOnSpecifiedLineError def get_code_snippet( @@ -71,16 +72,19 @@ def highlight_line(self, payload: str) -> 'CodeSnippet': """ :param payload: string to highlight, on chosen line """ - index_of_payload = self.target_line.lower().index(payload.lower()) - end_of_payload = index_of_payload + len(payload) - - self.target_line = u'{}{}{}'.format( - self.target_line[:index_of_payload], - self.apply_highlight(self.target_line[index_of_payload:end_of_payload]), - self.target_line[end_of_payload:], - ) + try: + index_of_payload = self.target_line.lower().index(payload.lower()) + end_of_payload = index_of_payload + len(payload) + + self.target_line = u'{}{}{}'.format( + self.target_line[:index_of_payload], + self.apply_highlight(self.target_line[index_of_payload:end_of_payload]), + self.target_line[end_of_payload:], + ) - return self + return self + except ValueError: + raise SecretNotFoundOnSpecifiedLineError(self.target_index) def get_line_number(self, line_number: int) -> str: """Broken out, for custom colorization."""