Skip to content

Commit bcdb6e4

Browse files
committed
CM-53929 - Fix formatting
1 parent cca495b commit bcdb6e4

File tree

11 files changed

+226
-211
lines changed

11 files changed

+226
-211
lines changed

cycode/cli/apps/report/sbom/path/path_command.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,11 @@ def path_command(
3939
try:
4040
is_cycodeignore_allowed = is_cycodeignore_allowed_by_scan_config(ctx)
4141
documents = get_relevant_documents(
42-
progress_bar, SbomReportProgressBarSection.PREPARE_LOCAL_FILES, consts.SCA_SCAN_TYPE, (str(path),), is_cycodeignore_allowed=is_cycodeignore_allowed
42+
progress_bar,
43+
SbomReportProgressBarSection.PREPARE_LOCAL_FILES,
44+
consts.SCA_SCAN_TYPE,
45+
(str(path),),
46+
is_cycodeignore_allowed=is_cycodeignore_allowed,
4347
)
4448
# TODO(MarshalX): combine perform_pre_scan_documents_actions with get_relevant_document.
4549
# unhardcode usage of context in perform_pre_scan_documents_actions

cycode/cli/apps/scan/code_scanner.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@
2323
from cycode.cli.models import CliError, Document, LocalScanResult
2424
from cycode.cli.utils.progress_bar import ScanProgressBarSection
2525
from cycode.cli.utils.scan_batch import run_parallel_batched_scan
26-
from cycode.cli.utils.scan_utils import generate_unique_scan_id, is_cycodeignore_allowed_by_scan_config, set_issue_detected_by_scan_results
26+
from cycode.cli.utils.scan_utils import (
27+
generate_unique_scan_id,
28+
is_cycodeignore_allowed_by_scan_config,
29+
set_issue_detected_by_scan_results,
30+
)
2731
from cycode.cyclient.models import ZippedFileScanResult
2832
from cycode.logger import get_logger
2933

@@ -43,7 +47,13 @@ def scan_disk_files(ctx: typer.Context, paths: tuple[str, ...]) -> None:
4347

4448
try:
4549
is_cycodeignore_allowed = is_cycodeignore_allowed_by_scan_config(ctx)
46-
documents = get_relevant_documents(progress_bar, ScanProgressBarSection.PREPARE_LOCAL_FILES, scan_type, paths, is_cycodeignore_allowed=is_cycodeignore_allowed)
50+
documents = get_relevant_documents(
51+
progress_bar,
52+
ScanProgressBarSection.PREPARE_LOCAL_FILES,
53+
scan_type,
54+
paths,
55+
is_cycodeignore_allowed=is_cycodeignore_allowed,
56+
)
4757
add_sca_dependencies_tree_documents_if_needed(ctx, scan_type, documents)
4858
scan_documents(ctx, documents, get_scan_parameters(ctx, paths))
4959
except Exception as e:

cycode/cli/apps/scan/commit_range_scanner.py

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929
parse_commit_range_sast,
3030
parse_commit_range_sca,
3131
)
32+
from cycode.cli.files_collector.documents_walk_ignore import filter_documents_with_cycodeignore
3233
from cycode.cli.files_collector.file_excluder import excluder
3334
from cycode.cli.files_collector.models.in_memory_zip import InMemoryZip
34-
from cycode.cli.files_collector.documents_walk_ignore import filter_documents_with_cycodeignore
3535
from cycode.cli.files_collector.sca.sca_file_collector import (
3636
perform_sca_pre_commit_range_scan_actions,
3737
perform_sca_pre_hook_range_scan_actions,
@@ -41,7 +41,11 @@
4141
from cycode.cli.utils.git_proxy import git_proxy
4242
from cycode.cli.utils.path_utils import get_path_by_os
4343
from cycode.cli.utils.progress_bar import ScanProgressBarSection
44-
from cycode.cli.utils.scan_utils import generate_unique_scan_id, is_cycodeignore_allowed_by_scan_config, set_issue_detected_by_scan_results
44+
from cycode.cli.utils.scan_utils import (
45+
generate_unique_scan_id,
46+
is_cycodeignore_allowed_by_scan_config,
47+
set_issue_detected_by_scan_results,
48+
)
4549
from cycode.cyclient.models import ZippedFileScanResult
4650
from cycode.logger import get_logger
4751

@@ -189,9 +193,11 @@ def _scan_sca_commit_range(ctx: typer.Context, repo_path: str, commit_range: str
189193
)
190194
from_commit_documents = excluder.exclude_irrelevant_documents_to_scan(consts.SCA_SCAN_TYPE, from_commit_documents)
191195
to_commit_documents = excluder.exclude_irrelevant_documents_to_scan(consts.SCA_SCAN_TYPE, to_commit_documents)
192-
196+
193197
is_cycodeignore_allowed = is_cycodeignore_allowed_by_scan_config(ctx)
194-
from_commit_documents = filter_documents_with_cycodeignore(from_commit_documents, repo_path, is_cycodeignore_allowed)
198+
from_commit_documents = filter_documents_with_cycodeignore(
199+
from_commit_documents, repo_path, is_cycodeignore_allowed
200+
)
195201
to_commit_documents = filter_documents_with_cycodeignore(to_commit_documents, repo_path, is_cycodeignore_allowed)
196202

197203
perform_sca_pre_commit_range_scan_actions(
@@ -208,9 +214,11 @@ def _scan_secret_commit_range(
208214
diff_documents_to_scan = excluder.exclude_irrelevant_documents_to_scan(
209215
consts.SECRET_SCAN_TYPE, commit_diff_documents_to_scan
210216
)
211-
217+
212218
is_cycodeignore_allowed = is_cycodeignore_allowed_by_scan_config(ctx)
213-
diff_documents_to_scan = filter_documents_with_cycodeignore(diff_documents_to_scan, repo_path, is_cycodeignore_allowed)
219+
diff_documents_to_scan = filter_documents_with_cycodeignore(
220+
diff_documents_to_scan, repo_path, is_cycodeignore_allowed
221+
)
214222

215223
scan_documents(
216224
ctx, diff_documents_to_scan, get_scan_parameters(ctx, (repo_path,)), is_git_diff=True, is_commit_range=True
@@ -229,10 +237,10 @@ def _scan_sast_commit_range(ctx: typer.Context, repo_path: str, commit_range: st
229237
to_commit_rev,
230238
reverse_diff=False,
231239
)
232-
240+
233241
commit_documents = excluder.exclude_irrelevant_documents_to_scan(consts.SAST_SCAN_TYPE, commit_documents)
234242
diff_documents = excluder.exclude_irrelevant_documents_to_scan(consts.SAST_SCAN_TYPE, diff_documents)
235-
243+
236244
is_cycodeignore_allowed = is_cycodeignore_allowed_by_scan_config(ctx)
237245
commit_documents = filter_documents_with_cycodeignore(commit_documents, repo_path, is_cycodeignore_allowed)
238246
diff_documents = filter_documents_with_cycodeignore(diff_documents, repo_path, is_cycodeignore_allowed)
@@ -267,15 +275,17 @@ def _scan_sca_pre_commit(ctx: typer.Context, repo_path: str) -> None:
267275
progress_bar_section=ScanProgressBarSection.PREPARE_LOCAL_FILES,
268276
repo_path=repo_path,
269277
)
270-
278+
271279
git_head_documents = excluder.exclude_irrelevant_documents_to_scan(consts.SCA_SCAN_TYPE, git_head_documents)
272280
pre_committed_documents = excluder.exclude_irrelevant_documents_to_scan(
273281
consts.SCA_SCAN_TYPE, pre_committed_documents
274282
)
275-
283+
276284
is_cycodeignore_allowed = is_cycodeignore_allowed_by_scan_config(ctx)
277285
git_head_documents = filter_documents_with_cycodeignore(git_head_documents, repo_path, is_cycodeignore_allowed)
278-
pre_committed_documents = filter_documents_with_cycodeignore(pre_committed_documents, repo_path, is_cycodeignore_allowed)
286+
pre_committed_documents = filter_documents_with_cycodeignore(
287+
pre_committed_documents, repo_path, is_cycodeignore_allowed
288+
)
279289

280290
perform_sca_pre_hook_range_scan_actions(repo_path, git_head_documents, pre_committed_documents)
281291

@@ -308,7 +318,7 @@ def _scan_secret_pre_commit(ctx: typer.Context, repo_path: str) -> None:
308318
)
309319

310320
documents_to_scan = excluder.exclude_irrelevant_documents_to_scan(consts.SECRET_SCAN_TYPE, documents_to_scan)
311-
321+
312322
is_cycodeignore_allowed = is_cycodeignore_allowed_by_scan_config(ctx)
313323
documents_to_scan = filter_documents_with_cycodeignore(documents_to_scan, repo_path, is_cycodeignore_allowed)
314324

@@ -323,14 +333,16 @@ def _scan_sast_pre_commit(ctx: typer.Context, repo_path: str, **_) -> None:
323333
progress_bar_section=ScanProgressBarSection.PREPARE_LOCAL_FILES,
324334
repo_path=repo_path,
325335
)
326-
336+
327337
pre_committed_documents = excluder.exclude_irrelevant_documents_to_scan(
328338
consts.SAST_SCAN_TYPE, pre_committed_documents
329339
)
330340
diff_documents = excluder.exclude_irrelevant_documents_to_scan(consts.SAST_SCAN_TYPE, diff_documents)
331-
341+
332342
is_cycodeignore_allowed = is_cycodeignore_allowed_by_scan_config(ctx)
333-
pre_committed_documents = filter_documents_with_cycodeignore(pre_committed_documents, repo_path, is_cycodeignore_allowed)
343+
pre_committed_documents = filter_documents_with_cycodeignore(
344+
pre_committed_documents, repo_path, is_cycodeignore_allowed
345+
)
334346
diff_documents = filter_documents_with_cycodeignore(diff_documents, repo_path, is_cycodeignore_allowed)
335347

336348
_scan_commit_range_documents(ctx, pre_committed_documents, diff_documents, scan_parameters=scan_parameters)

cycode/cli/apps/scan/repository/repository_command.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
from cycode.cli.apps.scan.code_scanner import scan_documents
99
from cycode.cli.apps.scan.scan_parameters import get_scan_parameters
1010
from cycode.cli.exceptions.handle_scan_errors import handle_scan_exception
11+
from cycode.cli.files_collector.documents_walk_ignore import filter_documents_with_cycodeignore
1112
from cycode.cli.files_collector.file_excluder import excluder
1213
from cycode.cli.files_collector.repository_documents import get_git_repository_tree_file_entries
1314
from cycode.cli.files_collector.sca.sca_file_collector import add_sca_dependencies_tree_documents_if_needed
14-
from cycode.cli.files_collector.documents_walk_ignore import filter_documents_with_cycodeignore
1515
from cycode.cli.logger import logger
1616
from cycode.cli.models import Document
1717
from cycode.cli.utils.path_utils import get_path_by_os
@@ -61,7 +61,7 @@ def repository_command(
6161
)
6262

6363
documents_to_scan = excluder.exclude_irrelevant_documents_to_scan(scan_type, documents_to_scan)
64-
64+
6565
is_cycodeignore_allowed = is_cycodeignore_allowed_by_scan_config(ctx)
6666
documents_to_scan = filter_documents_with_cycodeignore(documents_to_scan, str(path), is_cycodeignore_allowed)
6767

cycode/cli/apps/scan/scan_command.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import click
66
import typer
77

8+
from cycode.cli.apps.scan.remote_url_resolver import _try_get_git_remote_url
89
from cycode.cli.cli_types import ExportTypeOption, ScanTypeOption, ScaScanTypeOption, SeverityOption
910
from cycode.cli.consts import (
1011
ISSUE_DETECTED_STATUS_CODE,
@@ -14,7 +15,6 @@
1415
from cycode.cli.utils import scan_utils
1516
from cycode.cli.utils.get_api_client import get_scan_cycode_client
1617
from cycode.cli.utils.sentry import add_breadcrumb
17-
from cycode.cli.apps.scan.remote_url_resolver import _try_get_git_remote_url
1818

1919
_EXPORT_RICH_HELP_PANEL = 'Export options'
2020
_SCA_RICH_HELP_PANEL = 'SCA options'
@@ -165,11 +165,11 @@ def scan_command(
165165

166166
# Get remote URL from current working directory
167167
remote_url = _try_get_git_remote_url(os.getcwd())
168-
168+
169169
remote_scan_config = scan_client.get_scan_configuration_safe(scan_type, remote_url)
170170
if remote_scan_config:
171171
excluder.apply_scan_config(str(scan_type), remote_scan_config)
172-
172+
173173
ctx.obj['scan_config'] = remote_scan_config
174174

175175
if export_type and export_file:

cycode/cli/files_collector/documents_walk_ignore.py

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def _log_ignored_files(repo_path: str, dirpath: str, ignored_dirnames: list[str]
2929
"""Log ignored files for debugging (similar to walk_ignore function)."""
3030
rel_dirpath = '' if dirpath == repo_path else os.path.relpath(dirpath, repo_path)
3131
display_dir = rel_dirpath or '.'
32-
32+
3333
for is_dir, names in (
3434
(True, ignored_dirnames),
3535
(False, ignored_filenames),
@@ -44,41 +44,36 @@ def _log_ignored_files(repo_path: str, dirpath: str, ignored_dirnames: list[str]
4444
def _build_allowed_paths_set(ignore_filter_manager: IgnoreFilterManager, repo_path: str) -> set[str]:
4545
"""Build set of allowed file paths using walk_with_ignored."""
4646
allowed_paths = set()
47-
48-
for dirpath, dirnames, filenames, ignored_dirnames, ignored_filenames in ignore_filter_manager.walk_with_ignored():
47+
48+
for dirpath, _dirnames, filenames, ignored_dirnames, ignored_filenames in ignore_filter_manager.walk_with_ignored():
4949
_log_ignored_files(repo_path, dirpath, ignored_dirnames, ignored_filenames)
50-
50+
5151
for filename in filenames:
5252
file_path = os.path.join(dirpath, filename)
5353
allowed_paths.add(file_path)
54-
54+
5555
return allowed_paths
5656

5757

5858
def _get_document_check_path(document: 'Document', repo_path: str) -> str:
5959
"""Get the normalized absolute path for a document to check against allowed paths."""
6060
check_path = document.absolute_path
6161
if not check_path:
62-
if os.path.isabs(document.path):
63-
check_path = document.path
64-
else:
65-
check_path = os.path.join(repo_path, document.path)
66-
62+
check_path = document.path if os.path.isabs(document.path) else os.path.join(repo_path, document.path)
63+
6764
return os.path.normpath(check_path)
6865

6966

7067
def _filter_documents_by_allowed_paths(
71-
documents: list['Document'],
72-
allowed_paths: set[str],
73-
repo_path: str
68+
documents: list['Document'], allowed_paths: set[str], repo_path: str
7469
) -> list['Document']:
7570
"""Filter documents by checking if their paths are in the allowed set."""
7671
filtered_documents = []
77-
72+
7873
for document in documents:
7974
try:
8075
check_path = _get_document_check_path(document, repo_path)
81-
76+
8277
if check_path in allowed_paths:
8378
filtered_documents.append(document)
8479
else:
@@ -87,44 +82,42 @@ def _filter_documents_by_allowed_paths(
8782
except Exception as e:
8883
logger.debug('Error processing document %s: %s', document.path, e)
8984
filtered_documents.append(document)
90-
85+
9186
return filtered_documents
9287

9388

9489
def filter_documents_with_cycodeignore(
95-
documents: list['Document'],
96-
repo_path: str,
97-
is_cycodeignore_allowed: bool = True
90+
documents: list['Document'], repo_path: str, is_cycodeignore_allowed: bool = True
9891
) -> list['Document']:
9992
"""Filter documents based on .cycodeignore patterns.
100-
93+
10194
This function uses .cycodeignore file in the repository root to filter out
10295
documents whose paths match any of those patterns.
103-
96+
10497
Args:
10598
documents: List of Document objects to filter
10699
repo_path: Path to the repository root
107100
is_cycodeignore_allowed: Whether .cycodeignore filtering is allowed by scan configuration
108-
101+
109102
Returns:
110103
List of Document objects that don't match any .cycodeignore patterns
111104
"""
112105
if not is_cycodeignore_allowed:
113106
logger.debug('.cycodeignore filtering is not allowed by scan configuration')
114107
return documents
115-
108+
116109
cycodeignore_path = _get_cycodeignore_path(repo_path)
117-
110+
118111
if not os.path.exists(cycodeignore_path):
119112
return documents
120-
113+
121114
logger.info('Using %s for filtering documents', cycodeignore_path)
122-
115+
123116
ignore_filter_manager = _create_ignore_filter_manager(repo_path, cycodeignore_path)
124-
117+
125118
allowed_paths = _build_allowed_paths_set(ignore_filter_manager, repo_path)
126-
119+
127120
filtered_documents = _filter_documents_by_allowed_paths(documents, allowed_paths, repo_path)
128-
121+
129122
logger.debug('Filtered %d documents using .cycodeignore patterns', len(documents) - len(filtered_documents))
130123
return filtered_documents

cycode/cli/files_collector/path_documents.py

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import os
2+
from collections.abc import Generator
23
from typing import TYPE_CHECKING
34

45
from cycode.cli.files_collector.file_excluder import excluder
@@ -18,18 +19,17 @@
1819

1920

2021
def _get_all_existing_files_in_directory(
21-
path: str,
22-
*,
23-
walk_with_ignore_patterns: bool = True,
24-
is_cycodeignore_allowed: bool = True
22+
path: str, *, walk_with_ignore_patterns: bool = True, is_cycodeignore_allowed: bool = True
2523
) -> list[str]:
2624
files: list[str] = []
2725

2826
if walk_with_ignore_patterns:
29-
walk_func = lambda p: walk_ignore(p, is_cycodeignore_allowed=is_cycodeignore_allowed)
27+
28+
def walk_func(path: str) -> Generator[tuple[str, list[str], list[str]], None, None]:
29+
return walk_ignore(path, is_cycodeignore_allowed=is_cycodeignore_allowed)
3030
else:
3131
walk_func = os.walk
32-
32+
3333
for root, _, filenames in walk_func(path):
3434
for filename in filenames:
3535
files.append(os.path.join(root, filename))
@@ -51,12 +51,12 @@ def _get_relevant_files_in_path(path: str, *, is_cycodeignore_allowed: bool = Tr
5151

5252

5353
def _get_relevant_files(
54-
progress_bar: 'BaseProgressBar',
55-
progress_bar_section: 'ProgressBarSection',
56-
scan_type: str,
54+
progress_bar: 'BaseProgressBar',
55+
progress_bar_section: 'ProgressBarSection',
56+
scan_type: str,
5757
paths: tuple[str, ...],
5858
*,
59-
is_cycodeignore_allowed: bool = True
59+
is_cycodeignore_allowed: bool = True,
6060
) -> list[str]:
6161
all_files_to_scan = []
6262
for path in paths:
@@ -110,7 +110,9 @@ def get_relevant_documents(
110110
is_git_diff: bool = False,
111111
is_cycodeignore_allowed: bool = True,
112112
) -> list[Document]:
113-
relevant_files = _get_relevant_files(progress_bar, progress_bar_section, scan_type, paths, is_cycodeignore_allowed=is_cycodeignore_allowed)
113+
relevant_files = _get_relevant_files(
114+
progress_bar, progress_bar_section, scan_type, paths, is_cycodeignore_allowed=is_cycodeignore_allowed
115+
)
114116

115117
documents: list[Document] = []
116118
for file in relevant_files:

0 commit comments

Comments
 (0)