cycode 3.19.2.dev1__py3-none-any.whl → 3.20.1.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 +1 -1
- cycode/cli/consts.py +1 -0
- cycode/cli/exceptions/custom_exceptions.py +14 -3
- cycode/cli/utils/trust_store.py +66 -0
- cycode/cyclient/cycode_client_base.py +9 -4
- cycode/cyclient/scan_client.py +4 -1
- {cycode-3.19.2.dev1.dist-info → cycode-3.20.1.dev1.dist-info}/METADATA +63 -17
- {cycode-3.19.2.dev1.dist-info → cycode-3.20.1.dev1.dist-info}/RECORD +11 -10
- {cycode-3.19.2.dev1.dist-info → cycode-3.20.1.dev1.dist-info}/WHEEL +0 -0
- {cycode-3.19.2.dev1.dist-info → cycode-3.20.1.dev1.dist-info}/entry_points.txt +0 -0
- {cycode-3.19.2.dev1.dist-info → cycode-3.20.1.dev1.dist-info}/licenses/LICENCE +0 -0
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.
|
|
8
|
+
__version__ = '3.20.1.dev1' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
|
cycode/cli/consts.py
CHANGED
|
@@ -209,6 +209,7 @@ CYCODE_CLI_REQUEST_TIMEOUT_ENV_VAR_NAME = 'CYCODE_CLI_REQUEST_TIMEOUT'
|
|
|
209
209
|
LOGGING_LEVEL_ENV_VAR_NAME = 'LOGGING_LEVEL'
|
|
210
210
|
VERBOSE_ENV_VAR_NAME = 'CYCODE_CLI_VERBOSE'
|
|
211
211
|
DEBUG_ENV_VAR_NAME = 'CYCODE_CLI_DEBUG'
|
|
212
|
+
ENABLE_TRUSTSTORE_ENV_VAR_NAME = 'CYCODE_CLI_ENABLE_TRUSTSTORE'
|
|
212
213
|
|
|
213
214
|
CYCODE_CONFIGURATION_DIRECTORY: str = '.cycode'
|
|
214
215
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from requests import Response
|
|
2
2
|
|
|
3
|
+
from cycode.cli import consts
|
|
3
4
|
from cycode.cli.models import CliError, CliErrors
|
|
5
|
+
from cycode.cli.utils import trust_store
|
|
4
6
|
|
|
5
7
|
|
|
6
8
|
class CycodeError(Exception):
|
|
@@ -96,6 +98,17 @@ class TfplanKeyError(CycodeError):
|
|
|
96
98
|
return f'Error occurred while parsing terraform plan file. Path: {self.file_path}'
|
|
97
99
|
|
|
98
100
|
|
|
101
|
+
_SSL_ERROR_CA_BUNDLE_HINT = (
|
|
102
|
+
'set the REQUESTS_CA_BUNDLE (or CURL_CA_BUNDLE) environment variable to the path of a valid .pem or similar'
|
|
103
|
+
)
|
|
104
|
+
_SSL_ERROR_TRUST_HINT = (
|
|
105
|
+
'If you use an on-premises installation or a proxy that intercepts SSL traffic, '
|
|
106
|
+
f'set {consts.ENABLE_TRUSTSTORE_ENV_VAR_NAME}=1 to trust the CA certificates installed in your '
|
|
107
|
+
f'machine certificate store, or {_SSL_ERROR_CA_BUNDLE_HINT}'
|
|
108
|
+
if trust_store.is_supported() and not trust_store.is_enabled()
|
|
109
|
+
else f'If you use an on-premises installation or a proxy that intercepts SSL traffic, {_SSL_ERROR_CA_BUNDLE_HINT}'
|
|
110
|
+
)
|
|
111
|
+
|
|
99
112
|
KNOWN_USER_FRIENDLY_REQUEST_ERRORS: CliErrors = {
|
|
100
113
|
RequestHttpError: CliError(
|
|
101
114
|
soft_fail=True,
|
|
@@ -122,8 +135,6 @@ KNOWN_USER_FRIENDLY_REQUEST_ERRORS: CliErrors = {
|
|
|
122
135
|
RequestSslError: CliError(
|
|
123
136
|
soft_fail=True,
|
|
124
137
|
code='ssl_error',
|
|
125
|
-
message='An SSL error occurred when trying to connect to the Cycode API. '
|
|
126
|
-
'If you use an on-premises installation or a proxy that intercepts SSL traffic '
|
|
127
|
-
'you should use the CURL_CA_BUNDLE environment variable to specify path to a valid .pem or similar',
|
|
138
|
+
message=f'An SSL error occurred when trying to connect to the Cycode API. {_SSL_ERROR_TRUST_HINT}',
|
|
128
139
|
),
|
|
129
140
|
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
|
|
3
|
+
from cycode import config
|
|
4
|
+
from cycode.cli import consts
|
|
5
|
+
from cycode.logger import get_logger
|
|
6
|
+
|
|
7
|
+
logger = get_logger('Trust Store')
|
|
8
|
+
|
|
9
|
+
# truststore requires Python 3.10+, so on 3.9 the OS trust store is unavailable
|
|
10
|
+
_MIN_PYTHON_VERSION = (3, 10)
|
|
11
|
+
|
|
12
|
+
_installed = False
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def is_supported() -> bool:
|
|
16
|
+
return sys.version_info >= _MIN_PYTHON_VERSION
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def is_enabled() -> bool:
|
|
20
|
+
return config.get_val_as_bool(consts.ENABLE_TRUSTSTORE_ENV_VAR_NAME)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def is_installed() -> bool:
|
|
24
|
+
"""Whether the OS trust store has been injected into the TLS stack."""
|
|
25
|
+
return _installed
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def install() -> bool:
|
|
29
|
+
"""Verify TLS against the machine's trust store.
|
|
30
|
+
|
|
31
|
+
`truststore.inject_into_ssl()` patches `ssl.SSLContext` process-wide, so this covers all HTTPS
|
|
32
|
+
traffic (the shared session, the presigned S3 upload, the version check) without touching call
|
|
33
|
+
sites. Certificates from `REQUESTS_CA_BUNDLE`/`CURL_CA_BUNDLE` keep working: requests still loads
|
|
34
|
+
them, and truststore treats them as additional trust anchors on top of the OS store.
|
|
35
|
+
"""
|
|
36
|
+
global _installed
|
|
37
|
+
|
|
38
|
+
if _installed:
|
|
39
|
+
return True
|
|
40
|
+
|
|
41
|
+
if not is_enabled():
|
|
42
|
+
logger.debug(
|
|
43
|
+
'OS trust store not enabled, using the bundled CA store (certifi). Set %s=1 to enable it',
|
|
44
|
+
consts.ENABLE_TRUSTSTORE_ENV_VAR_NAME,
|
|
45
|
+
)
|
|
46
|
+
return False
|
|
47
|
+
|
|
48
|
+
if not is_supported():
|
|
49
|
+
logger.warning(
|
|
50
|
+
'OS trust store requires Python %s+, using the bundled CA store (certifi). Current version: %s',
|
|
51
|
+
'.'.join(map(str, _MIN_PYTHON_VERSION)),
|
|
52
|
+
'.'.join(map(str, sys.version_info[:3])),
|
|
53
|
+
)
|
|
54
|
+
return False
|
|
55
|
+
|
|
56
|
+
try:
|
|
57
|
+
import truststore
|
|
58
|
+
|
|
59
|
+
truststore.inject_into_ssl()
|
|
60
|
+
except Exception as e:
|
|
61
|
+
logger.warning('Failed to use the OS trust store, falling back to the bundled CA store (certifi). %s', e)
|
|
62
|
+
return False
|
|
63
|
+
|
|
64
|
+
logger.debug('Using the OS trust store for TLS verification')
|
|
65
|
+
_installed = True
|
|
66
|
+
return True
|
|
@@ -19,6 +19,7 @@ from cycode.cli.exceptions.custom_exceptions import (
|
|
|
19
19
|
RequestTimeoutError,
|
|
20
20
|
SlowUploadConnectionError,
|
|
21
21
|
)
|
|
22
|
+
from cycode.cli.utils import trust_store
|
|
22
23
|
from cycode.cyclient import config
|
|
23
24
|
from cycode.cyclient.headers import get_cli_user_agent, get_correlation_id
|
|
24
25
|
from cycode.cyclient.logger import logger
|
|
@@ -28,6 +29,8 @@ if TYPE_CHECKING:
|
|
|
28
29
|
|
|
29
30
|
|
|
30
31
|
class SystemStorageSslContext(HTTPAdapter):
|
|
32
|
+
"""Windows system trust store path, used when truststore is not active."""
|
|
33
|
+
|
|
31
34
|
def init_poolmanager(self, *args, **kwargs) -> None:
|
|
32
35
|
default_context = ssl.create_default_context()
|
|
33
36
|
default_context.load_default_certs()
|
|
@@ -43,11 +46,13 @@ class SystemStorageSslContext(HTTPAdapter):
|
|
|
43
46
|
@functools.cache
|
|
44
47
|
def _get_session() -> requests.Session:
|
|
45
48
|
"""Process-wide Session so TCP+TLS connections are reused across all API calls."""
|
|
49
|
+
trust_store.install()
|
|
50
|
+
|
|
46
51
|
session = requests.Session()
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
os.environ.get('REQUESTS_CA_BUNDLE') or os.environ.get('CURL_CA_BUNDLE')
|
|
52
|
+
if (
|
|
53
|
+
not trust_store.is_installed()
|
|
54
|
+
and platform.system() == 'Windows'
|
|
55
|
+
and not (os.environ.get('REQUESTS_CA_BUNDLE') or os.environ.get('CURL_CA_BUNDLE'))
|
|
51
56
|
):
|
|
52
57
|
session.mount('https://', SystemStorageSslContext())
|
|
53
58
|
return session
|
cycode/cyclient/scan_client.py
CHANGED
|
@@ -14,6 +14,7 @@ from cycode.cli.exceptions.custom_exceptions import (
|
|
|
14
14
|
SlowUploadConnectionError,
|
|
15
15
|
)
|
|
16
16
|
from cycode.cli.files_collector.models.in_memory_zip import InMemoryZip
|
|
17
|
+
from cycode.cli.utils import trust_store
|
|
17
18
|
from cycode.cyclient import models
|
|
18
19
|
from cycode.cyclient.cycode_client_base import CycodeClientBase, UploadProgressTracker
|
|
19
20
|
from cycode.cyclient.logger import logger
|
|
@@ -153,7 +154,9 @@ class ScanClient:
|
|
|
153
154
|
tracker = UploadProgressTracker(prepared.body, on_upload_progress)
|
|
154
155
|
|
|
155
156
|
try:
|
|
156
|
-
# We are not using Cycode client, as we are calling aws S3.
|
|
157
|
+
# We are not using Cycode client, as we are calling aws S3. That also means this call
|
|
158
|
+
# skips the shared session, so the OS trust store has to be installed explicitly here.
|
|
159
|
+
trust_store.install()
|
|
157
160
|
response = requests.post(
|
|
158
161
|
url,
|
|
159
162
|
data=tracker,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cycode
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.20.1.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
|
|
@@ -37,6 +37,7 @@ Requires-Dist: rich (>=15.0.0,<16.0.0)
|
|
|
37
37
|
Requires-Dist: tenacity (>=9.1.2,<9.2.0)
|
|
38
38
|
Requires-Dist: tomli (>=2.0.0,<3.0.0) ; python_version < "3.11"
|
|
39
39
|
Requires-Dist: tomli-w (>=1.0.0,<2.0.0)
|
|
40
|
+
Requires-Dist: truststore (>=0.10.4,<0.11.0) ; python_version >= "3.10"
|
|
40
41
|
Requires-Dist: typer (>=0.15.3,<0.16.0)
|
|
41
42
|
Requires-Dist: urllib3 (>=2.4.0,<3.0.0)
|
|
42
43
|
Project-URL: Repository, https://github.com/cycodehq/cycode-cli
|
|
@@ -62,19 +63,20 @@ This guide walks you through both installation and usage.
|
|
|
62
63
|
2. [On Windows](#on-windows)
|
|
63
64
|
2. [Install Pre-Commit Hook](#install-pre-commit-hook)
|
|
64
65
|
3. [Cycode CLI Commands](#cycode-cli-commands)
|
|
65
|
-
4. [
|
|
66
|
+
4. [Certificates and Proxies](#certificates-and-proxies)
|
|
67
|
+
5. [MCP Command](#mcp-command-experiment)
|
|
66
68
|
1. [Starting the MCP Server](#starting-the-mcp-server)
|
|
67
69
|
2. [Available Options](#available-options)
|
|
68
70
|
3. [MCP Tools](#mcp-tools)
|
|
69
71
|
4. [Usage Examples](#usage-examples)
|
|
70
72
|
5. [Advanced Configuration](#advanced-configuration)
|
|
71
|
-
|
|
73
|
+
6. [Platform Command](#platform-command-beta)
|
|
72
74
|
1. [Discovering Commands](#discovering-commands)
|
|
73
75
|
2. [Examples](#platform-examples)
|
|
74
76
|
3. [Notes & Limitations](#platform-notes--limitations)
|
|
75
|
-
|
|
77
|
+
7. [AI Guardrails](#ai-guardrails-beta)
|
|
76
78
|
1. [Data Collected by AI Guardrails](#data-collected-by-ai-guardrails)
|
|
77
|
-
|
|
79
|
+
8. [Scan Command](#scan-command)
|
|
78
80
|
1. [Running a Scan](#running-a-scan)
|
|
79
81
|
1. [Options](#options)
|
|
80
82
|
1. [Severity Threshold](#severity-option)
|
|
@@ -108,11 +110,11 @@ This guide walks you through both installation and usage.
|
|
|
108
110
|
4. [Ignoring a Secret, IaC, or SCA Rule](#ignoring-a-secret-iac-sca-or-sast-rule)
|
|
109
111
|
5. [Ignoring a Package](#ignoring-a-package)
|
|
110
112
|
6. [Ignoring via a config file](#ignoring-via-a-config-file)
|
|
111
|
-
|
|
113
|
+
9. [Report command](#report-command)
|
|
112
114
|
1. [Generating SBOM Report](#generating-sbom-report)
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
115
|
+
10. [Import command](#import-command)
|
|
116
|
+
11. [Scan logs](#scan-logs)
|
|
117
|
+
12. [Syntax Help](#syntax-help)
|
|
116
118
|
|
|
117
119
|
# Prerequisites
|
|
118
120
|
|
|
@@ -400,6 +402,51 @@ The following are the options and commands available with the Cycode CLI applica
|
|
|
400
402
|
| [report](#report-command) | Generate report. You will need to specify which report type to perform as SBOM. |
|
|
401
403
|
| status | Show the CLI status and exit. |
|
|
402
404
|
|
|
405
|
+
# Certificates and Proxies
|
|
406
|
+
|
|
407
|
+
By default, Cycode CLI verifies HTTPS connections against the CA bundle shipped with the CLI.
|
|
408
|
+
|
|
409
|
+
If your organization uses a proxy that inspects HTTPS traffic, or an on-premises installation with
|
|
410
|
+
its own CA, you have two options.
|
|
411
|
+
|
|
412
|
+
**Option 1 — use the certificates already installed on the machine.** If your CA is in the machine
|
|
413
|
+
certificate store (as is usually the case on a managed device), opt in:
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
export CYCODE_CLI_ENABLE_TRUSTSTORE=1
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
The CLI then verifies against the Windows certificate store, the macOS Keychain, or the system CA
|
|
420
|
+
directory on Linux, and no certificate paths need to be configured.
|
|
421
|
+
|
|
422
|
+
> [!IMPORTANT]
|
|
423
|
+
> This is opt-in on purpose. Trusting the machine store means trusting every root certificate
|
|
424
|
+
> present on that machine, including any an administrator or malicious software installed. Enable it
|
|
425
|
+
> when you know your machine's certificate store is one you trust.
|
|
426
|
+
|
|
427
|
+
**Option 2 — point the CLI at a CA bundle file.** Works without opting in:
|
|
428
|
+
|
|
429
|
+
| Environment Variable | Description |
|
|
430
|
+
|----------------------|-------------|
|
|
431
|
+
| `REQUESTS_CA_BUNDLE` | Path to a CA bundle file (`.pem` or `.crt`) to trust. |
|
|
432
|
+
| `CURL_CA_BUNDLE` | Alias for `REQUESTS_CA_BUNDLE`, honored when the latter is unset. |
|
|
433
|
+
|
|
434
|
+
The two options combine: with `CYCODE_CLI_ENABLE_TRUSTSTORE=1`, certificates from
|
|
435
|
+
`REQUESTS_CA_BUNDLE` are trusted *in addition to* the machine store, not instead of it.
|
|
436
|
+
|
|
437
|
+
> [!TIP]
|
|
438
|
+
> Run any command with `-v` to see which trust source is in use, for example `cycode -v status`.
|
|
439
|
+
|
|
440
|
+
Notes:
|
|
441
|
+
|
|
442
|
+
- `CYCODE_CLI_ENABLE_TRUSTSTORE` requires Python 3.10 or newer. On Python 3.9 the CLI logs a warning
|
|
443
|
+
and falls back to the bundled CA bundle; use `REQUESTS_CA_BUNDLE` instead, or upgrade Python. The
|
|
444
|
+
standalone executables and the Docker image already ship a supported Python.
|
|
445
|
+
- On Windows, the CLI has always fallen back to the system certificate store when neither
|
|
446
|
+
`REQUESTS_CA_BUNDLE` nor `CURL_CA_BUNDLE` is set. That behavior is unchanged.
|
|
447
|
+
- Proxies themselves are configured with the standard `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY`
|
|
448
|
+
environment variables.
|
|
449
|
+
|
|
403
450
|
# MCP Command \[EXPERIMENT\]
|
|
404
451
|
|
|
405
452
|
> [!WARNING]
|
|
@@ -609,20 +656,20 @@ cycode mcp -t streamable-http -H 127.0.0.2 -p 9000 &
|
|
|
609
656
|
```
|
|
610
657
|
|
|
611
658
|
### Advanced Configuration
|
|
612
|
-
##### Custom Certificates
|
|
659
|
+
##### Timeouts and Custom Certificates (Proxy Environments)
|
|
613
660
|
|
|
614
|
-
If
|
|
661
|
+
If long-running scans are being cut short by your MCP client, increase the tool call timeout.
|
|
615
662
|
|
|
616
663
|
| Environment Variable | Description |
|
|
617
664
|
|----------------------|-------------|
|
|
618
|
-
| `REQUESTS_CA_BUNDLE` | Path to a custom CA bundle file (`.pem` or `.crt`). Used by the `requests` library for all HTTPS calls made by Cycode CLI. |
|
|
619
|
-
| `SSL_CERT_FILE` | Path to a custom CA bundle file. Used by Python's low-level `ssl` module. Set this alongside `REQUESTS_CA_BUNDLE` for full coverage. |
|
|
620
665
|
| `MCP_TOOL_TIMEOUT` | Timeout (in seconds) that MCP clients such as Claude and GitHub Copilot wait for a tool call to complete. Increase this if long-running scans are being cut off before they finish. |
|
|
621
666
|
|
|
622
|
-
|
|
623
|
-
|
|
667
|
+
Behind a corporate proxy, set the certificate variables in the MCP server's `env` block. See
|
|
668
|
+
[Certificates and Proxies](#certificates-and-proxies) for the options: either
|
|
669
|
+
`CYCODE_CLI_ENABLE_TRUSTSTORE=1` to use the certificates already on the machine, or
|
|
670
|
+
`REQUESTS_CA_BUNDLE` pointing at a CA bundle file.
|
|
624
671
|
|
|
625
|
-
Example `mcp.json` configuration with custom
|
|
672
|
+
Example `mcp.json` configuration with a custom CA bundle and a longer timeout:
|
|
626
673
|
|
|
627
674
|
```json
|
|
628
675
|
{
|
|
@@ -632,7 +679,6 @@ Example `mcp.json` configuration with custom certificates and a longer timeout:
|
|
|
632
679
|
"args": ["mcp"],
|
|
633
680
|
"env": {
|
|
634
681
|
"REQUESTS_CA_BUNDLE": "/path/to/your/corporate-ca-bundle.pem",
|
|
635
|
-
"SSL_CERT_FILE": "/path/to/your/corporate-ca-bundle.pem",
|
|
636
682
|
"MCP_TOOL_TIMEOUT": "1800"
|
|
637
683
|
}
|
|
638
684
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
cycode/__init__.py,sha256=
|
|
1
|
+
cycode/__init__.py,sha256=twSVwiBqCdqXe-OvI15up_2I4TlzHX5hv9rBwVjGm9k,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
|
|
@@ -95,9 +95,9 @@ cycode/cli/apps/status/version_command.py,sha256=c6Iko_rmZo9T_kQSd3HUloBi40Qv7cj
|
|
|
95
95
|
cycode/cli/cli_types.py,sha256=QbFWJLtlsEnHGdqdHbLolJqT57RfhocvsPAhlcNcCRE,3354
|
|
96
96
|
cycode/cli/config.py,sha256=Op-lX_neanJtvPvoOEx4ByBdveh5ygElIga1FdSHhOI,299
|
|
97
97
|
cycode/cli/console.py,sha256=vp-DHwlkwpwdsPyfwGdjsPF-6-Bi3f8W7G-W_YXCMH8,1914
|
|
98
|
-
cycode/cli/consts.py,sha256=
|
|
98
|
+
cycode/cli/consts.py,sha256=kbqflXMDBOACv-tsrygKBKZJnyQGWBcVfTrsPptw-MY,9929
|
|
99
99
|
cycode/cli/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
100
|
-
cycode/cli/exceptions/custom_exceptions.py,sha256=
|
|
100
|
+
cycode/cli/exceptions/custom_exceptions.py,sha256=SImny5zXhnKocTw6GDaTm9x4I3bWRZW4wZEXg2Q-NTI,4742
|
|
101
101
|
cycode/cli/exceptions/handle_ai_remediation_errors.py,sha256=mA70upSYXK3rL_fmanzKYeUzLENhpXdkW8k3aIHrKzU,785
|
|
102
102
|
cycode/cli/exceptions/handle_auth_errors.py,sha256=m3q9keRUKAg6OnFlOlzpNUFzdQHGEeyq8N2Ywqs-QQ4,597
|
|
103
103
|
cycode/cli/exceptions/handle_errors.py,sha256=za3vQcM_eFTvbT-53tTc6ky-J0wav6lupD1hXWw0e54,881
|
|
@@ -185,6 +185,7 @@ cycode/cli/utils/scan_utils.py,sha256=sTj7j9dVHcgeMqfYp8sO78ZiWX8LnhpgjCOi1N1gmA
|
|
|
185
185
|
cycode/cli/utils/shell_executor.py,sha256=VkzzQPZCmTkFvDjhgJrkv-Icej3U1wLW9LLN6k6OahA,1848
|
|
186
186
|
cycode/cli/utils/string_utils.py,sha256=KyPSAHDRPEGNCCcKTF0v99vad5z9djpVGc8nxpBqdYo,2445
|
|
187
187
|
cycode/cli/utils/task_timer.py,sha256=wxfM2TtJGjc1F17CIja_Qmt6zd4a1qdMwuz0ltgTDAg,2722
|
|
188
|
+
cycode/cli/utils/trust_store.py,sha256=nEVyaDHhBu2f1Lw1CeHogaD8lQIp6u-sxaVDEKEhIW8,1992
|
|
188
189
|
cycode/cli/utils/url_utils.py,sha256=2ZhRCbQsKnvAl5MBugQ5CrwuALP8uivsCI6chlqxahM,2304
|
|
189
190
|
cycode/cli/utils/version_checker.py,sha256=0f5PaTk02ZkDxzBqZOeMV9mU_CWcx6HKW80jUKFOOZs,8239
|
|
190
191
|
cycode/cli/utils/yaml_utils.py,sha256=R-tqzl0C-zoa42rS7nfWeHu3GJ0jpbQUyyqYYU2hleM,1818
|
|
@@ -199,7 +200,7 @@ cycode/cyclient/client_creator.py,sha256=-bsOT7M28yx-WT1UhSzENY8N9EgoQIv48Smrr9i
|
|
|
199
200
|
cycode/cyclient/config.py,sha256=Le3YYp7LyclTwS4vonuFipfRA1qhyC28_muUtxpnImc,1387
|
|
200
201
|
cycode/cyclient/config_dev.py,sha256=GJ3w8Q-ow5SvXGBFA34eaeoI6GhitavAGy3UfcUh9OU,120
|
|
201
202
|
cycode/cyclient/cycode_client.py,sha256=ifZMA4RlFw4QNHku5ZxmtUKglH2yd1479yYZGDtxVvw,257
|
|
202
|
-
cycode/cyclient/cycode_client_base.py,sha256=
|
|
203
|
+
cycode/cyclient/cycode_client_base.py,sha256=DuttWoOBKfnuzPSwZEAw4gKpmFuyRrxHiJ0zUdRkd-s,10270
|
|
203
204
|
cycode/cyclient/cycode_dev_based_client.py,sha256=8LxeUWizXzZ0ilpwb6Q0W4ZMLZyZdKPzgpl5xcRmT8c,664
|
|
204
205
|
cycode/cyclient/cycode_oidc_based_client.py,sha256=AVKBlqFOLYUQVxyPquvFwqnYpD6xgU_R6GJiQCWEdJw,857
|
|
205
206
|
cycode/cyclient/cycode_token_based_client.py,sha256=frbrv1jzF388SXqHNNkZ95Hbx7Vjd3UXwWnq7nVxYN8,848
|
|
@@ -208,11 +209,11 @@ cycode/cyclient/import_sbom_client.py,sha256=M0RAn2dDh9woI3SUkgSHCQxhbARoLpyAM3a
|
|
|
208
209
|
cycode/cyclient/logger.py,sha256=oTkay7QzoOIVQ71cGOy4ukkijYGA3IKJlHkL24Px5ds,70
|
|
209
210
|
cycode/cyclient/models.py,sha256=pHiJpj9TVPmn7bAK3uhx4Yc4unyo9llUoCoJKeDhDnM,15493
|
|
210
211
|
cycode/cyclient/report_client.py,sha256=Scq30NeJPzgXv0hPLO1U05AdE9i_2iu6cIrSKpEJ-cM,4399
|
|
211
|
-
cycode/cyclient/scan_client.py,sha256=
|
|
212
|
+
cycode/cyclient/scan_client.py,sha256=DqAZ7u6Z_cvw9A9RlLkAQUgLRwPCCAsUq5U9umt4F7Y,16955
|
|
212
213
|
cycode/cyclient/scan_config_base.py,sha256=mXsPZGYCtp85rv5GIige40yQZXuRcEKUW-VQJ0vgFzk,1201
|
|
213
214
|
cycode/logger.py,sha256=EfZGRK6VC5rE_LAjIcRrHFiQCueylCDXoG6bvGkrIME,2111
|
|
214
|
-
cycode-3.
|
|
215
|
-
cycode-3.
|
|
216
|
-
cycode-3.
|
|
217
|
-
cycode-3.
|
|
218
|
-
cycode-3.
|
|
215
|
+
cycode-3.20.1.dev1.dist-info/METADATA,sha256=zr8ZP3V6a7xc8FGtYADNB8iwCpAePeTkMgFTjRfi-qs,92792
|
|
216
|
+
cycode-3.20.1.dev1.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
217
|
+
cycode-3.20.1.dev1.dist-info/entry_points.txt,sha256=iDcVJM8ByLElVgvBgtYxDjw1kT7O8Mo0LcWZIT5L3Ig,45
|
|
218
|
+
cycode-3.20.1.dev1.dist-info/licenses/LICENCE,sha256=2Wx4N6mD_4xB7-E3hPkZ3MPhpJy__k_I8MaCSO-PDRo,1068
|
|
219
|
+
cycode-3.20.1.dev1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|