cycode 3.24.2__py3-none-any.whl → 3.24.3.dev1__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.
cycode/__init__.py CHANGED
@@ -5,4 +5,4 @@ import time as _time
5
5
  # end-to-end scan duration from the moment the user actually triggered it.
6
6
  _BOOT_WALL: float = _time.time()
7
7
 
8
- __version__ = '3.24.2' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
8
+ __version__ = '3.24.3.dev1' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
@@ -12,9 +12,12 @@ from cycode.cli.apps.scan.commit_range_scanner import (
12
12
  )
13
13
  from cycode.cli.config import configuration_manager
14
14
  from cycode.cli.console import console
15
+ from cycode.cli.exceptions.custom_exceptions import PrePushInputNotFoundError
15
16
  from cycode.cli.exceptions.handle_scan_errors import handle_scan_exception
16
17
  from cycode.cli.files_collector.commit_range_documents import (
17
18
  calculate_pre_push_commit_range,
19
+ get_pre_commit_framework_push_range,
20
+ is_invoked_by_pre_commit_framework,
18
21
  parse_pre_push_input,
19
22
  )
20
23
  from cycode.cli.logger import logger
@@ -43,17 +46,8 @@ def pre_push_command(
43
46
  command_scan_type = ctx.info_name
44
47
  timeout = configuration_manager.get_pre_push_command_timeout(command_scan_type)
45
48
  with TimeoutAfter(timeout):
46
- push_update_details = parse_pre_push_input()
47
- if not push_update_details:
48
- logger.info('No pre-push input found, nothing to scan')
49
- return
50
-
51
- commit_range = calculate_pre_push_commit_range(push_update_details)
49
+ commit_range = _get_pre_push_commit_range()
52
50
  if not commit_range:
53
- logger.info(
54
- 'No new commits found for pushed branch, %s',
55
- {'push_update_details': push_update_details},
56
- )
57
51
  return
58
52
 
59
53
  scan_commit_range(
@@ -67,3 +61,26 @@ def pre_push_command(
67
61
  console.print(consts.PRE_RECEIVE_AND_PUSH_REMEDIATION_MESSAGE)
68
62
  except Exception as e:
69
63
  handle_scan_exception(ctx, e)
64
+
65
+
66
+ def _get_pre_push_commit_range() -> Optional[str]:
67
+ commit_range = get_pre_commit_framework_push_range()
68
+ if commit_range:
69
+ logger.debug('Using push details from the pre-commit framework, %s', {'commit_range': commit_range})
70
+ return commit_range
71
+
72
+ if is_invoked_by_pre_commit_framework():
73
+ # the framework consumed git's stdin but did not tell us what is being pushed
74
+ raise PrePushInputNotFoundError
75
+
76
+ push_update_details = parse_pre_push_input()
77
+ if not push_update_details:
78
+ # git runs the hook with empty input when everything is up-to-date
79
+ logger.info('No pre-push input found, nothing to scan')
80
+ return None
81
+
82
+ commit_range = calculate_pre_push_commit_range(push_update_details)
83
+ if not commit_range:
84
+ logger.info('No new commits found for pushed branch, %s', {'push_update_details': push_update_details})
85
+
86
+ return commit_range
@@ -7,7 +7,7 @@ from cycode.cli import consts
7
7
  from cycode.cli.apps.scan.aggregation_report import try_get_aggregation_report_url_if_needed
8
8
  from cycode.cli.apps.scan.detection_excluder import exclude_irrelevant_document_detections
9
9
  from cycode.cli.models import Document, DocumentDetections, LocalScanResult
10
- from cycode.cli.utils.path_utils import get_path_by_os, normalize_file_path
10
+ from cycode.cli.utils.path_utils import concat_unique_id, get_path_by_os, normalize_file_path
11
11
  from cycode.cyclient.models import (
12
12
  Detection,
13
13
  DetectionSchema,
@@ -28,8 +28,15 @@ logger = get_logger('Scan Results')
28
28
  def _get_document_by_file_name(
29
29
  documents: list[Document], file_name: str, unique_id: Optional[str] = None
30
30
  ) -> Optional[Document]:
31
+ normalized_file_name = normalize_file_path(file_name)
31
32
  for document in documents:
32
- if normalize_file_path(document.path) == normalize_file_path(file_name) and document.unique_id == unique_id:
33
+ if normalize_file_path(document.path) == normalized_file_name and document.unique_id == unique_id:
34
+ return document
35
+
36
+ if (
37
+ document.unique_id
38
+ and normalize_file_path(concat_unique_id(document.path, document.unique_id)) == normalized_file_name
39
+ ):
33
40
  return document
34
41
 
35
42
  return None
@@ -50,6 +57,10 @@ def _get_document_detections(
50
57
  )
51
58
 
52
59
  document = _get_document_by_file_name(documents_to_scan, file_name, commit_id)
60
+ if document is None:
61
+ logger.debug('Failed to find the document of the violated file, %s', {'file_name': file_name})
62
+ document = Document(file_name, '', unique_id=commit_id)
63
+
53
64
  document_detections.append(DocumentDetections(document=document, detections=detections_per_file.detections))
54
65
 
55
66
  return document_detections
cycode/cli/consts.py CHANGED
@@ -6,6 +6,8 @@ PRE_COMMIT_COMMAND_SCAN_TYPE = 'pre-commit'
6
6
  PRE_COMMIT_COMMAND_SCAN_TYPE_OLD = 'pre_commit'
7
7
  PRE_RECEIVE_COMMAND_SCAN_TYPE = 'pre-receive'
8
8
  PRE_RECEIVE_COMMAND_SCAN_TYPE_OLD = 'pre_receive'
9
+ PRE_PUSH_COMMAND_SCAN_TYPE = 'pre-push'
10
+ PRE_PUSH_COMMAND_SCAN_TYPE_OLD = 'pre_push'
9
11
  COMMIT_HISTORY_COMMAND_SCAN_TYPE = 'commit-history'
10
12
  COMMIT_HISTORY_COMMAND_SCAN_TYPE_OLD = 'commit_history'
11
13
 
@@ -193,6 +195,8 @@ COMMIT_RANGE_BASED_COMMAND_SCAN_TYPES = [
193
195
  PRE_COMMIT_COMMAND_SCAN_TYPE_OLD,
194
196
  PRE_RECEIVE_COMMAND_SCAN_TYPE,
195
197
  PRE_RECEIVE_COMMAND_SCAN_TYPE_OLD,
198
+ PRE_PUSH_COMMAND_SCAN_TYPE,
199
+ PRE_PUSH_COMMAND_SCAN_TYPE_OLD,
196
200
  COMMIT_HISTORY_COMMAND_SCAN_TYPE,
197
201
  COMMIT_HISTORY_COMMAND_SCAN_TYPE_OLD,
198
202
  ]
@@ -311,6 +315,12 @@ EMPTY_COMMIT_SHA = '0000000000000000000000000000000000000000'
311
315
  GIT_PUSH_OPTION_COUNT_ENV_VAR_NAME = 'GIT_PUSH_OPTION_COUNT'
312
316
  GIT_PUSH_OPTION_ENV_VAR_PREFIX = 'GIT_PUSH_OPTION_'
313
317
 
318
+ # the pre-commit framework consumes git's pre-push stdin and exposes the push details via env vars instead
319
+ PRE_COMMIT_FRAMEWORK_ENV_VAR_NAME = 'PRE_COMMIT'
320
+ PRE_COMMIT_FROM_REF_ENV_VAR_NAME = 'PRE_COMMIT_FROM_REF'
321
+ PRE_COMMIT_TO_REF_ENV_VAR_NAME = 'PRE_COMMIT_TO_REF'
322
+ PRE_COMMIT_REMOTE_BRANCH_ENV_VAR_NAME = 'PRE_COMMIT_REMOTE_BRANCH'
323
+
314
324
  SKIP_SCAN_FLAG = 'skip-cycode-scan'
315
325
  VERBOSE_SCAN_FLAG = 'verbose'
316
326
 
@@ -80,6 +80,11 @@ class FileCollectionError(CycodeError):
80
80
  return self.error_message
81
81
 
82
82
 
83
+ class PrePushInputNotFoundError(CycodeError):
84
+ def __str__(self) -> str:
85
+ return 'Neither git pre-push input nor pre-commit framework push details were found'
86
+
87
+
83
88
  class AuthProcessError(CycodeError):
84
89
  def __init__(self, error_message: str) -> None:
85
90
  self.error_message = error_message
@@ -40,6 +40,12 @@ def handle_scan_exception(ctx: typer.Context, err: Exception, *, return_exceptio
40
40
  message='File collection failed. '
41
41
  'Use --no-restore to skip dependency restoration, or fix the underlying issue.',
42
42
  ),
43
+ custom_exceptions.PrePushInputNotFoundError: CliError(
44
+ soft_fail=False,
45
+ code='pre_push_input_not_found',
46
+ message='Could not determine which commits are being pushed, so nothing was scanned. '
47
+ 'Run this command from a git pre-push hook',
48
+ ),
43
49
  custom_exceptions.TfplanKeyError: CliError(
44
50
  soft_fail=True,
45
51
  code='key_error',
@@ -85,7 +85,11 @@ def collect_commit_range_diff_documents(
85
85
 
86
86
  repo = git_proxy.get_repo(path)
87
87
 
88
- normalized_commit_range = normalize_commit_range(commit_range, path)
88
+ if commit_range == consts.COMMIT_RANGE_ALL_COMMITS:
89
+ # everything reachable from HEAD, including the root commit
90
+ normalized_commit_range = consts.GIT_HEAD_COMMIT_REV
91
+ else:
92
+ normalized_commit_range = normalize_commit_range(commit_range, path)
89
93
 
90
94
  total_commits_count = int(repo.git.rev_list('--count', normalized_commit_range))
91
95
  logger.debug(
@@ -104,8 +108,10 @@ def collect_commit_range_diff_documents(
104
108
 
105
109
  commit_id = commit.hexsha
106
110
  commit_ids_to_scan.append(commit_id)
107
- parent = commit.parents[0] if commit.parents else git_proxy.get_null_tree()
108
- diff_index = commit.diff(parent, create_patch=True, R=True)
111
+ if commit.parents:
112
+ diff_index = commit.diff(commit.parents[0], create_patch=True, R=True)
113
+ else:
114
+ diff_index = commit.diff(git_proxy.get_null_tree(), create_patch=True)
109
115
  for diff in diff_index:
110
116
  commit_documents_to_scan.append(
111
117
  Document(
@@ -264,6 +270,31 @@ def parse_pre_push_input() -> Optional[str]:
264
270
  return pre_push_input.splitlines()[0]
265
271
 
266
272
 
273
+ def is_invoked_by_pre_commit_framework() -> bool:
274
+ return os.getenv(consts.PRE_COMMIT_FRAMEWORK_ENV_VAR_NAME) == '1'
275
+
276
+
277
+ def get_pre_commit_framework_push_range() -> Optional[str]:
278
+ """Get the commit range to scan when invoked as a pre-push hook by the pre-commit framework.
279
+
280
+ The pre-commit framework reads git's pre-push stdin itself and never forwards it to hooks.
281
+ Instead, it exposes the already resolved push details via environment variables.
282
+
283
+ Returns:
284
+ Commit range string for scanning, or None if not invoked by the pre-commit framework
285
+ """
286
+ from_ref = os.getenv(consts.PRE_COMMIT_FROM_REF_ENV_VAR_NAME)
287
+ to_ref = os.getenv(consts.PRE_COMMIT_TO_REF_ENV_VAR_NAME)
288
+ if from_ref and to_ref:
289
+ return f'{from_ref}..{to_ref}'
290
+
291
+ # the framework omits the refs when the pushed history includes the root commit
292
+ if os.getenv(consts.PRE_COMMIT_REMOTE_BRANCH_ENV_VAR_NAME):
293
+ return consts.COMMIT_RANGE_ALL_COMMITS
294
+
295
+ return None
296
+
297
+
267
298
  def _read_hook_input_from_stdin() -> str:
268
299
  """Read input from stdin when called from a hook.
269
300
 
@@ -89,7 +89,8 @@ def _get_code_snippet_syntax_from_git_diff(
89
89
  detection_position = detection_details.get('start_position', -1)
90
90
  violation_length = detection_details.get('length', -1)
91
91
 
92
- line_content = document.content.splitlines()[detection_line]
92
+ document_content_lines = document.content.splitlines()
93
+ line_content = document_content_lines[detection_line] if 0 <= detection_line < len(document_content_lines) else ''
93
94
  detection_position_in_line = get_position_in_line(document.content, detection_position)
94
95
  if scan_type == consts.SECRET_SCAN_TYPE and obfuscate:
95
96
  violation = line_content[detection_position_in_line : detection_position_in_line + violation_length]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cycode
3
- Version: 3.24.2
3
+ Version: 3.24.3.dev1
4
4
  Summary: Boost security in your dev lifecycle via SAST, SCA, Secrets & IaC scanning.
5
5
  License-Expression: MIT
6
6
  License-File: LICENCE
@@ -304,7 +304,7 @@ Perform the following steps to install the pre-commit hook:
304
304
  ```yaml
305
305
  repos:
306
306
  - repo: https://github.com/cycodehq/cycode-cli
307
- rev: v3.5.0
307
+ rev: v3.25.0
308
308
  hooks:
309
309
  - id: cycode
310
310
  stages: [pre-commit]
@@ -315,7 +315,7 @@ Perform the following steps to install the pre-commit hook:
315
315
  ```yaml
316
316
  repos:
317
317
  - repo: https://github.com/cycodehq/cycode-cli
318
- rev: v3.5.0
318
+ rev: v3.25.0
319
319
  hooks:
320
320
  - id: cycode
321
321
  stages: [pre-commit]
@@ -354,7 +354,7 @@ To install the pre-push hook in addition to or instead of the pre-commit hook:
354
354
  ```yaml
355
355
  repos:
356
356
  - repo: https://github.com/cycodehq/cycode-cli
357
- rev: v3.5.0
357
+ rev: v3.25.0
358
358
  hooks:
359
359
  - id: cycode-pre-push
360
360
  stages: [pre-push]
@@ -1155,7 +1155,7 @@ To set up the pre-push hook using the pre-commit framework:
1155
1155
  ```yaml
1156
1156
  repos:
1157
1157
  - repo: https://github.com/cycodehq/cycode-cli
1158
- rev: v3.5.0
1158
+ rev: v3.25.0
1159
1159
  hooks:
1160
1160
  - id: cycode-pre-push
1161
1161
  stages: [pre-push]
@@ -1166,7 +1166,7 @@ To set up the pre-push hook using the pre-commit framework:
1166
1166
  ```yaml
1167
1167
  repos:
1168
1168
  - repo: https://github.com/cycodehq/cycode-cli
1169
- rev: v3.5.0
1169
+ rev: v3.25.0
1170
1170
  hooks:
1171
1171
  - id: cycode-pre-push # Secrets scan
1172
1172
  stages: [pre-push]
@@ -1192,16 +1192,15 @@ To set up the pre-push hook using the pre-commit framework:
1192
1192
 
1193
1193
  #### How Pre-Push Scanning Works
1194
1194
 
1195
- The pre-push hook:
1196
- - Receives information about what commits are being pushed
1197
- - Calculates the appropriate commit range to scan
1198
- - For new branches: scans all commits from the merge base with the default branch
1199
- - For existing branches: scans only the new commits since the last push
1200
- - Runs the same comprehensive scanning as other Cycode scan modes
1195
+ The hook scans every commit being pushed, one commit at a time, so a secret added in one commit and removed in a later one is still caught. When installed through the pre-commit framework, the pushed range is taken from the framework: new commits since the remote branch for existing branches, and the commits not yet on the remote for new branches (all commits when pushing to an empty remote). When run from a hand-written `.git/hooks/pre-push`, the range is read from git's hook input, and new branches are scanned from their merge base with the default branch (see below).
1196
+
1197
+ Pushes with nothing to scan, such as tags, branch deletions, and up-to-date pushes, pass without a scan. If the hook cannot determine what is being pushed, it fails and blocks the push instead of passing silently.
1198
+
1199
+ The Cycode pre-push hooks set `always_run: true` and `pass_filenames: false`, because the scan covers the pushed commits rather than a list of files. Without `always_run`, the pre-commit framework skips the hook when the pushed commits add up to no changed files, such as a secret added in one commit and deleted in the next. Without `pass_filenames: false`, the framework passes changed file names the scan does not use, and on large pushes it splits them into batches and runs the full scan once per batch. If you define the hook yourself (for example, as a `repo: local` hook), set both options.
1201
1200
 
1202
1201
  #### Smart Default Branch Detection
1203
1202
 
1204
- The pre-push hook intelligently detects the default branch for merge base calculation using this priority order:
1203
+ When run from a hand-written hook, the pre-push scan detects the default branch for merge base calculation using this priority order:
1205
1204
 
1206
1205
  1. **Environment Variable**: `CYCODE_DEFAULT_BRANCH` - allows manual override
1207
1206
  2. **Git Remote HEAD**: Uses `git symbolic-ref refs/remotes/origin/HEAD` to detect the actual remote default branch
@@ -1,4 +1,4 @@
1
- cycode/__init__.py,sha256=SNu9CKymlQOWGqEVBu23DySn2Aolsz1weuSM2GeCUto,391
1
+ cycode/__init__.py,sha256=wtCAJfg1G9S77BjTZnEOGdvsx7uh8NyJbPhKu69su18,396
2
2
  cycode/__main__.py,sha256=Z3bD5yrA7yPvAChcADQrqCaZd0ChGI1gdiwALwbWJ6U,104
3
3
  cycode/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  cycode/cli/app.py,sha256=AlR2durAEbsa47PDfIj7JtMvJDWA_Dq6wPtVuMJYSCs,10250
@@ -78,7 +78,7 @@ cycode/cli/apps/scan/path/path_command.py,sha256=x4HXqq1Wy6onziKMc6ELQxqeI5k-m3t
78
78
  cycode/cli/apps/scan/pre_commit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
79
  cycode/cli/apps/scan/pre_commit/pre_commit_command.py,sha256=49vnVAIiLtcG7lsBX2vKhS-5kqC8wKqCUP-3G8ClPVs,465
80
80
  cycode/cli/apps/scan/pre_push/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
- cycode/cli/apps/scan/pre_push/pre_push_command.py,sha256=i2k1-il7tOtuIj2ZksjdtgnRVXbj0p6tMrMQuxckynY,2554
81
+ cycode/cli/apps/scan/pre_push/pre_push_command.py,sha256=OrEhK176bmGHf104jT8LhtaBwy24ZVYDB06s4y3VOig,3233
82
82
  cycode/cli/apps/scan/pre_receive/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
83
  cycode/cli/apps/scan/pre_receive/pre_receive_command.py,sha256=v1sXjl9EKTG65065DzJRJ78we96cqLztzDWw89KUb0o,2522
84
84
  cycode/cli/apps/scan/remote_url_resolver.py,sha256=JCjaAzDMxGFDT7twBpZzjgEHGwlaGIxWG_Y7DSehsb0,5651
@@ -89,7 +89,7 @@ cycode/cli/apps/scan/scan_ci/ci_integrations.py,sha256=3ZUv1uLsHC13KTNQ4erQKKDXA
89
89
  cycode/cli/apps/scan/scan_ci/scan_ci_command.py,sha256=37I6YTs5UWYtbnDe1EeYZnhV1twFTDUrniZ4Sf2_6Kk,562
90
90
  cycode/cli/apps/scan/scan_command.py,sha256=_XN1Pz21-rRFKYxN-Bn_iDtEd1zE4drcSfSa1b4b5Us,7988
91
91
  cycode/cli/apps/scan/scan_parameters.py,sha256=F7SCTuTR_iGfztvwapVJjjq9mXhuQv9EvcaX-YyiILI,1481
92
- cycode/cli/apps/scan/scan_result.py,sha256=_JtcNYtyX39CzJDk-KtpoAP5JdKSdk1I1r315bmjvNA,8699
92
+ cycode/cli/apps/scan/scan_result.py,sha256=13gmFugcQ_ksgpImhiLOfuQ1bEp0gcJhTiszl6dBy14,9167
93
93
  cycode/cli/apps/status/__init__.py,sha256=uxfkEBafO7Da0mPc1fZhwoO0RTtyXp2a5T3LJTZxubU,371
94
94
  cycode/cli/apps/status/get_cli_status.py,sha256=1UAVyKPpYk2S8nQYshKD1x5xgWR-hCTchLChxNU0JVA,2577
95
95
  cycode/cli/apps/status/models.py,sha256=2SBpJlh_MNCPxv8aXMV5D4GfK6-G-XB0GlMFZ3Nep_o,1907
@@ -98,16 +98,16 @@ cycode/cli/apps/status/version_command.py,sha256=c6Iko_rmZo9T_kQSd3HUloBi40Qv7cj
98
98
  cycode/cli/cli_types.py,sha256=Xqf2eSx3yUvFoQG29ObUZ3QLVBhtZ4mkqxf_cJXpntU,3406
99
99
  cycode/cli/config.py,sha256=Op-lX_neanJtvPvoOEx4ByBdveh5ygElIga1FdSHhOI,299
100
100
  cycode/cli/console.py,sha256=vp-DHwlkwpwdsPyfwGdjsPF-6-Bi3f8W7G-W_YXCMH8,1914
101
- cycode/cli/consts.py,sha256=7RXx2ezNO7Ss_tEBcNsjklYt0esldiqM0iKhgIFrDt8,10268
101
+ cycode/cli/consts.py,sha256=UnYIqdoYbfSBP64UTwNhVzhyNdJA0N-0-dOgOR3eI98,10754
102
102
  cycode/cli/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
- cycode/cli/exceptions/custom_exceptions.py,sha256=SImny5zXhnKocTw6GDaTm9x4I3bWRZW4wZEXg2Q-NTI,4742
103
+ cycode/cli/exceptions/custom_exceptions.py,sha256=ko1A5vw6s5Q1OVtQirjWV_3igTL1_Y5bzvT39WPOB2U,4913
104
104
  cycode/cli/exceptions/handle_ai_remediation_errors.py,sha256=mA70upSYXK3rL_fmanzKYeUzLENhpXdkW8k3aIHrKzU,785
105
105
  cycode/cli/exceptions/handle_auth_errors.py,sha256=m3q9keRUKAg6OnFlOlzpNUFzdQHGEeyq8N2Ywqs-QQ4,597
106
106
  cycode/cli/exceptions/handle_errors.py,sha256=za3vQcM_eFTvbT-53tTc6ky-J0wav6lupD1hXWw0e54,881
107
107
  cycode/cli/exceptions/handle_report_sbom_errors.py,sha256=bi0EizHtQLL-ovhHRH98CZ7qXdDPLTYnI59Jn1Y5c0E,926
108
- cycode/cli/exceptions/handle_scan_errors.py,sha256=po91RQgRi0beQChSrjuiV2DXVARb-NOqzpVDhbvRKmw,2617
108
+ cycode/cli/exceptions/handle_scan_errors.py,sha256=Wrs54WpOXGmisq2v_wvUY1Ven8Rw7DFRT_fPU7FIQSs,2921
109
109
  cycode/cli/files_collector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
- cycode/cli/files_collector/commit_range_documents.py,sha256=Bvv9MJBoiraXI396A46412x9zgusjPS3g3nWdSFprPE,21095
110
+ cycode/cli/files_collector/commit_range_documents.py,sha256=LgJSLoB1JNI3CIvDKTSvIK9BBIwA1JLOzIWJXzmMXYY,22334
111
111
  cycode/cli/files_collector/documents_walk_ignore.py,sha256=G4e-3vfP4WZ7wa9-VbZ66xCKCioTXnPBfbrs4_hh8xY,4705
112
112
  cycode/cli/files_collector/file_excluder.py,sha256=atua_L2qDbmhFXj4nB6rDqSn5--MubLGtUPSOXwXUqE,8231
113
113
  cycode/cli/files_collector/iac/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -161,7 +161,7 @@ cycode/cli/printers/tables/table_printer.py,sha256=8lYrjX_jaQrckOe7SSdIl6_uvyGbC
161
161
  cycode/cli/printers/tables/table_printer_base.py,sha256=qCXn9ahV0ZeJ2MqxEeMhrecujoFgeLcmHjefyt5VrU4,1552
162
162
  cycode/cli/printers/text_printer.py,sha256=jdS9QaMijVsM5-r5JQ1rZQDbJWAXVnXkrFKrH6o7Lxo,5411
163
163
  cycode/cli/printers/utils/__init__.py,sha256=eTrDlfmd8LsaWk8D33kCbypPjYMBsE8-7TQ3SUMbrog,169
164
- cycode/cli/printers/utils/code_snippet_syntax.py,sha256=2rfw1T3Nac-8gZFVlJLjceCMp3u3CHEx5xxLykBQGqY,4680
164
+ cycode/cli/printers/utils/code_snippet_syntax.py,sha256=gLoyQS0TjSB9Kk-B9n-M3_eUy7XpkIZZjzC4OMLI6jo,4793
165
165
  cycode/cli/printers/utils/detection_data.py,sha256=-JR4oDLQ-MA0TXWPYuly1ju2GpQB2fsAfd0053zMFBw,3522
166
166
  cycode/cli/printers/utils/detection_ordering/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
167
  cycode/cli/printers/utils/detection_ordering/common_ordering.py,sha256=WxdDGL9Hj8ne4sdWcmTjUIwWecOOJO7JE3baC9gSTzQ,2211
@@ -217,8 +217,8 @@ cycode/cyclient/report_client.py,sha256=Scq30NeJPzgXv0hPLO1U05AdE9i_2iu6cIrSKpEJ
217
217
  cycode/cyclient/scan_client.py,sha256=DqAZ7u6Z_cvw9A9RlLkAQUgLRwPCCAsUq5U9umt4F7Y,16955
218
218
  cycode/cyclient/scan_config_base.py,sha256=mXsPZGYCtp85rv5GIige40yQZXuRcEKUW-VQJ0vgFzk,1201
219
219
  cycode/logger.py,sha256=EfZGRK6VC5rE_LAjIcRrHFiQCueylCDXoG6bvGkrIME,2111
220
- cycode-3.24.2.dist-info/METADATA,sha256=pq5GUnFBB0PJjCvESRjnd5RgJ6TAC2c8fkNG7bcxPIY,93682
221
- cycode-3.24.2.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
222
- cycode-3.24.2.dist-info/entry_points.txt,sha256=iDcVJM8ByLElVgvBgtYxDjw1kT7O8Mo0LcWZIT5L3Ig,45
223
- cycode-3.24.2.dist-info/licenses/LICENCE,sha256=2Wx4N6mD_4xB7-E3hPkZ3MPhpJy__k_I8MaCSO-PDRo,1068
224
- cycode-3.24.2.dist-info/RECORD,,
220
+ cycode-3.24.3.dev1.dist-info/METADATA,sha256=A9vzVVmsboZ4zKuuDIw4JT2uc7tj9yzLZyZcP5_Lpb8,94757
221
+ cycode-3.24.3.dev1.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
222
+ cycode-3.24.3.dev1.dist-info/entry_points.txt,sha256=iDcVJM8ByLElVgvBgtYxDjw1kT7O8Mo0LcWZIT5L3Ig,45
223
+ cycode-3.24.3.dev1.dist-info/licenses/LICENCE,sha256=2Wx4N6mD_4xB7-E3hPkZ3MPhpJy__k_I8MaCSO-PDRo,1068
224
+ cycode-3.24.3.dev1.dist-info/RECORD,,