guarddog 2.5.0__py3-none-any.whl → 2.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,9 +13,12 @@ from guarddog.analyzer.sourcecode import get_sourcecode_rules, SempgrepRule, Yar
13
13
  from guarddog.utils.config import YARA_EXT_EXCLUDE
14
14
  from guarddog.ecosystems import ECOSYSTEM
15
15
 
16
- SEMGREP_MAX_TARGET_BYTES = 10_000_000
17
- SOURCECODE_RULES_PATH = os.path.join(os.path.dirname(__file__), "sourcecode")
16
+ MAX_BYTES_DEFAULT = 10_000_000
17
+ SEMGREP_TIMEOUT_DEFAULT = 10
18
18
 
19
+ SOURCECODE_RULES_PATH = os.path.join(
20
+ os.path.dirname(__file__), "sourcecode"
21
+ )
19
22
  log = logging.getLogger("guarddog")
20
23
 
21
24
 
@@ -274,12 +277,17 @@ class Analyzer:
274
277
 
275
278
  def _invoke_semgrep(self, target: str, rules: Iterable[str]):
276
279
  try:
280
+ SEMGREP_MAX_TARGET_BYTES = int(
281
+ os.getenv("GUARDDOG_SEMGREP_MAX_TARGET_BYTES", MAX_BYTES_DEFAULT))
282
+ SEMGREP_TIMEOUT = int(
283
+ os.getenv("GUARDDOG_SEMGREP_TIMEOUT", SEMGREP_TIMEOUT_DEFAULT))
277
284
  cmd = ["semgrep"]
278
285
  for rule in rules:
279
286
  cmd.extend(["--config", rule])
280
287
 
281
288
  for excluded in self.exclude:
282
289
  cmd.append(f"--exclude='{excluded}'")
290
+ cmd.append(f"--timeout={SEMGREP_TIMEOUT}")
283
291
  cmd.append("--no-git-ignore")
284
292
  cmd.append("--json")
285
293
  cmd.append("--quiet")
@@ -302,6 +310,8 @@ output: {e.output}
302
310
  raise Exception(error_message)
303
311
  except json.JSONDecodeError as e:
304
312
  raise Exception("unable to parse semgrep JSON output: " + str(e))
313
+ except ValueError as e:
314
+ raise Exception("Invalid environment variable value: " + str(e))
305
315
 
306
316
  def _format_semgrep_response(self, response, rule=None, targetpath=None):
307
317
  """