socketsecurity 2.9.4__tar.gz → 2.9.5__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.9.5/.github/workflows/dependency-audit.yml +157 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/workflows/python-tests.yml +2 -11
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/workflows/version-check.yml +2 -6
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/CHANGELOG.md +15 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/PKG-INFO +2 -2
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/pyproject.toml +2 -2
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/__init__.py +1 -1
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/uv.lock +8 -8
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/CODEOWNERS +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/PULL_REQUEST_TEMPLATE/bug-fix.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/PULL_REQUEST_TEMPLATE/improvement.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/actions/setup-docker/action.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/actions/setup-hatch/action.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/actions/setup-sfw/action.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/dependabot.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/workflows/dependency-review.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/workflows/docker-stable.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/workflows/e2e-test.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/workflows/package-check.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/workflows/pr-preview.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/workflows/release.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.github/zizmor.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.gitignore +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.hooks/sync_version.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.pre-commit-config.yaml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/.python-version +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/CONTRIBUTING.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/Dockerfile +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/Dockerfile.preview +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/LICENSE +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/Makefile +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/README.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/benchmarks/manifest_discovery.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/docs/ci-cd.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/docs/cli-reference.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/docs/development.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/docs/troubleshooting.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/examples/config/sarif-dashboard-parity.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/examples/config/sarif-dashboard-parity.toml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/examples/config/sarif-diff-ci-cd.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/examples/config/sarif-diff-ci-cd.toml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/examples/config/sarif-instance-detail.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/examples/config/sarif-instance-detail.toml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/instructions/gitlab-commit-status/uat.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/pytest.ini +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/scripts/build_container.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/scripts/build_container_flexible.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/scripts/deploy-test-docker.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/scripts/deploy-test-pypi.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/scripts/docker-entrypoint.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/scripts/run.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/session.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socket.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/config.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/__init__.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/alert_selection.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/classes.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/cli_client.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/cli_run.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/exceptions.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/git_interface.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/git_remote.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/helper/__init__.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/helper/socket_facts_loader.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/lazy_file_loader.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/log_uploader.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/logging.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/messages.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/pull_request.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/resource_utils.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/scm/__init__.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/scm/base.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/scm/client.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/scm/github.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/scm/gitlab.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/scm_comments.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/socket_config.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/streaming.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/tools/reachability.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/core/utils.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/fossa_compat.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/output.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/plugins/__init__.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/plugins/base.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/plugins/formatters/__init__.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/plugins/formatters/slack.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/plugins/jira.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/plugins/manager.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/plugins/slack.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/plugins/teams.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/plugins/webhook.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/socketsecurity/socketcli.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/__init__.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/conftest.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/create_diff_input.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/test_diff_alerts.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/test_diff_generation.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/test_diff_scan_polling.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/test_facts_compression.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/test_full_scan_outputs.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/test_has_manifest_files.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/test_invalid_facts_marker.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/test_package_and_alerts.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/test_sdk_methods.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/core/test_supporting_methods.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/fullscans/create_response.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/fullscans/diff/stream_diff.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/fullscans/diff/stream_diff_full.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/fullscans/head_scan/metadata.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/fullscans/head_scan/stream_scan.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/fullscans/head_scan/stream_scan_full.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/fullscans/new_scan/metadata.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/fullscans/new_scan/stream_scan.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/repos/repo_info_error.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/repos/repo_info_no_head.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/repos/repo_info_success.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/settings/security-policy.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/e2e/fixtures/simple-npm/index.js +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/e2e/fixtures/simple-npm/package.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/e2e/fixtures/simple-pypi/requirements.txt +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/e2e/reach-facts-probe.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/e2e/validate-gitlab.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/e2e/validate-json.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/e2e/validate-reachability.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/e2e/validate-sarif.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/e2e/validate-scan.sh +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/fixtures/fossa/README.md +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/fixtures/fossa/fossa-analyze-empty.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/fixtures/fossa/fossa-analyze-populated.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/fixtures/fossa/fossa-sbom-empty-deep.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/fixtures/fossa/fossa-sbom-populated.json +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/__init__.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_alert_selection.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_cli_config.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_cli_run.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_client.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_config.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_dependency_overview.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_disable_ignore.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_exclude_paths.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_fossa_compat.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_fossa_parity.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_full_scan_retry.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_git_interface.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_git_remote.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_github_buildkite_config.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_gitlab_auth.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_gitlab_auth_fallback.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_gitlab_commit_status.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_gitlab_format.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_ignore_authorization.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_ignore_telemetry_filtering.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_include_dirs.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_log_uploader.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_manifest_discovery.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_messages.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_output.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_pr_comment_rendering.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_pull_request_context.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_reachability.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_scan_scope.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_slack_plugin.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_slack_severity_normalization.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_socketcli.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_streaming.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_tier1_finalize.py +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/workflows/bitbucket-pipelines.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/workflows/buildkite.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/workflows/github-actions.yml +0 -0
- {socketsecurity-2.9.4 → socketsecurity-2.9.5}/workflows/gitlab-ci.yml +0 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
name: Dependency Audit
|
|
2
|
+
|
|
3
|
+
env:
|
|
4
|
+
PYTHON_VERSION: "3.12"
|
|
5
|
+
|
|
6
|
+
# pip-audit compares the lockfile against advisory databases that publish
|
|
7
|
+
# continuously, so the result tracks the clock, not the commit. Hence the cron.
|
|
8
|
+
on:
|
|
9
|
+
schedule:
|
|
10
|
+
- cron: "17 6 * * *"
|
|
11
|
+
# Unfiltered: a required check behind a paths filter never reports on a
|
|
12
|
+
# pull request that misses the filter, which blocks the merge.
|
|
13
|
+
pull_request:
|
|
14
|
+
push:
|
|
15
|
+
branches: [main]
|
|
16
|
+
paths:
|
|
17
|
+
- "pyproject.toml"
|
|
18
|
+
- "uv.lock"
|
|
19
|
+
- ".github/workflows/dependency-audit.yml"
|
|
20
|
+
workflow_dispatch:
|
|
21
|
+
|
|
22
|
+
permissions:
|
|
23
|
+
contents: read
|
|
24
|
+
|
|
25
|
+
concurrency:
|
|
26
|
+
group: dependency-audit-${{ github.event.pull_request.number || github.ref }}
|
|
27
|
+
cancel-in-progress: true
|
|
28
|
+
|
|
29
|
+
jobs:
|
|
30
|
+
dependency-audit:
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
timeout-minutes: 10
|
|
33
|
+
permissions:
|
|
34
|
+
contents: read
|
|
35
|
+
issues: write
|
|
36
|
+
steps:
|
|
37
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
38
|
+
with:
|
|
39
|
+
fetch-depth: 1
|
|
40
|
+
persist-credentials: false
|
|
41
|
+
|
|
42
|
+
- name: 🐍 setup python
|
|
43
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
44
|
+
with:
|
|
45
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
46
|
+
|
|
47
|
+
- name: 🛠️ install uv
|
|
48
|
+
run: |
|
|
49
|
+
python -m pip install --upgrade pip
|
|
50
|
+
pip install uv
|
|
51
|
+
|
|
52
|
+
- name: 🛡️ pip-audit (known CVEs in the locked deps)
|
|
53
|
+
id: audit
|
|
54
|
+
run: |
|
|
55
|
+
uv export --no-hashes --no-emit-project --format requirements-txt > /tmp/req-audit.txt
|
|
56
|
+
|
|
57
|
+
set +e
|
|
58
|
+
uvx pip-audit --strict --progress-spinner off --disable-pip --no-deps \
|
|
59
|
+
-r /tmp/req-audit.txt 2>&1 | tee /tmp/audit.log
|
|
60
|
+
status=${PIPESTATUS[0]}
|
|
61
|
+
set -e
|
|
62
|
+
|
|
63
|
+
# Written before the exit so the next step can quote it.
|
|
64
|
+
{
|
|
65
|
+
echo 'report<<AUDIT_REPORT_EOF'
|
|
66
|
+
cat /tmp/audit.log
|
|
67
|
+
echo 'AUDIT_REPORT_EOF'
|
|
68
|
+
} >> "$GITHUB_OUTPUT"
|
|
69
|
+
|
|
70
|
+
exit "$status"
|
|
71
|
+
|
|
72
|
+
# A scheduled run has no pull request to turn red, so record it instead.
|
|
73
|
+
- name: 📮 open or update the tracking issue
|
|
74
|
+
if: always() && steps.audit.outcome == 'failure' && github.event_name == 'schedule'
|
|
75
|
+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
76
|
+
env:
|
|
77
|
+
AUDIT_REPORT: ${{ steps.audit.outputs.report }}
|
|
78
|
+
with:
|
|
79
|
+
script: |
|
|
80
|
+
const marker = '<!-- dependency-audit-tracking-issue -->';
|
|
81
|
+
const title = 'Dependency audit: known vulnerabilities in the locked dependencies';
|
|
82
|
+
const runUrl =
|
|
83
|
+
`${context.serverUrl}/${context.repo.owner}/${context.repo.repo}` +
|
|
84
|
+
`/actions/runs/${context.runId}`;
|
|
85
|
+
const body = [
|
|
86
|
+
marker,
|
|
87
|
+
'`pip-audit` found known vulnerabilities in the locked dependency set.',
|
|
88
|
+
'',
|
|
89
|
+
'Bump the affected pins in `pyproject.toml`, run `uv lock`, and open a PR.',
|
|
90
|
+
'',
|
|
91
|
+
'```',
|
|
92
|
+
process.env.AUDIT_REPORT.trim(),
|
|
93
|
+
'```',
|
|
94
|
+
'',
|
|
95
|
+
`Run: ${runUrl}`,
|
|
96
|
+
`Last checked: ${new Date().toISOString()}`,
|
|
97
|
+
].join('\n');
|
|
98
|
+
|
|
99
|
+
const existing = await github.paginate(github.rest.issues.listForRepo, {
|
|
100
|
+
owner: context.repo.owner,
|
|
101
|
+
repo: context.repo.repo,
|
|
102
|
+
state: 'open',
|
|
103
|
+
per_page: 100,
|
|
104
|
+
});
|
|
105
|
+
const tracking = existing.find(
|
|
106
|
+
(issue) => !issue.pull_request && issue.body && issue.body.includes(marker),
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
if (tracking) {
|
|
110
|
+
await github.rest.issues.update({
|
|
111
|
+
owner: context.repo.owner,
|
|
112
|
+
repo: context.repo.repo,
|
|
113
|
+
issue_number: tracking.number,
|
|
114
|
+
body,
|
|
115
|
+
});
|
|
116
|
+
core.notice(`Updated tracking issue #${tracking.number}`);
|
|
117
|
+
} else {
|
|
118
|
+
const created = await github.rest.issues.create({
|
|
119
|
+
owner: context.repo.owner,
|
|
120
|
+
repo: context.repo.repo,
|
|
121
|
+
title,
|
|
122
|
+
body,
|
|
123
|
+
labels: ['dependencies'],
|
|
124
|
+
});
|
|
125
|
+
core.notice(`Opened tracking issue #${created.data.number}`);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
- name: ✅ close the tracking issue once the audit is clean
|
|
129
|
+
if: always() && steps.audit.outcome == 'success' && github.event_name == 'schedule'
|
|
130
|
+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
131
|
+
with:
|
|
132
|
+
script: |
|
|
133
|
+
const marker = '<!-- dependency-audit-tracking-issue -->';
|
|
134
|
+
const existing = await github.paginate(github.rest.issues.listForRepo, {
|
|
135
|
+
owner: context.repo.owner,
|
|
136
|
+
repo: context.repo.repo,
|
|
137
|
+
state: 'open',
|
|
138
|
+
per_page: 100,
|
|
139
|
+
});
|
|
140
|
+
const tracking = existing.find(
|
|
141
|
+
(issue) => !issue.pull_request && issue.body && issue.body.includes(marker),
|
|
142
|
+
);
|
|
143
|
+
if (!tracking) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
await github.rest.issues.createComment({
|
|
147
|
+
owner: context.repo.owner,
|
|
148
|
+
repo: context.repo.repo,
|
|
149
|
+
issue_number: tracking.number,
|
|
150
|
+
body: 'The scheduled audit is clean again. Closing.',
|
|
151
|
+
});
|
|
152
|
+
await github.rest.issues.update({
|
|
153
|
+
owner: context.repo.owner,
|
|
154
|
+
repo: context.repo.repo,
|
|
155
|
+
issue_number: tracking.number,
|
|
156
|
+
state: 'closed',
|
|
157
|
+
});
|
|
@@ -13,14 +13,9 @@ on:
|
|
|
13
13
|
- "pyproject.toml"
|
|
14
14
|
- "uv.lock"
|
|
15
15
|
- ".github/workflows/python-tests.yml"
|
|
16
|
+
# Unfiltered: a required check behind a paths filter never reports on a
|
|
17
|
+
# pull request that misses the filter, which blocks the merge.
|
|
16
18
|
pull_request:
|
|
17
|
-
paths:
|
|
18
|
-
- "socketsecurity/**/*.py"
|
|
19
|
-
- "tests/unit/**/*.py"
|
|
20
|
-
- "tests/core/**/*.py"
|
|
21
|
-
- "pyproject.toml"
|
|
22
|
-
- "uv.lock"
|
|
23
|
-
- ".github/workflows/python-tests.yml"
|
|
24
19
|
workflow_dispatch:
|
|
25
20
|
|
|
26
21
|
permissions:
|
|
@@ -62,10 +57,6 @@ jobs:
|
|
|
62
57
|
from socketsecurity.config import CliConfig
|
|
63
58
|
print('import smoke OK')
|
|
64
59
|
"
|
|
65
|
-
- name: 🛡️ pip-audit (known CVEs in the locked deps)
|
|
66
|
-
run: |
|
|
67
|
-
uv export --no-hashes --no-emit-project --format requirements-txt > /tmp/req-audit.txt
|
|
68
|
-
uvx pip-audit --strict --progress-spinner off --disable-pip --no-deps -r /tmp/req-audit.txt
|
|
69
60
|
|
|
70
61
|
ruff:
|
|
71
62
|
runs-on: ubuntu-latest
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
name: Version Check
|
|
2
2
|
on:
|
|
3
|
+
# Unfiltered: a required check behind a paths filter never reports on a
|
|
4
|
+
# pull request that misses the filter, which blocks the merge.
|
|
3
5
|
pull_request:
|
|
4
6
|
types: [opened, synchronize, ready_for_review]
|
|
5
|
-
paths:
|
|
6
|
-
- 'socketsecurity/**'
|
|
7
|
-
- 'pyproject.toml'
|
|
8
|
-
- 'uv.lock'
|
|
9
|
-
# Included so a change to the check itself is exercised by its own PR.
|
|
10
|
-
- '.github/workflows/version-check.yml'
|
|
11
7
|
|
|
12
8
|
permissions:
|
|
13
9
|
contents: read
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.9.5
|
|
4
|
+
|
|
5
|
+
### Changed: bump pinned gitpython to 3.1.62 and soupsieve to 2.9.2
|
|
6
|
+
|
|
7
|
+
- Bumped `gitpython` from `3.1.59` to `3.1.62` (CVE-2026-87817, CVE-2026-87818,
|
|
8
|
+
CVE-2026-87819) and the transitive `soupsieve` pin from `2.8.4` to `2.9.2`
|
|
9
|
+
(GHSA-gjv8-xp57-g29c, GHSA-j934-xhv5-fg8f).
|
|
10
|
+
- Normalized the `gitpython` requirement to its lowercase PEP 503 name.
|
|
11
|
+
|
|
12
|
+
### Changed: audit the locked dependencies on a schedule
|
|
13
|
+
|
|
14
|
+
- `pip-audit` moved out of the Unit Tests workflow into a new Dependency Audit
|
|
15
|
+
workflow that also runs daily, so advisories published against unchanged pins
|
|
16
|
+
are reported on their own schedule rather than on the next push.
|
|
17
|
+
|
|
3
18
|
## 2.9.4
|
|
4
19
|
|
|
5
20
|
### Changed: bump pinned @coana-tech/cli to 15.10.46
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: socketsecurity
|
|
3
|
-
Version: 2.9.
|
|
3
|
+
Version: 2.9.5
|
|
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>
|
|
@@ -36,7 +36,7 @@ Requires-Python: >=3.11
|
|
|
36
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.2; platform_python_implementation != 'CPython'
|
|
39
|
-
Requires-Dist: gitpython==3.1.
|
|
39
|
+
Requires-Dist: gitpython==3.1.62
|
|
40
40
|
Requires-Dist: markdown==3.10.3
|
|
41
41
|
Requires-Dist: mdutils==1.8.1
|
|
42
42
|
Requires-Dist: packaging==26.3
|
|
@@ -6,14 +6,14 @@ build-backend = "hatchling.build"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "socketsecurity"
|
|
9
|
-
version = "2.9.
|
|
9
|
+
version = "2.9.5"
|
|
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
|
-
"
|
|
16
|
+
"gitpython==3.1.62",
|
|
17
17
|
"packaging==26.3",
|
|
18
18
|
"python-dotenv==1.2.3",
|
|
19
19
|
"socketdev==3.6.0",
|
|
@@ -575,14 +575,14 @@ wheels = [
|
|
|
575
575
|
|
|
576
576
|
[[package]]
|
|
577
577
|
name = "gitpython"
|
|
578
|
-
version = "3.1.
|
|
578
|
+
version = "3.1.62"
|
|
579
579
|
source = { registry = "https://pypi.org/simple" }
|
|
580
580
|
dependencies = [
|
|
581
581
|
{ name = "gitdb" },
|
|
582
582
|
]
|
|
583
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
583
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e0/db/3ca813cbacb23ab6fe46ff38a9b5ef8e73e970c8051f2ce903aacafe0446/gitpython-3.1.62.tar.gz", hash = "sha256:1791de66309bc0c7cfca40bf8d2e3de7ca091cbf94e6051be1ad0722c61062af", size = 231728, upload-time = "2026-09-07T02:57:21.155Z" }
|
|
584
584
|
wheels = [
|
|
585
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
585
|
+
{ url = "https://files.pythonhosted.org/packages/d6/0b/29d7965215f8ef830a7ca1f42997fe13e5693d85e9edb18f938d063ef5f2/gitpython-3.1.62-py3-none-any.whl", hash = "sha256:7002251225e10e29d2e1f49e6532613fe5d5d9f0b6f1f02997a52b38fe56899e", size = 222753, upload-time = "2026-09-07T02:57:19.762Z" },
|
|
586
586
|
]
|
|
587
587
|
|
|
588
588
|
[[package]]
|
|
@@ -1293,7 +1293,7 @@ wheels = [
|
|
|
1293
1293
|
|
|
1294
1294
|
[[package]]
|
|
1295
1295
|
name = "socketsecurity"
|
|
1296
|
-
version = "2.9.
|
|
1296
|
+
version = "2.9.5"
|
|
1297
1297
|
source = { editable = "." }
|
|
1298
1298
|
dependencies = [
|
|
1299
1299
|
{ name = "beautifulsoup4" },
|
|
@@ -1335,7 +1335,7 @@ requires-dist = [
|
|
|
1335
1335
|
{ name = "beautifulsoup4", specifier = "==4.15.0" },
|
|
1336
1336
|
{ name = "brotli", marker = "platform_python_implementation == 'CPython'", specifier = "==1.2.0" },
|
|
1337
1337
|
{ name = "brotlicffi", marker = "platform_python_implementation != 'CPython'", specifier = "==1.2.0.2" },
|
|
1338
|
-
{ name = "gitpython", specifier = "==3.1.
|
|
1338
|
+
{ name = "gitpython", specifier = "==3.1.62" },
|
|
1339
1339
|
{ name = "hatch", marker = "extra == 'dev'", specifier = "==1.18.0" },
|
|
1340
1340
|
{ name = "markdown", specifier = "==3.10.3" },
|
|
1341
1341
|
{ name = "mdutils", specifier = "==1.8.1" },
|
|
@@ -1361,11 +1361,11 @@ dev = [{ name = "pre-commit", specifier = ">=4.3.0" }]
|
|
|
1361
1361
|
|
|
1362
1362
|
[[package]]
|
|
1363
1363
|
name = "soupsieve"
|
|
1364
|
-
version = "2.
|
|
1364
|
+
version = "2.9.2"
|
|
1365
1365
|
source = { registry = "https://pypi.org/simple" }
|
|
1366
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1366
|
+
sdist = { url = "https://files.pythonhosted.org/packages/69/99/a6ca3beb3ccacb41fb3321d8a60e5566f9e6467601ef8eba6a17e1b89778/soupsieve-2.9.2.tar.gz", hash = "sha256:4a55d8cf158a9c2e587fa4922f1bbb91d68ac829e2d6f25403a85747c71daf74", size = 122445, upload-time = "2026-08-07T00:57:24.801Z" }
|
|
1367
1367
|
wheels = [
|
|
1368
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1368
|
+
{ url = "https://files.pythonhosted.org/packages/eb/dc/ad025c1ee131eba60c69f4dd5779b18fcf1e6b21a343e2162a84d5d133c7/soupsieve-2.9.2-py3-none-any.whl", hash = "sha256:8089a26fd974ca7a1f30276d3d8492ab266ab15af581642dfe8aa162e0c1c823", size = 37370, upload-time = "2026-08-07T00:57:23.524Z" },
|
|
1369
1369
|
]
|
|
1370
1370
|
|
|
1371
1371
|
[[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
|
|
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.9.4 → socketsecurity-2.9.5}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/fullscans/diff/stream_diff_full.json
RENAMED
|
File without changes
|
|
File without changes
|
{socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/fullscans/head_scan/stream_scan.json
RENAMED
|
File without changes
|
{socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/data/fullscans/head_scan/stream_scan_full.json
RENAMED
|
File without changes
|
|
File without changes
|
{socketsecurity-2.9.4 → socketsecurity-2.9.5}/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.9.4 → socketsecurity-2.9.5}/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.9.4 → socketsecurity-2.9.5}/tests/fixtures/fossa/fossa-analyze-populated.json
RENAMED
|
File without changes
|
{socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/fixtures/fossa/fossa-sbom-empty-deep.json
RENAMED
|
File without changes
|
{socketsecurity-2.9.4 → socketsecurity-2.9.5}/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
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.9.4 → socketsecurity-2.9.5}/tests/unit/test_slack_severity_normalization.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
|