Skip to content

Commit 82d3e90

Browse files
mtorpclaude
andauthored
Add hidden reach-continue-on-* flags for Coana v15 (#191)
* Add hidden reach-continue-on-* flags for Coana v15 Coana v15 introduces four new halt-by-default behaviors in socket mode and corresponding --reach-continue-on-* opt-outs. Expose them as hidden flags on the Python CLI so it is ready to forward them when Coana v15 becomes the default. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Bump version to 2.2.85 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 94f3313 commit 82d3e90

5 files changed

Lines changed: 55 additions & 3 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
66

77
[project]
88
name = "socketsecurity"
9-
version = "2.2.84"
9+
version = "2.2.85"
1010
requires-python = ">= 3.11"
1111
license = {"file" = "LICENSE"}
1212
dependencies = [

socketsecurity/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
__author__ = 'socket.dev'
2-
__version__ = '2.2.84'
2+
__version__ = '2.2.85'
33
USER_AGENT = f'SocketPythonCLI/{__version__}'

socketsecurity/config.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,10 @@ class CliConfig:
131131
reach_additional_params: Optional[List[str]] = None
132132
only_facts_file: bool = False
133133
reach_use_only_pregenerated_sboms: bool = False
134+
reach_continue_on_analysis_errors: bool = False
135+
reach_continue_on_install_errors: bool = False
136+
reach_continue_on_missing_lock_files: bool = False
137+
reach_continue_on_no_source_files: bool = False
134138
max_purl_batch_size: int = 5000
135139
enable_commit_status: bool = False
136140
config_file: Optional[str] = None
@@ -236,6 +240,10 @@ def from_args(cls, args_list: Optional[List[str]] = None) -> 'CliConfig':
236240
'reach_additional_params': args.reach_additional_params,
237241
'only_facts_file': args.only_facts_file,
238242
'reach_use_only_pregenerated_sboms': args.reach_use_only_pregenerated_sboms,
243+
'reach_continue_on_analysis_errors': args.reach_continue_on_analysis_errors,
244+
'reach_continue_on_install_errors': args.reach_continue_on_install_errors,
245+
'reach_continue_on_missing_lock_files': args.reach_continue_on_missing_lock_files,
246+
'reach_continue_on_no_source_files': args.reach_continue_on_no_source_files,
239247
'max_purl_batch_size': args.max_purl_batch_size,
240248
'enable_commit_status': args.enable_commit_status,
241249
'config_file': args.config_file,
@@ -861,6 +869,30 @@ def create_argument_parser() -> argparse.ArgumentParser:
861869
action="store_true",
862870
help="When using this option, the scan is created based only on pre-generated CDX and SPDX files in your project. (requires --reach)"
863871
)
872+
reachability_group.add_argument(
873+
"--reach-continue-on-analysis-errors",
874+
dest="reach_continue_on_analysis_errors",
875+
action="store_true",
876+
help=argparse.SUPPRESS
877+
)
878+
reachability_group.add_argument(
879+
"--reach-continue-on-install-errors",
880+
dest="reach_continue_on_install_errors",
881+
action="store_true",
882+
help=argparse.SUPPRESS
883+
)
884+
reachability_group.add_argument(
885+
"--reach-continue-on-missing-lock-files",
886+
dest="reach_continue_on_missing_lock_files",
887+
action="store_true",
888+
help=argparse.SUPPRESS
889+
)
890+
reachability_group.add_argument(
891+
"--reach-continue-on-no-source-files",
892+
dest="reach_continue_on_no_source_files",
893+
action="store_true",
894+
help=argparse.SUPPRESS
895+
)
864896

865897
parser.add_argument(
866898
'--version',

socketsecurity/core/tools/reachability.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,10 @@ def run_reachability_analysis(
104104
allow_unverified: bool = False,
105105
enable_debug: bool = False,
106106
use_only_pregenerated_sboms: bool = False,
107+
continue_on_analysis_errors: bool = False,
108+
continue_on_install_errors: bool = False,
109+
continue_on_missing_lock_files: bool = False,
110+
continue_on_no_source_files: bool = False,
107111
) -> Dict[str, Any]:
108112
"""
109113
Run reachability analysis.
@@ -196,6 +200,18 @@ def run_reachability_analysis(
196200
if use_only_pregenerated_sboms:
197201
cmd.append("--use-only-pregenerated-sboms")
198202

203+
if continue_on_analysis_errors:
204+
cmd.append("--reach-continue-on-analysis-errors")
205+
206+
if continue_on_install_errors:
207+
cmd.append("--reach-continue-on-install-errors")
208+
209+
if continue_on_missing_lock_files:
210+
cmd.append("--reach-continue-on-missing-lock-files")
211+
212+
if continue_on_no_source_files:
213+
cmd.append("--reach-continue-on-no-source-files")
214+
199215
# Add any additional parameters provided by the user
200216
if additional_params:
201217
cmd.extend(additional_params)

socketsecurity/socketcli.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,11 @@ def main_code():
303303
additional_params=config.reach_additional_params,
304304
allow_unverified=config.allow_unverified,
305305
enable_debug=config.enable_debug,
306-
use_only_pregenerated_sboms=config.reach_use_only_pregenerated_sboms
306+
use_only_pregenerated_sboms=config.reach_use_only_pregenerated_sboms,
307+
continue_on_analysis_errors=config.reach_continue_on_analysis_errors,
308+
continue_on_install_errors=config.reach_continue_on_install_errors,
309+
continue_on_missing_lock_files=config.reach_continue_on_missing_lock_files,
310+
continue_on_no_source_files=config.reach_continue_on_no_source_files,
307311
)
308312

309313
log.info(f"Reachability analysis completed successfully")

0 commit comments

Comments
 (0)