socketsecurity 2.6.1__tar.gz → 2.6.4__tar.gz
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.
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/actions/setup-docker/action.yml +3 -3
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/actions/setup-sfw/action.yml +1 -1
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/workflows/e2e-test.yml +1 -1
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/workflows/package-check.yml +1 -1
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/workflows/pr-preview.yml +1 -1
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/workflows/python-tests.yml +2 -2
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/workflows/release.yml +2 -2
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/CHANGELOG.md +42 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/PKG-INFO +14 -14
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/docs/cli-reference.md +1 -1
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/pyproject.toml +14 -14
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/__init__.py +1 -1
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/__init__.py +7 -3
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/tools/reachability.py +3 -3
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/core/test_sdk_methods.py +19 -1
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/uv.lock +50 -50
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/CODEOWNERS +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/PULL_REQUEST_TEMPLATE/bug-fix.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/PULL_REQUEST_TEMPLATE/improvement.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/actions/setup-hatch/action.yml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/dependabot.yml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/workflows/dependency-review.yml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/workflows/docker-stable.yml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/workflows/version-check.yml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.github/zizmor.yml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.gitignore +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.hooks/sync_version.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.pre-commit-config.yaml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/.python-version +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/CONTRIBUTING.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/Dockerfile +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/Dockerfile.preview +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/LICENSE +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/Makefile +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/README.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/docs/ci-cd.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/docs/development.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/docs/troubleshooting.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/examples/config/sarif-dashboard-parity.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/examples/config/sarif-dashboard-parity.toml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/examples/config/sarif-diff-ci-cd.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/examples/config/sarif-diff-ci-cd.toml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/examples/config/sarif-instance-detail.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/examples/config/sarif-instance-detail.toml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/instructions/gitlab-commit-status/uat.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/pytest.ini +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/scripts/build_container.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/scripts/build_container_flexible.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/scripts/deploy-test-docker.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/scripts/deploy-test-pypi.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/scripts/docker-entrypoint.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/scripts/run.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/session.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socket.yml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/config.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/alert_selection.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/classes.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/cli_client.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/cli_run.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/exceptions.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/git_interface.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/helper/__init__.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/helper/socket_facts_loader.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/lazy_file_loader.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/log_uploader.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/logging.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/messages.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/resource_utils.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/scm/__init__.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/scm/base.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/scm/client.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/scm/github.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/scm/gitlab.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/scm_comments.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/socket_config.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/streaming.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/utils.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/fossa_compat.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/output.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/plugins/__init__.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/plugins/base.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/plugins/formatters/__init__.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/plugins/formatters/slack.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/plugins/jira.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/plugins/manager.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/plugins/slack.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/plugins/teams.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/plugins/webhook.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/socketcli.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/__init__.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/core/conftest.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/core/create_diff_input.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/core/test_diff_alerts.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/core/test_diff_generation.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/core/test_diff_scan_polling.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/core/test_facts_compression.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/core/test_has_manifest_files.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/core/test_package_and_alerts.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/core/test_supporting_methods.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/create_response.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/diff/stream_diff.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/diff/stream_diff_full.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/head_scan/metadata.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/head_scan/stream_scan.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/head_scan/stream_scan_full.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/new_scan/metadata.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/new_scan/stream_scan.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/repos/repo_info_error.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/repos/repo_info_no_head.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/repos/repo_info_success.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/settings/security-policy.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/e2e/fixtures/simple-npm/index.js +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/e2e/fixtures/simple-npm/package.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/e2e/fixtures/simple-pypi/requirements.txt +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/e2e/reach-facts-probe.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/e2e/validate-gitlab.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/e2e/validate-json.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/e2e/validate-reachability.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/e2e/validate-sarif.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/e2e/validate-scan.sh +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/fixtures/fossa/README.md +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/fixtures/fossa/fossa-analyze-empty.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/fixtures/fossa/fossa-analyze-populated.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/fixtures/fossa/fossa-sbom-empty-deep.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/fixtures/fossa/fossa-sbom-populated.json +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/__init__.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_alert_selection.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_cli_config.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_cli_run.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_client.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_config.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_dependency_overview.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_disable_ignore.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_exclude_paths.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_fossa_compat.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_fossa_parity.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_full_scan_retry.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_gitlab_auth.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_gitlab_auth_fallback.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_gitlab_commit_status.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_gitlab_format.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_ignore_telemetry_filtering.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_include_dirs.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_log_uploader.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_output.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_reachability.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_slack_plugin.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_socketcli.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_streaming.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/unit/test_tier1_finalize.py +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/workflows/bitbucket-pipelines.yml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/workflows/buildkite.yml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/workflows/github-actions.yml +0 -0
- {socketsecurity-2.6.1 → socketsecurity-2.6.4}/workflows/gitlab-ci.yml +0 -0
|
@@ -19,10 +19,10 @@ inputs:
|
|
|
19
19
|
runs:
|
|
20
20
|
using: "composite"
|
|
21
21
|
steps:
|
|
22
|
-
- uses: docker/setup-qemu-action@
|
|
22
|
+
- uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
|
|
23
23
|
if: inputs.enable-qemu == 'true'
|
|
24
|
-
- uses: docker/setup-buildx-action@
|
|
25
|
-
- uses: docker/login-action@
|
|
24
|
+
- uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
|
|
25
|
+
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
|
26
26
|
with:
|
|
27
27
|
username: ${{ inputs.dockerhub-username }}
|
|
28
28
|
password: ${{ inputs.dockerhub-token }}
|
|
@@ -27,7 +27,7 @@ runs:
|
|
|
27
27
|
using: "composite"
|
|
28
28
|
steps:
|
|
29
29
|
- if: ${{ inputs.python == 'true' || inputs.uv == 'true' }}
|
|
30
|
-
uses: actions/setup-python@
|
|
30
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
31
31
|
with:
|
|
32
32
|
python-version: "3.12"
|
|
33
33
|
|
|
@@ -107,7 +107,7 @@ jobs:
|
|
|
107
107
|
fetch-depth: 0
|
|
108
108
|
persist-credentials: false
|
|
109
109
|
|
|
110
|
-
- uses: actions/setup-python@
|
|
110
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
111
111
|
with:
|
|
112
112
|
python-version: "3.12"
|
|
113
113
|
|
|
@@ -40,7 +40,7 @@ jobs:
|
|
|
40
40
|
fetch-depth: 1
|
|
41
41
|
persist-credentials: false
|
|
42
42
|
- name: 🐍 setup python
|
|
43
|
-
uses: actions/setup-python@
|
|
43
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
44
44
|
with:
|
|
45
45
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
46
46
|
- name: 🛠️ install deps
|
|
@@ -76,7 +76,7 @@ jobs:
|
|
|
76
76
|
fetch-depth: 1
|
|
77
77
|
persist-credentials: false
|
|
78
78
|
- name: 🐍 setup python
|
|
79
|
-
uses: actions/setup-python@
|
|
79
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
80
80
|
with:
|
|
81
81
|
python-version: "3.10"
|
|
82
82
|
- name: 🚫 verify install is rejected on unsupported python
|
|
@@ -14,7 +14,7 @@ jobs:
|
|
|
14
14
|
with:
|
|
15
15
|
fetch-depth: 0
|
|
16
16
|
persist-credentials: false
|
|
17
|
-
- uses: actions/setup-python@
|
|
17
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
18
18
|
with:
|
|
19
19
|
python-version: '3.13'
|
|
20
20
|
|
|
@@ -66,7 +66,7 @@ jobs:
|
|
|
66
66
|
|
|
67
67
|
- name: Publish to PyPI
|
|
68
68
|
if: steps.version_check.outputs.pypi_exists != 'true'
|
|
69
|
-
uses: pypa/gh-action-pypi-publish@
|
|
69
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
70
70
|
|
|
71
71
|
- name: Set up Docker publishing
|
|
72
72
|
uses: ./.github/actions/setup-docker
|
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.6.4
|
|
4
|
+
|
|
5
|
+
### Changed: bump pinned @coana-tech/cli to 15.10.13
|
|
6
|
+
|
|
7
|
+
- Bumped the pinned reachability engine (`@coana-tech/cli`) from `15.10.4` to
|
|
8
|
+
`15.10.13`. See the [Coana changelogs](https://docs.coana.tech/changelogs) for
|
|
9
|
+
engine changes.
|
|
10
|
+
|
|
11
|
+
### Changed: bump pinned GitPython to 3.1.59
|
|
12
|
+
|
|
13
|
+
- Bumped `GitPython` from `3.1.57` to `3.1.59`, picking up the security fixes
|
|
14
|
+
released in GitPython 3.1.58 and 3.1.59. None of the affected GitPython APIs
|
|
15
|
+
are used by this CLI.
|
|
16
|
+
|
|
17
|
+
## 2.6.3
|
|
18
|
+
|
|
19
|
+
### Fixed: SBOM fetch failures no longer produce empty reports
|
|
20
|
+
|
|
21
|
+
- `Core.get_sbom_data` now raises `APIFailure` when the full-scan stream fetch
|
|
22
|
+
fails, so the run exits through the CLI's API-error handling (exit code 3 by
|
|
23
|
+
default; `--disable-blocking` still exits 0) instead of writing empty
|
|
24
|
+
GitLab dependency-scanning, license, and SARIF reports.
|
|
25
|
+
- The underlying stream-parse failure was fixed in `socketdev` 3.4.2 (already
|
|
26
|
+
pinned to `3.5.0`): unrecognized purl types such as `generic` now resolve
|
|
27
|
+
instead of raising, and individual unparseable artifacts are skipped rather
|
|
28
|
+
than failing the whole response.
|
|
29
|
+
|
|
30
|
+
### Changed: bump pinned @coana-tech/cli to 15.10.4
|
|
31
|
+
|
|
32
|
+
- Bumped the pinned reachability engine (`@coana-tech/cli`) from `15.10.3` to
|
|
33
|
+
`15.10.4`. See the [Coana changelogs](https://docs.coana.tech/changelogs) for
|
|
34
|
+
engine changes.
|
|
35
|
+
|
|
36
|
+
### Changed: dependency updates and dev/test dependency pinning
|
|
37
|
+
|
|
38
|
+
- Bumped pinned runtime dependencies (`beautifulsoup4` `4.15.0`,
|
|
39
|
+
`markdown` `3.10.3`).
|
|
40
|
+
- Pinned the `test` and `dev` dependency groups to exact versions, extending
|
|
41
|
+
the exact-pinning policy introduced in 2.6.0 to all dependency groups.
|
|
42
|
+
- Updated GitHub Actions used in CI workflows. No effect on the installed
|
|
43
|
+
CLI.
|
|
44
|
+
|
|
3
45
|
## 2.6.1
|
|
4
46
|
|
|
5
47
|
### Changed: scan comparison now polls the diff-scans endpoints
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: socketsecurity
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.4
|
|
4
4
|
Summary: Socket Security CLI for CI/CD
|
|
5
5
|
Project-URL: Homepage, https://socket.dev
|
|
6
6
|
Author-email: Douglas Coburn <douglas@socket.dev>
|
|
@@ -33,11 +33,11 @@ Classifier: Intended Audience :: Developers
|
|
|
33
33
|
Classifier: Programming Language :: Python :: 3.11
|
|
34
34
|
Classifier: Programming Language :: Python :: 3.12
|
|
35
35
|
Requires-Python: >=3.11
|
|
36
|
-
Requires-Dist: beautifulsoup4==4.
|
|
36
|
+
Requires-Dist: beautifulsoup4==4.15.0
|
|
37
37
|
Requires-Dist: brotli==1.2.0; platform_python_implementation == 'CPython'
|
|
38
38
|
Requires-Dist: brotlicffi==1.2.0.1; platform_python_implementation != 'CPython'
|
|
39
|
-
Requires-Dist: gitpython==3.1.
|
|
40
|
-
Requires-Dist: markdown==3.10.
|
|
39
|
+
Requires-Dist: gitpython==3.1.59
|
|
40
|
+
Requires-Dist: markdown==3.10.3
|
|
41
41
|
Requires-Dist: mdutils==1.8.1
|
|
42
42
|
Requires-Dist: packaging==26.2
|
|
43
43
|
Requires-Dist: prettytable==3.18.0
|
|
@@ -45,17 +45,17 @@ Requires-Dist: python-dotenv==1.2.2
|
|
|
45
45
|
Requires-Dist: requests==2.34.2
|
|
46
46
|
Requires-Dist: socketdev==3.5.0
|
|
47
47
|
Provides-Extra: dev
|
|
48
|
-
Requires-Dist: hatch; extra == 'dev'
|
|
49
|
-
Requires-Dist: pre-commit; extra == 'dev'
|
|
50
|
-
Requires-Dist: ruff
|
|
51
|
-
Requires-Dist: twine; extra == 'dev'
|
|
52
|
-
Requires-Dist: uv
|
|
48
|
+
Requires-Dist: hatch==1.17.1; extra == 'dev'
|
|
49
|
+
Requires-Dist: pre-commit==4.6.1; extra == 'dev'
|
|
50
|
+
Requires-Dist: ruff==0.16.1; extra == 'dev'
|
|
51
|
+
Requires-Dist: twine==7.0.0; extra == 'dev'
|
|
52
|
+
Requires-Dist: uv==0.12.0; extra == 'dev'
|
|
53
53
|
Provides-Extra: test
|
|
54
|
-
Requires-Dist: pytest-asyncio
|
|
55
|
-
Requires-Dist: pytest-cov
|
|
56
|
-
Requires-Dist: pytest-mock
|
|
57
|
-
Requires-Dist: pytest-watch
|
|
58
|
-
Requires-Dist: pytest
|
|
54
|
+
Requires-Dist: pytest-asyncio==1.4.0; extra == 'test'
|
|
55
|
+
Requires-Dist: pytest-cov==7.1.0; extra == 'test'
|
|
56
|
+
Requires-Dist: pytest-mock==3.15.1; extra == 'test'
|
|
57
|
+
Requires-Dist: pytest-watch==4.2.0; extra == 'test'
|
|
58
|
+
Requires-Dist: pytest==9.1.1; extra == 'test'
|
|
59
59
|
Description-Content-Type: text/markdown
|
|
60
60
|
|
|
61
61
|
# Socket Security CLI
|
|
@@ -275,7 +275,7 @@ If you don't want to provide the Socket API Token every time then you can use th
|
|
|
275
275
|
| Parameter | Required | Default | Description |
|
|
276
276
|
|:---------------------------------|:---------|:--------|:---------------------------------------------------------------------------------------------------------------------------|
|
|
277
277
|
| `--reach` | False | False | Enable reachability analysis to identify which vulnerable functions are actually called by your code. Creates a full application reachability scan (`scan_type=socket_tier1`). |
|
|
278
|
-
| `--reach-version` | False | 15.10.
|
|
278
|
+
| `--reach-version` | False | 15.10.13 | Version of @coana-tech/cli to use. Defaults to the pinned version that ships with this CLI release, so the engine only changes when you upgrade the Socket CLI. Pass `latest` to always use the newest published version (opt-in auto-update), or an explicit version (e.g. `1.2.3`) to pin it. |
|
|
279
279
|
| `--reach-analysis-timeout` | False | 10m | Timeout for each reachability analysis run, e.g. `90s`, `10m` or `1h`. Omitted by default, so coana applies its own default (`10m`). Alias: `--reach-timeout` |
|
|
280
280
|
| `--reach-analysis-memory-limit` | False | 8GB | Memory limit for each reachability analysis run, e.g. `512MB` or `8GB`. Omitted by default, so coana applies its own default (`8GB`). Alias: `--reach-memory-limit` |
|
|
281
281
|
| `--reach-concurrency` | False | 1 | Control parallel analysis execution (must be >= 1). Omitted by default, so coana applies its own default. |
|
|
@@ -6,19 +6,19 @@ build-backend = "hatchling.build"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "socketsecurity"
|
|
9
|
-
version = "2.6.
|
|
9
|
+
version = "2.6.4"
|
|
10
10
|
requires-python = ">= 3.11"
|
|
11
11
|
license = {"file" = "LICENSE"}
|
|
12
12
|
dependencies = [
|
|
13
13
|
"requests==2.34.2",
|
|
14
14
|
"mdutils==1.8.1",
|
|
15
15
|
"prettytable==3.18.0",
|
|
16
|
-
"GitPython==3.1.
|
|
16
|
+
"GitPython==3.1.59",
|
|
17
17
|
"packaging==26.2",
|
|
18
18
|
"python-dotenv==1.2.2",
|
|
19
19
|
"socketdev==3.5.0",
|
|
20
|
-
"beautifulsoup4==4.
|
|
21
|
-
"markdown==3.10.
|
|
20
|
+
"beautifulsoup4==4.15.0",
|
|
21
|
+
"markdown==3.10.3",
|
|
22
22
|
"brotli==1.2.0; platform_python_implementation == 'CPython'",
|
|
23
23
|
"brotlicffi==1.2.0.1; platform_python_implementation != 'CPython'",
|
|
24
24
|
]
|
|
@@ -40,18 +40,18 @@ classifiers = [
|
|
|
40
40
|
|
|
41
41
|
[project.optional-dependencies]
|
|
42
42
|
test = [
|
|
43
|
-
"pytest
|
|
44
|
-
"pytest-cov
|
|
45
|
-
"pytest-mock
|
|
46
|
-
"pytest-asyncio
|
|
47
|
-
"pytest-watch
|
|
43
|
+
"pytest==9.1.1",
|
|
44
|
+
"pytest-cov==7.1.0",
|
|
45
|
+
"pytest-mock==3.15.1",
|
|
46
|
+
"pytest-asyncio==1.4.0",
|
|
47
|
+
"pytest-watch==4.2.0"
|
|
48
48
|
]
|
|
49
49
|
dev = [
|
|
50
|
-
"ruff
|
|
51
|
-
"twine", # for building
|
|
52
|
-
"uv
|
|
53
|
-
"pre-commit",
|
|
54
|
-
"hatch"
|
|
50
|
+
"ruff==0.16.1",
|
|
51
|
+
"twine==7.0.0", # for building
|
|
52
|
+
"uv==0.12.0", # for dependency management
|
|
53
|
+
"pre-commit==4.6.1",
|
|
54
|
+
"hatch==1.17.1"
|
|
55
55
|
]
|
|
56
56
|
|
|
57
57
|
[project.scripts]
|
|
@@ -173,9 +173,13 @@ class Core:
|
|
|
173
173
|
"""Returns SBOM artifacts for a full scan keyed by artifact ID."""
|
|
174
174
|
response = self.sdk.fullscans.stream(self.config.org_slug, full_scan_id, use_types=True)
|
|
175
175
|
if not response.success:
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
176
|
+
# Raise instead of returning {} so a failed fetch surfaces as an
|
|
177
|
+
# API error (exit code 3 by default) rather than empty reports.
|
|
178
|
+
log.error(f"Failed to get SBOM data for full-scan {full_scan_id}")
|
|
179
|
+
log.error(response.message)
|
|
180
|
+
raise APIFailure(
|
|
181
|
+
f"Failed to get SBOM data for full-scan {full_scan_id}: {response.message}"
|
|
182
|
+
)
|
|
179
183
|
if not hasattr(response, "artifacts") or not response.artifacts:
|
|
180
184
|
return {}
|
|
181
185
|
return response.artifacts
|
|
@@ -18,7 +18,7 @@ log = logging.getLogger(__name__)
|
|
|
18
18
|
# Pinned @coana-tech/cli version. Bumped deliberately per Python CLI release so the
|
|
19
19
|
# reachability engine version only changes through a standard pip upgrade (advance notice).
|
|
20
20
|
# Pass --reach-version latest to opt into the newest published version instead.
|
|
21
|
-
DEFAULT_COANA_CLI_VERSION: Final = "15.10.
|
|
21
|
+
DEFAULT_COANA_CLI_VERSION: Final = "15.10.13"
|
|
22
22
|
|
|
23
23
|
# Resolved @coana-tech/cli script paths from the npm-install fallback, keyed by version.
|
|
24
24
|
# Lives for the process lifetime so repeated fallback invocations install only once
|
|
@@ -55,7 +55,7 @@ class ReachabilityAnalyzer:
|
|
|
55
55
|
|
|
56
56
|
def _resolve_coana_package_spec(self, version: Optional[str] = None) -> str:
|
|
57
57
|
"""
|
|
58
|
-
Resolve the @coana-tech/cli package spec to run (e.g. '@coana-tech/cli@15.10.
|
|
58
|
+
Resolve the @coana-tech/cli package spec to run (e.g. '@coana-tech/cli@15.10.13').
|
|
59
59
|
|
|
60
60
|
Args:
|
|
61
61
|
version: Coana CLI version to use.
|
|
@@ -64,7 +64,7 @@ class ReachabilityAnalyzer:
|
|
|
64
64
|
- '<semver>': that exact version.
|
|
65
65
|
|
|
66
66
|
Returns:
|
|
67
|
-
str: The package specifier to use with npx (e.g. '@coana-tech/cli@15.10.
|
|
67
|
+
str: The package specifier to use with npx (e.g. '@coana-tech/cli@15.10.13').
|
|
68
68
|
"""
|
|
69
69
|
return f"@coana-tech/cli@{self._resolve_coana_version(version)}"
|
|
70
70
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import pytest
|
|
2
|
-
from socketdev.
|
|
2
|
+
from socketdev.exceptions import APIFailure
|
|
3
|
+
from socketdev.fullscans import FullScanParams, FullScanStreamResponse
|
|
3
4
|
|
|
4
5
|
from socketsecurity.config import CliConfig
|
|
5
6
|
from socketsecurity.core import Core
|
|
@@ -277,6 +278,23 @@ def test_get_added_and_removed_packages_license_override(core):
|
|
|
277
278
|
include_license_details="true",
|
|
278
279
|
)
|
|
279
280
|
|
|
281
|
+
def test_get_sbom_data_failure_raises(core):
|
|
282
|
+
"""A failed SBOM stream fetch raises instead of returning {}.
|
|
283
|
+
|
|
284
|
+
Returning {} let report generation continue and emit empty results with
|
|
285
|
+
exit code 0; raising routes the failure through the CLI's API-error
|
|
286
|
+
handling instead.
|
|
287
|
+
"""
|
|
288
|
+
core.sdk.fullscans.stream.side_effect = None
|
|
289
|
+
core.sdk.fullscans.stream.return_value = FullScanStreamResponse.from_dict({
|
|
290
|
+
"success": False,
|
|
291
|
+
"status": 200,
|
|
292
|
+
"message": "Error parsing stream response",
|
|
293
|
+
})
|
|
294
|
+
|
|
295
|
+
with pytest.raises(APIFailure, match="Failed to get SBOM data"):
|
|
296
|
+
core.get_sbom_data("head")
|
|
297
|
+
|
|
280
298
|
def test_empty_alerts_preserved(core):
|
|
281
299
|
"""Test that empty alerts arrays stay as empty arrays and don't become None"""
|
|
282
300
|
# Get the scan that contains dp2 (which has empty alerts array)
|
|
@@ -112,15 +112,15 @@ wheels = [
|
|
|
112
112
|
|
|
113
113
|
[[package]]
|
|
114
114
|
name = "beautifulsoup4"
|
|
115
|
-
version = "4.
|
|
115
|
+
version = "4.15.0"
|
|
116
116
|
source = { registry = "https://pypi.org/simple" }
|
|
117
117
|
dependencies = [
|
|
118
118
|
{ name = "soupsieve" },
|
|
119
119
|
{ name = "typing-extensions" },
|
|
120
120
|
]
|
|
121
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
121
|
+
sdist = { url = "https://files.pythonhosted.org/packages/43/65/318323f98dbee45d42dff61d8f047181bc6f2268a9068cfad035a46be5af/beautifulsoup4-4.15.0.tar.gz", hash = "sha256:288e3ca7d54b06f2ac191970bc275c1939cb46d450b255bf6718b04aa37ab4f7", size = 632571, upload-time = "2026-06-07T16:44:20.453Z" }
|
|
122
122
|
wheels = [
|
|
123
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
123
|
+
{ url = "https://files.pythonhosted.org/packages/88/c6/92fcd42f1ba33e1184263f25bfabf3d27c383410470f169e4b8163bf9c17/beautifulsoup4-4.15.0-py3-none-any.whl", hash = "sha256:d6f88de62e1d4e38ecb1077eb9724cd0eff29d2a08ca16a401e9b9e93f117cf9", size = 109924, upload-time = "2026-06-07T16:44:21.566Z" },
|
|
124
124
|
]
|
|
125
125
|
|
|
126
126
|
[[package]]
|
|
@@ -574,14 +574,14 @@ wheels = [
|
|
|
574
574
|
|
|
575
575
|
[[package]]
|
|
576
576
|
name = "gitpython"
|
|
577
|
-
version = "3.1.
|
|
577
|
+
version = "3.1.59"
|
|
578
578
|
source = { registry = "https://pypi.org/simple" }
|
|
579
579
|
dependencies = [
|
|
580
580
|
{ name = "gitdb" },
|
|
581
581
|
]
|
|
582
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
582
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ca/dc/126b28e76b24a9268ba931ad3e012f71ebdadf62fd9f17758f7074bb0b20/gitpython-3.1.59.tar.gz", hash = "sha256:0a1475cfdc38a5bfba1a3e9a4a9da52a39749ecec322b772915c019f94e5b7e4", size = 230445, upload-time = "2026-08-10T12:03:20.271Z" }
|
|
583
583
|
wheels = [
|
|
584
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
584
|
+
{ url = "https://files.pythonhosted.org/packages/ef/ed/ae57eb7d344f43f87b74b3a281ead6ec7d6394eef72a7b1dcb28dd089550/gitpython-3.1.59-py3-none-any.whl", hash = "sha256:67a82f537384578643624c8b2c531938a9b82be431663e575dcf638526631d4c", size = 220996, upload-time = "2026-08-10T12:03:18.804Z" },
|
|
585
585
|
]
|
|
586
586
|
|
|
587
587
|
[[package]]
|
|
@@ -795,11 +795,11 @@ wheels = [
|
|
|
795
795
|
|
|
796
796
|
[[package]]
|
|
797
797
|
name = "markdown"
|
|
798
|
-
version = "3.10.
|
|
798
|
+
version = "3.10.3"
|
|
799
799
|
source = { registry = "https://pypi.org/simple" }
|
|
800
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
800
|
+
sdist = { url = "https://files.pythonhosted.org/packages/29/6f/da4c6aea59b3001f2e8c0ec7497475aadaf3b021c10cab5b2858f0f32b26/markdown-3.10.3.tar.gz", hash = "sha256:3589362618f743188b4d955b874402bc814f4f83f544dc207719f4baa7d9c45f", size = 372596, upload-time = "2026-07-30T19:05:29.005Z" }
|
|
801
801
|
wheels = [
|
|
802
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
802
|
+
{ url = "https://files.pythonhosted.org/packages/64/69/4a5af2bc115a9a33fefe51709749de8262be3f9ba063d1753a837cdbc49c/markdown-3.10.3-py3-none-any.whl", hash = "sha256:fa6c92a00a4a3c98b22728c64a935ae1928250ae65058a6ded814d2cc29a4cea", size = 110757, upload-time = "2026-07-30T19:05:27.883Z" },
|
|
803
803
|
]
|
|
804
804
|
|
|
805
805
|
[[package]]
|
|
@@ -1200,40 +1200,40 @@ wheels = [
|
|
|
1200
1200
|
|
|
1201
1201
|
[[package]]
|
|
1202
1202
|
name = "rich"
|
|
1203
|
-
version = "
|
|
1203
|
+
version = "15.0.0"
|
|
1204
1204
|
source = { registry = "https://pypi.org/simple" }
|
|
1205
1205
|
dependencies = [
|
|
1206
1206
|
{ name = "markdown-it-py" },
|
|
1207
1207
|
{ name = "pygments" },
|
|
1208
1208
|
]
|
|
1209
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1209
|
+
sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload-time = "2026-04-12T08:24:00.75Z" }
|
|
1210
1210
|
wheels = [
|
|
1211
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1211
|
+
{ url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload-time = "2026-04-12T08:24:02.83Z" },
|
|
1212
1212
|
]
|
|
1213
1213
|
|
|
1214
1214
|
[[package]]
|
|
1215
1215
|
name = "ruff"
|
|
1216
|
-
version = "0.16.
|
|
1217
|
-
source = { registry = "https://pypi.org/simple" }
|
|
1218
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1219
|
-
wheels = [
|
|
1220
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1221
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1222
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1223
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1224
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1225
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1226
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1227
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1228
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1229
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1230
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1231
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1232
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1233
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1234
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1235
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1236
|
-
{ url = "https://files.pythonhosted.org/packages/cb/
|
|
1216
|
+
version = "0.16.1"
|
|
1217
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1218
|
+
sdist = { url = "https://files.pythonhosted.org/packages/70/25/7113f6d5498888c5fb7db34081cba7d5971c4cb1bfb26819966eee68f003/ruff-0.16.1.tar.gz", hash = "sha256:fedad7c801dabd3fb9741d76aca39246e6ddd9ca446a015875207bf19f1e6bc7", size = 4877500, upload-time = "2026-07-30T19:37:01.379Z" }
|
|
1219
|
+
wheels = [
|
|
1220
|
+
{ url = "https://files.pythonhosted.org/packages/1b/bd/694da69368e0973de65df2ddc73ab18d43c469d5963d9b150911de6bc513/ruff-0.16.1-py3-none-linux_armv6l.whl", hash = "sha256:58edb313b88f0c5460a26adf5f39a37a3be789494a15e3e411e35fa78b89f9a0", size = 10839126, upload-time = "2026-07-30T19:36:13.697Z" },
|
|
1221
|
+
{ url = "https://files.pythonhosted.org/packages/3f/f0/b626e5d5bd0dd9576263658ef12885e2288afd1029a48e26ffed65ec1ac1/ruff-0.16.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:fde5a99e2f97479af66edd6622c6d5a2a7592c77cf4153d9e4428f5eeb55b60c", size = 11070253, upload-time = "2026-07-30T19:36:17.14Z" },
|
|
1222
|
+
{ url = "https://files.pythonhosted.org/packages/83/63/f40acfb6b35b88623e71684942b552c3edd96035f5d98f313815f7b277de/ruff-0.16.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e0d4c20532fca4f7fa609369161d968dd28f65d83dabbd61d8e9c7edbf7001f6", size = 10561425, upload-time = "2026-07-30T19:36:20.04Z" },
|
|
1223
|
+
{ url = "https://files.pythonhosted.org/packages/aa/dd/14ec0e9c2b4d315547dd38765004b4863e354e1b52cb308272215d9f6f6d/ruff-0.16.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30affbcedf59ad5703d9c91f82266e02b47739f797e1a7b6e158e5526a6dae38", size = 10948879, upload-time = "2026-07-30T19:36:22.476Z" },
|
|
1224
|
+
{ url = "https://files.pythonhosted.org/packages/33/e9/9d870cbae575030fdef595f04b4b97573c525b5497cce4f4498cf2f85446/ruff-0.16.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:24e9c631573cbca9d20f1283f8f479b2afa4a8503504822bd71a293889f16743", size = 10643691, upload-time = "2026-07-30T19:36:24.914Z" },
|
|
1225
|
+
{ url = "https://files.pythonhosted.org/packages/c4/09/12743d544e2173f53ecd27217c65f90d2bc0f8424a66a60339e56bbc0457/ruff-0.16.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b41bdd48fb420987a9b5212e4957c26ad4abce401fa9ea9d4d85843727945f4f", size = 11435354, upload-time = "2026-07-30T19:36:28.447Z" },
|
|
1226
|
+
{ url = "https://files.pythonhosted.org/packages/7f/89/a1652b2daee52083c9554a6333b678a8b01d0400f976827bb87857f9449a/ruff-0.16.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b0d1e1393b7648079e13669de1c1f4fde06d4583e84d8fd5c1551e0a77a2aa75", size = 12259033, upload-time = "2026-07-30T19:36:31.326Z" },
|
|
1227
|
+
{ url = "https://files.pythonhosted.org/packages/16/96/ecdcb8c54ee7b123b487f807eb014e6e019155a0b81dfb669acd52f28ce3/ruff-0.16.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07bf434b1c95f4e093be4532068ef4fcf00924eb2ade8796075980902d6fd54a", size = 11667981, upload-time = "2026-07-30T19:36:34.394Z" },
|
|
1228
|
+
{ url = "https://files.pythonhosted.org/packages/cd/90/c52e12e0d862e9572f2a33aa227409143520abe53111e9a6babbac7b4af8/ruff-0.16.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39897739f112253ee4fdd2e8aa9a4f9ded99fb2be367d5f31dfa4ded6025584c", size = 11468183, upload-time = "2026-07-30T19:36:37.339Z" },
|
|
1229
|
+
{ url = "https://files.pythonhosted.org/packages/2c/6b/4ffb7ad1d83eb16cf8cbb3c8815d3f11c88460fd162d4b372a2059be1c2a/ruff-0.16.1-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:82ae3c0c0d74daf17b968a10b7b3bb3ef297ab7de0c1f749646b25e690ccb150", size = 11470071, upload-time = "2026-07-30T19:36:39.91Z" },
|
|
1230
|
+
{ url = "https://files.pythonhosted.org/packages/9c/72/32ae7db4c0b5e32ab611787caa19d1546800676d79f7483b7100a3561bf4/ruff-0.16.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4d5f2ed10f8242d83fc08d521301089364e3375375705356f20c0e31606ef3ef", size = 10919503, upload-time = "2026-07-30T19:36:42.65Z" },
|
|
1231
|
+
{ url = "https://files.pythonhosted.org/packages/f7/ca/3d901ba6ad6fc38da39c3448fc6c59ac945679293a17c3ceb6d6c1cba13e/ruff-0.16.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a4665b309891f83f3e3c25447935f1213e9abbd4b5640af7a1f2def9f8d413c1", size = 10649861, upload-time = "2026-07-30T19:36:45.18Z" },
|
|
1232
|
+
{ url = "https://files.pythonhosted.org/packages/92/79/894ef1ced26552d5f8c9cf6d85b0687840e1128c55aeab7b9c2d54a0d880/ruff-0.16.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:26e9ca5c9bc3971f20d3cf18a957f52ffd6a5f6564ff15c4912a144dcac22494", size = 11148137, upload-time = "2026-07-30T19:36:47.936Z" },
|
|
1233
|
+
{ url = "https://files.pythonhosted.org/packages/2d/69/3609a09fa1cb46cc28b762363e440a354204e5dff01bd0c8d7437874d6b9/ruff-0.16.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:67e1e1e3fa4f0c82f0e36d4cd61e661f6e7a6196cb1aa92fe0828fa7b8f257cd", size = 11559211, upload-time = "2026-07-30T19:36:50.448Z" },
|
|
1234
|
+
{ url = "https://files.pythonhosted.org/packages/fc/8a/fb22af2fd78a736e241fabf67e30ce1799a64244026377a49e133af90762/ruff-0.16.1-py3-none-win32.whl", hash = "sha256:d31765e131295b8445caf301e3e8a85b34d1b9b211b4109b7ba457888b051806", size = 10838258, upload-time = "2026-07-30T19:36:53.298Z" },
|
|
1235
|
+
{ url = "https://files.pythonhosted.org/packages/d4/35/e57fd9fb5d423961df087a00b12d42c0a830288dc2f3b45ecca299158b4f/ruff-0.16.1-py3-none-win_amd64.whl", hash = "sha256:09b05e8b90c2cb06ad63464350e7a45e8e44a2dfe52072ebfba6666ca8d3f596", size = 11961111, upload-time = "2026-07-30T19:36:56.107Z" },
|
|
1236
|
+
{ url = "https://files.pythonhosted.org/packages/cb/46/240ea004bf6dc4feb40e9832f2205a476a47dd5b8a3f8211a5fc5f95e20e/ruff-0.16.1-py3-none-win_arm64.whl", hash = "sha256:dbaadaac38c70239f056d306b7476f246b0bf000fa6b3876402acbf5b227eaf8", size = 11309414, upload-time = "2026-07-30T19:36:58.79Z" },
|
|
1237
1237
|
]
|
|
1238
1238
|
|
|
1239
1239
|
[[package]]
|
|
@@ -1282,7 +1282,7 @@ wheels = [
|
|
|
1282
1282
|
|
|
1283
1283
|
[[package]]
|
|
1284
1284
|
name = "socketsecurity"
|
|
1285
|
-
version = "2.6.
|
|
1285
|
+
version = "2.6.4"
|
|
1286
1286
|
source = { editable = "." }
|
|
1287
1287
|
dependencies = [
|
|
1288
1288
|
{ name = "beautifulsoup4" },
|
|
@@ -1321,27 +1321,27 @@ dev = [
|
|
|
1321
1321
|
|
|
1322
1322
|
[package.metadata]
|
|
1323
1323
|
requires-dist = [
|
|
1324
|
-
{ name = "beautifulsoup4", specifier = "==4.
|
|
1324
|
+
{ name = "beautifulsoup4", specifier = "==4.15.0" },
|
|
1325
1325
|
{ name = "brotli", marker = "platform_python_implementation == 'CPython'", specifier = "==1.2.0" },
|
|
1326
1326
|
{ name = "brotlicffi", marker = "platform_python_implementation != 'CPython'", specifier = "==1.2.0.1" },
|
|
1327
|
-
{ name = "gitpython", specifier = "==3.1.
|
|
1328
|
-
{ name = "hatch", marker = "extra == 'dev'" },
|
|
1329
|
-
{ name = "markdown", specifier = "==3.10.
|
|
1327
|
+
{ name = "gitpython", specifier = "==3.1.59" },
|
|
1328
|
+
{ name = "hatch", marker = "extra == 'dev'", specifier = "==1.17.1" },
|
|
1329
|
+
{ name = "markdown", specifier = "==3.10.3" },
|
|
1330
1330
|
{ name = "mdutils", specifier = "==1.8.1" },
|
|
1331
1331
|
{ name = "packaging", specifier = "==26.2" },
|
|
1332
|
-
{ name = "pre-commit", marker = "extra == 'dev'" },
|
|
1332
|
+
{ name = "pre-commit", marker = "extra == 'dev'", specifier = "==4.6.1" },
|
|
1333
1333
|
{ name = "prettytable", specifier = "==3.18.0" },
|
|
1334
|
-
{ name = "pytest", marker = "extra == 'test'", specifier = "
|
|
1335
|
-
{ name = "pytest-asyncio", marker = "extra == 'test'", specifier = "
|
|
1336
|
-
{ name = "pytest-cov", marker = "extra == 'test'", specifier = "
|
|
1337
|
-
{ name = "pytest-mock", marker = "extra == 'test'", specifier = "
|
|
1338
|
-
{ name = "pytest-watch", marker = "extra == 'test'", specifier = "
|
|
1334
|
+
{ name = "pytest", marker = "extra == 'test'", specifier = "==9.1.1" },
|
|
1335
|
+
{ name = "pytest-asyncio", marker = "extra == 'test'", specifier = "==1.4.0" },
|
|
1336
|
+
{ name = "pytest-cov", marker = "extra == 'test'", specifier = "==7.1.0" },
|
|
1337
|
+
{ name = "pytest-mock", marker = "extra == 'test'", specifier = "==3.15.1" },
|
|
1338
|
+
{ name = "pytest-watch", marker = "extra == 'test'", specifier = "==4.2.0" },
|
|
1339
1339
|
{ name = "python-dotenv", specifier = "==1.2.2" },
|
|
1340
1340
|
{ name = "requests", specifier = "==2.34.2" },
|
|
1341
|
-
{ name = "ruff", marker = "extra == 'dev'", specifier = "
|
|
1341
|
+
{ name = "ruff", marker = "extra == 'dev'", specifier = "==0.16.1" },
|
|
1342
1342
|
{ name = "socketdev", specifier = "==3.5.0" },
|
|
1343
|
-
{ name = "twine", marker = "extra == 'dev'" },
|
|
1344
|
-
{ name = "uv", marker = "extra == 'dev'", specifier = "
|
|
1343
|
+
{ name = "twine", marker = "extra == 'dev'", specifier = "==7.0.0" },
|
|
1344
|
+
{ name = "uv", marker = "extra == 'dev'", specifier = "==0.12.0" },
|
|
1345
1345
|
]
|
|
1346
1346
|
provides-extras = ["test", "dev"]
|
|
1347
1347
|
|
|
@@ -1444,7 +1444,7 @@ wheels = [
|
|
|
1444
1444
|
|
|
1445
1445
|
[[package]]
|
|
1446
1446
|
name = "twine"
|
|
1447
|
-
version = "
|
|
1447
|
+
version = "7.0.0"
|
|
1448
1448
|
source = { registry = "https://pypi.org/simple" }
|
|
1449
1449
|
dependencies = [
|
|
1450
1450
|
{ name = "id" },
|
|
@@ -1457,9 +1457,9 @@ dependencies = [
|
|
|
1457
1457
|
{ name = "rich" },
|
|
1458
1458
|
{ name = "urllib3" },
|
|
1459
1459
|
]
|
|
1460
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1460
|
+
sdist = { url = "https://files.pythonhosted.org/packages/92/3c/58f808a359700f39a967dffede33efeac809262c03303fa3eec6afff8f49/twine-7.0.0.tar.gz", hash = "sha256:85cdb29c518efef867360ae4acd4b0dfd61c8654a22fca08e6f8539f05022177", size = 215032, upload-time = "2026-07-27T15:59:00.825Z" }
|
|
1461
1461
|
wheels = [
|
|
1462
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1462
|
+
{ url = "https://files.pythonhosted.org/packages/96/08/ddcdc06225eaad6de0e48e1002b06d919dbde20582d0662c7af51308e5d6/twine-7.0.0-py3-none-any.whl", hash = "sha256:b854164df26db268af05f49aa5c0344b10e27a494343ff05b1e0bad3b135f5a7", size = 43204, upload-time = "2026-07-27T15:58:59.26Z" },
|
|
1463
1463
|
]
|
|
1464
1464
|
|
|
1465
1465
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.6.1 → socketsecurity-2.6.4}/socketsecurity/core/helper/socket_facts_loader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/diff/stream_diff_full.json
RENAMED
|
File without changes
|
|
File without changes
|
{socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/head_scan/stream_scan.json
RENAMED
|
File without changes
|
{socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/head_scan/stream_scan_full.json
RENAMED
|
File without changes
|
|
File without changes
|
{socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/data/fullscans/new_scan/stream_scan.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/e2e/fixtures/simple-pypi/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/fixtures/fossa/fossa-analyze-populated.json
RENAMED
|
File without changes
|
{socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/fixtures/fossa/fossa-sbom-empty-deep.json
RENAMED
|
File without changes
|
{socketsecurity-2.6.1 → socketsecurity-2.6.4}/tests/fixtures/fossa/fossa-sbom-populated.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|