http-api-tool 1.1.3__tar.gz → 1.1.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.
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/build-test-release.yaml +14 -14
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/build-test.yaml +133 -27
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/clear-action-cache.yaml +1 -1
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/openssf-scorecard.yaml +1 -1
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/release-drafter.yaml +3 -3
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/security-scans.yaml +12 -8
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.pre-commit-config.yaml +5 -5
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/PKG-INFO +4 -4
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/README.md +2 -2
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/action.yaml +11 -1
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/pyproject.toml +1 -1
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/_version.py +2 -2
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/uv.lock +75 -63
- http_api_tool-1.1.3/.github/workflows/codeql.yml +0 -35
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.actrc +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.aislop/config.yml +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.codespell +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.dockerignore +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.editorconfig +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/actionlint.yaml +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/cache-config.yaml +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/dependabot.yml +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.gitignore +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.gitlint +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.readthedocs.yml +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.yamllint +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/AGENTS.md +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/CHANGELOG-v0.2.0.md +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/LICENSE +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/LICENSES/Apache-2.0.txt +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/REUSE.toml +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/SECURITY.md +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/UV-QUICK-REFERENCE.md +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/docker/Containerfile +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/scripts/check-pip-security.py +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/scripts/generate_requirements.py +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/sonar-project.properties +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/__init__.py +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/__main__.py +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/cli.py +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/curl_client.py +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/reporting.py +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/sanitize.py +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/validation.py +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/verifier.py +0 -0
- {http_api_tool-1.1.3 → http_api_tool-1.1.5}/tests/test_http_api_tool.py +0 -0
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
timeout-minutes: 5
|
|
33
33
|
steps:
|
|
34
34
|
# yamllint disable-line rule:line-length
|
|
35
|
-
- uses: step-security/harden-runner@
|
|
35
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
36
36
|
with:
|
|
37
37
|
egress-policy: audit
|
|
38
38
|
|
|
@@ -64,7 +64,7 @@ jobs:
|
|
|
64
64
|
steps:
|
|
65
65
|
# Harden the runner used by this workflow
|
|
66
66
|
# yamllint disable-line rule:line-length
|
|
67
|
-
- uses: step-security/harden-runner@
|
|
67
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
68
68
|
with:
|
|
69
69
|
egress-policy: 'audit'
|
|
70
70
|
|
|
@@ -79,7 +79,7 @@ jobs:
|
|
|
79
79
|
- name: 'Verify pushed tag'
|
|
80
80
|
id: 'tag-validate'
|
|
81
81
|
# yamllint disable-line rule:line-length
|
|
82
|
-
uses: lfreleng-actions/tag-validate-action@
|
|
82
|
+
uses: lfreleng-actions/tag-validate-action@eab7d92e02c8b447a4de04e68bd5ee7eae3450eb # v1.1.8
|
|
83
83
|
with:
|
|
84
84
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
|
85
85
|
require_type: 'semver'
|
|
@@ -132,7 +132,7 @@ jobs:
|
|
|
132
132
|
steps:
|
|
133
133
|
# Harden the runner used by this workflow
|
|
134
134
|
# yamllint disable-line rule:line-length
|
|
135
|
-
- uses: step-security/harden-runner@
|
|
135
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
136
136
|
with:
|
|
137
137
|
egress-policy: 'audit'
|
|
138
138
|
|
|
@@ -163,7 +163,7 @@ jobs:
|
|
|
163
163
|
steps:
|
|
164
164
|
# Harden the runner used by this workflow
|
|
165
165
|
# yamllint disable-line rule:line-length
|
|
166
|
-
- uses: step-security/harden-runner@
|
|
166
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
167
167
|
with:
|
|
168
168
|
egress-policy: 'audit'
|
|
169
169
|
|
|
@@ -192,7 +192,7 @@ jobs:
|
|
|
192
192
|
steps:
|
|
193
193
|
# Harden the runner used by this workflow
|
|
194
194
|
# yamllint disable-line rule:line-length
|
|
195
|
-
- uses: step-security/harden-runner@
|
|
195
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
196
196
|
with:
|
|
197
197
|
egress-policy: 'audit'
|
|
198
198
|
|
|
@@ -218,7 +218,7 @@ jobs:
|
|
|
218
218
|
steps:
|
|
219
219
|
# Harden the runner used by this workflow
|
|
220
220
|
# yamllint disable-line rule:line-length
|
|
221
|
-
- uses: step-security/harden-runner@
|
|
221
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
222
222
|
with:
|
|
223
223
|
egress-policy: 'audit'
|
|
224
224
|
|
|
@@ -345,7 +345,7 @@ jobs:
|
|
|
345
345
|
steps:
|
|
346
346
|
# Harden the runner used by this workflow
|
|
347
347
|
# yamllint disable-line rule:line-length
|
|
348
|
-
- uses: step-security/harden-runner@
|
|
348
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
349
349
|
with:
|
|
350
350
|
egress-policy: 'audit'
|
|
351
351
|
|
|
@@ -370,7 +370,7 @@ jobs:
|
|
|
370
370
|
steps:
|
|
371
371
|
# Harden the runner used by this workflow
|
|
372
372
|
# yamllint disable-line rule:line-length
|
|
373
|
-
- uses: step-security/harden-runner@
|
|
373
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
374
374
|
with:
|
|
375
375
|
egress-policy: 'audit'
|
|
376
376
|
|
|
@@ -387,7 +387,7 @@ jobs:
|
|
|
387
387
|
# Login to GitHub Container Registry
|
|
388
388
|
- name: Login to Container Registry
|
|
389
389
|
# yamllint disable-line rule:line-length
|
|
390
|
-
uses: docker/login-action@
|
|
390
|
+
uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4.7.0
|
|
391
391
|
with:
|
|
392
392
|
registry: ${{ env.REGISTRY }}
|
|
393
393
|
username: ${{ github.actor }}
|
|
@@ -457,7 +457,7 @@ jobs:
|
|
|
457
457
|
steps:
|
|
458
458
|
# Harden the runner used by this workflow
|
|
459
459
|
# yamllint disable-line rule:line-length
|
|
460
|
-
- uses: step-security/harden-runner@
|
|
460
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
461
461
|
with:
|
|
462
462
|
egress-policy: 'audit'
|
|
463
463
|
|
|
@@ -495,7 +495,7 @@ jobs:
|
|
|
495
495
|
steps:
|
|
496
496
|
# Harden the runner used by this workflow
|
|
497
497
|
# yamllint disable-line rule:line-length
|
|
498
|
-
- uses: step-security/harden-runner@
|
|
498
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
499
499
|
with:
|
|
500
500
|
egress-policy: 'audit'
|
|
501
501
|
|
|
@@ -513,7 +513,7 @@ jobs:
|
|
|
513
513
|
|
|
514
514
|
- name: 'Attach build artefacts to release'
|
|
515
515
|
# yamllint disable-line rule:line-length
|
|
516
|
-
uses: lfreleng-actions/release-assets-action@
|
|
516
|
+
uses: lfreleng-actions/release-assets-action@d7b650fbf8fbca7a436f75ddada3d4cdbd36a802 # v0.1.4
|
|
517
517
|
with:
|
|
518
518
|
asset_paths: '["${{ needs.python-build.outputs.artefact_path }}/**"]'
|
|
519
519
|
release_tag: "${{ needs.tag-validate.outputs.tag }}"
|
|
@@ -535,7 +535,7 @@ jobs:
|
|
|
535
535
|
steps:
|
|
536
536
|
# Harden the runner used by this workflow
|
|
537
537
|
# yamllint disable-line rule:line-length
|
|
538
|
-
- uses: step-security/harden-runner@
|
|
538
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
539
539
|
with:
|
|
540
540
|
egress-policy: 'audit'
|
|
541
541
|
|
|
@@ -76,7 +76,7 @@ jobs:
|
|
|
76
76
|
steps:
|
|
77
77
|
# Harden the runner
|
|
78
78
|
- name: Harden Runner
|
|
79
|
-
uses: step-security/harden-runner@
|
|
79
|
+
uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
80
80
|
with:
|
|
81
81
|
egress-policy: audit
|
|
82
82
|
|
|
@@ -132,7 +132,7 @@ jobs:
|
|
|
132
132
|
steps:
|
|
133
133
|
# Set up go-httpbin for testing
|
|
134
134
|
- name: Setup go-httpbin HTTPS service
|
|
135
|
-
uses: lfreleng-actions/go-httpbin-action@
|
|
135
|
+
uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
|
|
136
136
|
id: go-httpbin
|
|
137
137
|
with:
|
|
138
138
|
debug: 'true'
|
|
@@ -203,7 +203,7 @@ jobs:
|
|
|
203
203
|
steps:
|
|
204
204
|
# Harden the runner
|
|
205
205
|
- name: Harden Runner
|
|
206
|
-
uses: step-security/harden-runner@
|
|
206
|
+
uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
207
207
|
with:
|
|
208
208
|
egress-policy: audit
|
|
209
209
|
|
|
@@ -218,7 +218,7 @@ jobs:
|
|
|
218
218
|
|
|
219
219
|
# Login to GitHub Container Registry
|
|
220
220
|
- name: Login to Container Registry
|
|
221
|
-
uses: docker/login-action@
|
|
221
|
+
uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4.7.0
|
|
222
222
|
with:
|
|
223
223
|
registry: ${{ env.REGISTRY }}
|
|
224
224
|
username: ${{ github.actor }}
|
|
@@ -285,7 +285,7 @@ jobs:
|
|
|
285
285
|
GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
|
286
286
|
steps:
|
|
287
287
|
# Harden the runner used by this workflow
|
|
288
|
-
- uses: step-security/harden-runner@
|
|
288
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
289
289
|
with:
|
|
290
290
|
egress-policy: 'audit'
|
|
291
291
|
|
|
@@ -296,7 +296,7 @@ jobs:
|
|
|
296
296
|
# Setup Python with enhanced caching
|
|
297
297
|
- name: Set up Python
|
|
298
298
|
id: setup-python
|
|
299
|
-
uses: actions/setup-python@
|
|
299
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
300
300
|
with:
|
|
301
301
|
# Do NOT use hard coded Python; extract from pyproject.toml
|
|
302
302
|
python-version-file: 'pyproject.toml'
|
|
@@ -335,7 +335,7 @@ jobs:
|
|
|
335
335
|
timeout-minutes: 12
|
|
336
336
|
steps:
|
|
337
337
|
# Harden the runner used by this workflow
|
|
338
|
-
- uses: step-security/harden-runner@
|
|
338
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
339
339
|
with:
|
|
340
340
|
egress-policy: audit
|
|
341
341
|
|
|
@@ -346,7 +346,7 @@ jobs:
|
|
|
346
346
|
# Setup Python with comprehensive caching
|
|
347
347
|
- name: Set up Python
|
|
348
348
|
id: setup-python
|
|
349
|
-
uses: actions/setup-python@
|
|
349
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
350
350
|
with:
|
|
351
351
|
python-version: ${{ matrix.python-version }}
|
|
352
352
|
cache: 'pip'
|
|
@@ -386,7 +386,7 @@ jobs:
|
|
|
386
386
|
timeout-minutes: 10
|
|
387
387
|
steps:
|
|
388
388
|
# Harden the runner used by this workflow
|
|
389
|
-
- uses: step-security/harden-runner@
|
|
389
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
390
390
|
with:
|
|
391
391
|
egress-policy: 'audit'
|
|
392
392
|
|
|
@@ -397,7 +397,7 @@ jobs:
|
|
|
397
397
|
# Setup Python with comprehensive caching
|
|
398
398
|
- name: Set up Python
|
|
399
399
|
id: setup-python
|
|
400
|
-
uses: actions/setup-python@
|
|
400
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
401
401
|
with:
|
|
402
402
|
python-version: ${{ matrix.python-version }}
|
|
403
403
|
cache: 'pip'
|
|
@@ -434,7 +434,7 @@ jobs:
|
|
|
434
434
|
timeout-minutes: 15
|
|
435
435
|
steps:
|
|
436
436
|
# Harden the runner used by this workflow
|
|
437
|
-
- uses: step-security/harden-runner@
|
|
437
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
438
438
|
with:
|
|
439
439
|
egress-policy: 'audit'
|
|
440
440
|
|
|
@@ -445,7 +445,7 @@ jobs:
|
|
|
445
445
|
# Setup Python with comprehensive caching
|
|
446
446
|
- name: Set up Python
|
|
447
447
|
id: setup-python
|
|
448
|
-
uses: actions/setup-python@
|
|
448
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
449
449
|
with:
|
|
450
450
|
python-version-file: 'pyproject.toml'
|
|
451
451
|
cache: 'pip'
|
|
@@ -466,7 +466,7 @@ jobs:
|
|
|
466
466
|
uv-cli-${{ runner.os }}-
|
|
467
467
|
|
|
468
468
|
- name: Install UV
|
|
469
|
-
uses: astral-sh/setup-uv@
|
|
469
|
+
uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
470
470
|
|
|
471
471
|
- name: Install project dependencies
|
|
472
472
|
run: |
|
|
@@ -483,7 +483,7 @@ jobs:
|
|
|
483
483
|
# Start go-httpbin service for testing
|
|
484
484
|
- name: Setup go-httpbin service
|
|
485
485
|
id: go-httpbin
|
|
486
|
-
uses: lfreleng-actions/go-httpbin-action@
|
|
486
|
+
uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
|
|
487
487
|
with:
|
|
488
488
|
port: '8080'
|
|
489
489
|
debug: 'true'
|
|
@@ -561,14 +561,14 @@ jobs:
|
|
|
561
561
|
timeout-minutes: 10
|
|
562
562
|
steps:
|
|
563
563
|
# Harden the runner used by this workflow
|
|
564
|
-
- uses: step-security/harden-runner@
|
|
564
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
565
565
|
with:
|
|
566
566
|
egress-policy: 'audit'
|
|
567
567
|
|
|
568
568
|
# Start go-httpbin service for testing
|
|
569
569
|
- name: Setup go-httpbin service
|
|
570
570
|
id: go-httpbin
|
|
571
|
-
uses: lfreleng-actions/go-httpbin-action@
|
|
571
|
+
uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
|
|
572
572
|
with:
|
|
573
573
|
port: '8080'
|
|
574
574
|
debug: 'true'
|
|
@@ -618,14 +618,14 @@ jobs:
|
|
|
618
618
|
timeout-minutes: 10
|
|
619
619
|
steps:
|
|
620
620
|
# Harden the runner used by this workflow
|
|
621
|
-
- uses: step-security/harden-runner@
|
|
621
|
+
- uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
622
622
|
with:
|
|
623
623
|
egress-policy: 'audit'
|
|
624
624
|
|
|
625
625
|
# Start go-httpbin service for testing
|
|
626
626
|
- name: Setup go-httpbin service
|
|
627
627
|
id: go-httpbin
|
|
628
|
-
uses: lfreleng-actions/go-httpbin-action@
|
|
628
|
+
uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
|
|
629
629
|
with:
|
|
630
630
|
port: '8080'
|
|
631
631
|
debug: 'true'
|
|
@@ -655,7 +655,32 @@ jobs:
|
|
|
655
655
|
env:
|
|
656
656
|
STEPS_GO_HTTPBIN_OUTPUTS_SERVICE_URL: ${{ steps.go-httpbin.outputs.service-url }}
|
|
657
657
|
|
|
658
|
+
# setup-uv in the action must neither start an interpreter from the
|
|
659
|
+
# caller's workspace nor read its uv settings. Each planted
|
|
660
|
+
# interpreter records that it ran, and the uv.toml's
|
|
661
|
+
# required-version would fail the action.
|
|
662
|
+
- name: Plant interpreters and uv settings in the workspace
|
|
663
|
+
run: |
|
|
664
|
+
set -euo pipefail
|
|
665
|
+
marker="$RUNNER_TEMP/planted-ran"
|
|
666
|
+
stub() {
|
|
667
|
+
# $0 and $* expand when the stub runs, not here.
|
|
668
|
+
# shellcheck disable=SC2016
|
|
669
|
+
printf '#!/bin/sh\necho "%s: $0 $*" >> "%s"\nexit 1\n' \
|
|
670
|
+
"$1" "$marker" > "$2"
|
|
671
|
+
chmod +x "$2"
|
|
672
|
+
}
|
|
673
|
+
mkdir -p .venv/bin planted
|
|
674
|
+
printf 'home = /usr/bin\nversion_info = 3.12.0\n' > .venv/pyvenv.cfg
|
|
675
|
+
stub venv .venv/bin/python3
|
|
676
|
+
stub venv .venv/bin/python
|
|
677
|
+
stub python-version planted/python3
|
|
678
|
+
echo "$GITHUB_WORKSPACE/planted/python3" > .python-version
|
|
679
|
+
printf '%s\n' 'cache-dir = "/nonexistent/planted-cache"' \
|
|
680
|
+
'required-version = "==0.0.1"' > uv.toml
|
|
681
|
+
|
|
658
682
|
- name: Test uvx deployment with host URL
|
|
683
|
+
id: uvx-get
|
|
659
684
|
uses: $/
|
|
660
685
|
with:
|
|
661
686
|
deploy: 'uvx'
|
|
@@ -703,6 +728,87 @@ jobs:
|
|
|
703
728
|
verify_ssl: 'false'
|
|
704
729
|
debug: 'true'
|
|
705
730
|
|
|
731
|
+
- name: Check uvx results and that no planted interpreter ran
|
|
732
|
+
env:
|
|
733
|
+
HTTP_CODE: ${{ steps.uvx-get.outputs.response_http_code }}
|
|
734
|
+
run: |
|
|
735
|
+
set -euo pipefail
|
|
736
|
+
marker="$RUNNER_TEMP/planted-ran"
|
|
737
|
+
if [[ -e "$marker" ]]; then
|
|
738
|
+
echo "::error::A planted workspace interpreter ran:"
|
|
739
|
+
cat "$marker"
|
|
740
|
+
exit 1
|
|
741
|
+
fi
|
|
742
|
+
if [[ "$HTTP_CODE" != "200" ]]; then
|
|
743
|
+
echo "::error::Unexpected response_http_code: '$HTTP_CODE'"
|
|
744
|
+
exit 1
|
|
745
|
+
fi
|
|
746
|
+
rm -rf .venv planted .python-version uv.toml
|
|
747
|
+
|
|
748
|
+
# The same check with the action checked out inside the workspace
|
|
749
|
+
# ('uses: ./...'), as a caller that vendors it would. The planted
|
|
750
|
+
# files sit in the workspace root, the action directory's parent,
|
|
751
|
+
# where only the step's UV_* settings keep uv from using them.
|
|
752
|
+
- name: Checkout this action into the workspace
|
|
753
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
754
|
+
with:
|
|
755
|
+
path: 'local-action'
|
|
756
|
+
persist-credentials: false
|
|
757
|
+
|
|
758
|
+
- name: Plant interpreters and uv settings above the action
|
|
759
|
+
run: |
|
|
760
|
+
set -euo pipefail
|
|
761
|
+
marker="$RUNNER_TEMP/planted-ran"
|
|
762
|
+
stub() {
|
|
763
|
+
# $0 and $* expand when the stub runs, not here.
|
|
764
|
+
# shellcheck disable=SC2016
|
|
765
|
+
printf '#!/bin/sh\necho "%s: $0 $*" >> "%s"\nexit 1\n' \
|
|
766
|
+
"$1" "$marker" > "$2"
|
|
767
|
+
chmod +x "$2"
|
|
768
|
+
}
|
|
769
|
+
mkdir -p .venv/bin planted
|
|
770
|
+
printf 'home = /usr/bin\nversion_info = 3.12.0\n' > .venv/pyvenv.cfg
|
|
771
|
+
stub venv .venv/bin/python3
|
|
772
|
+
stub venv .venv/bin/python
|
|
773
|
+
stub python-version planted/python3
|
|
774
|
+
echo "$GITHUB_WORKSPACE/planted/python3" > .python-version
|
|
775
|
+
printf '%s\n' 'cache-dir = "/nonexistent/planted-cache"' \
|
|
776
|
+
'required-version = "==0.0.1"' > uv.toml
|
|
777
|
+
|
|
778
|
+
- name: Test uvx deployment from the workspace copy
|
|
779
|
+
id: uvx-local
|
|
780
|
+
# The local path is the point of this step: '$/' would download
|
|
781
|
+
# the action outside the workspace, as the steps above do.
|
|
782
|
+
uses: ./local-action # zizmor: ignore[self-repository]
|
|
783
|
+
with:
|
|
784
|
+
deploy: 'uvx'
|
|
785
|
+
url: '${{ steps.test-urls.outputs.host-url }}/get'
|
|
786
|
+
service_name: 'UVX Local Copy Test'
|
|
787
|
+
expected_http_code: 200
|
|
788
|
+
retries: 3
|
|
789
|
+
initial_sleep_time: 1
|
|
790
|
+
verify_ssl: 'false'
|
|
791
|
+
debug: 'true'
|
|
792
|
+
|
|
793
|
+
- name: Check the workspace copy and that nothing planted ran
|
|
794
|
+
env:
|
|
795
|
+
HTTP_CODE: ${{ steps.uvx-local.outputs.response_http_code }}
|
|
796
|
+
run: |
|
|
797
|
+
set -euo pipefail
|
|
798
|
+
marker="$RUNNER_TEMP/planted-ran"
|
|
799
|
+
if [[ -e "$marker" ]]; then
|
|
800
|
+
echo "::error::A planted workspace interpreter ran:"
|
|
801
|
+
cat "$marker"
|
|
802
|
+
exit 1
|
|
803
|
+
fi
|
|
804
|
+
if [[ "$HTTP_CODE" != "200" ]]; then
|
|
805
|
+
echo "::error::Unexpected response_http_code: '$HTTP_CODE'"
|
|
806
|
+
exit 1
|
|
807
|
+
fi
|
|
808
|
+
# local-action/ stays: the runner reads its action.yaml again
|
|
809
|
+
# for the post-job cleanup of a local action.
|
|
810
|
+
rm -rf .venv planted .python-version uv.toml
|
|
811
|
+
|
|
706
812
|
- name: Verify both deployment modes work
|
|
707
813
|
run: |
|
|
708
814
|
echo "=== Deployment Mode Test Summary ==="
|
|
@@ -730,14 +836,14 @@ jobs:
|
|
|
730
836
|
steps:
|
|
731
837
|
# Harden the runner used by this workflow
|
|
732
838
|
- name: Harden Runner
|
|
733
|
-
uses: step-security/harden-runner@
|
|
839
|
+
uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
734
840
|
with:
|
|
735
841
|
egress-policy: audit
|
|
736
842
|
|
|
737
843
|
# Start go-httpbin service for testing
|
|
738
844
|
- name: Setup go-httpbin service
|
|
739
845
|
id: go-httpbin
|
|
740
|
-
uses: lfreleng-actions/go-httpbin-action@
|
|
846
|
+
uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
|
|
741
847
|
with:
|
|
742
848
|
port: '8080'
|
|
743
849
|
debug: 'true'
|
|
@@ -797,7 +903,7 @@ jobs:
|
|
|
797
903
|
steps:
|
|
798
904
|
# Harden the runner used by this workflow
|
|
799
905
|
- name: Harden Runner
|
|
800
|
-
uses: step-security/harden-runner@
|
|
906
|
+
uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
801
907
|
with:
|
|
802
908
|
egress-policy: audit
|
|
803
909
|
|
|
@@ -811,7 +917,7 @@ jobs:
|
|
|
811
917
|
|
|
812
918
|
# Login to Container Registry
|
|
813
919
|
- name: Login to Container Registry
|
|
814
|
-
uses: docker/login-action@
|
|
920
|
+
uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4.7.0
|
|
815
921
|
with:
|
|
816
922
|
registry: ${{ env.REGISTRY }}
|
|
817
923
|
username: ${{ github.actor }}
|
|
@@ -829,7 +935,7 @@ jobs:
|
|
|
829
935
|
# Start go-httpbin service for testing
|
|
830
936
|
- name: Setup go-httpbin service
|
|
831
937
|
id: go-httpbin
|
|
832
|
-
uses: lfreleng-actions/go-httpbin-action@
|
|
938
|
+
uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
|
|
833
939
|
with:
|
|
834
940
|
port: '8080'
|
|
835
941
|
debug: 'true'
|
|
@@ -845,7 +951,7 @@ jobs:
|
|
|
845
951
|
|
|
846
952
|
# Test the http-api-tool against go-httpbin with HTTPS
|
|
847
953
|
docker run --rm --network host \
|
|
848
|
-
-v "$
|
|
954
|
+
-v "$CA_BUNDLE:/tmp/ca-bundle.pem:ro" \
|
|
849
955
|
"$IMAGE_TAG" \
|
|
850
956
|
test \
|
|
851
957
|
--url "$SERVICE_URL/get" \
|
|
@@ -872,7 +978,7 @@ jobs:
|
|
|
872
978
|
steps:
|
|
873
979
|
# Harden the runner
|
|
874
980
|
- name: Harden Runner
|
|
875
|
-
uses: step-security/harden-runner@
|
|
981
|
+
uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
876
982
|
with:
|
|
877
983
|
egress-policy: audit
|
|
878
984
|
|
|
@@ -883,7 +989,7 @@ jobs:
|
|
|
883
989
|
|
|
884
990
|
# Setup Python with caching
|
|
885
991
|
- name: Set up Python
|
|
886
|
-
uses: actions/setup-python@
|
|
992
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
887
993
|
with:
|
|
888
994
|
# Do NOT use hard coded Python; extract from pyproject.toml
|
|
889
995
|
python-version-file: 'pyproject.toml'
|
|
@@ -905,7 +1011,7 @@ jobs:
|
|
|
905
1011
|
|
|
906
1012
|
# Install UV
|
|
907
1013
|
- name: Install UV
|
|
908
|
-
uses: astral-sh/setup-uv@
|
|
1014
|
+
uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
909
1015
|
|
|
910
1016
|
# Install project dependencies with dev extras (includes bandit)
|
|
911
1017
|
- name: Install project dependencies
|
|
@@ -51,7 +51,7 @@ jobs:
|
|
|
51
51
|
permissions:
|
|
52
52
|
actions: write # list and delete repository Actions caches
|
|
53
53
|
# yamllint disable-line rule:line-length
|
|
54
|
-
uses: lfreleng-actions/generic-workflows/.github/workflows/clear-action-cache.yaml@
|
|
54
|
+
uses: lfreleng-actions/generic-workflows/.github/workflows/clear-action-cache.yaml@04672a980550ff9bd89d24bacd39fb03e25b0b0b # v0.6.1
|
|
55
55
|
with:
|
|
56
56
|
key_pattern: ${{ inputs.key_pattern }}
|
|
57
57
|
ref_filter: ${{ inputs.ref_filter }}
|
|
@@ -28,7 +28,7 @@ jobs:
|
|
|
28
28
|
openssf-scorecard:
|
|
29
29
|
name: "OpenSSF Scorecard"
|
|
30
30
|
# yamllint disable-line rule:line-length
|
|
31
|
-
uses: lfreleng-actions/security-workflows/.github/workflows/openssf-scorecard.yaml@
|
|
31
|
+
uses: lfreleng-actions/security-workflows/.github/workflows/openssf-scorecard.yaml@378fcc19ebdf37f17fde4888d4b71c83b21d6cf3 # v0.9.7
|
|
32
32
|
# Scorecard uses no cache; deny writes under branch_protection_rule
|
|
33
33
|
cache-mode: read
|
|
34
34
|
permissions:
|
|
@@ -28,14 +28,14 @@ jobs:
|
|
|
28
28
|
# organisation's .github repository and publish it as
|
|
29
29
|
# $CONNECTION_ALLOW_LIST for the harden-runner step below.
|
|
30
30
|
# yamllint disable-line rule:line-length
|
|
31
|
-
- uses: lfreleng-actions/harden-runner-block-action@
|
|
31
|
+
- uses: lfreleng-actions/harden-runner-block-action@2fed66c9c36c4687c31ca349b925b81ec629673f # v0.15.0
|
|
32
32
|
with:
|
|
33
|
-
config: '@
|
|
33
|
+
config: '@6d4a65c5601afd6c2fbe52bda4b0024b132f265d' # v0.19.0
|
|
34
34
|
|
|
35
35
|
# Harden the runner with the just-loaded allow-list.
|
|
36
36
|
- name: 'Harden runner (block)'
|
|
37
37
|
# yamllint disable-line rule:line-length
|
|
38
|
-
uses: step-security/harden-runner@
|
|
38
|
+
uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
39
39
|
with:
|
|
40
40
|
egress-policy: 'block'
|
|
41
41
|
allowed-endpoints: >
|
|
@@ -34,24 +34,28 @@ jobs:
|
|
|
34
34
|
permissions:
|
|
35
35
|
contents: read # Reusable scan job checks out the repo
|
|
36
36
|
# yamllint disable-line rule:line-length
|
|
37
|
-
uses:
|
|
37
|
+
uses: lfreleng-actions/security-workflows/.github/workflows/sonatype-lifecycle.yaml@378fcc19ebdf37f17fde4888d4b71c83b21d6cf3 # v0.9.7
|
|
38
|
+
# Nexus IQ cannot read pyproject.toml or uv.lock, so have the lane
|
|
39
|
+
# resolve uv.lock and scan the downloaded artefacts. Python 3.11
|
|
40
|
+
# matches the python:3.11-slim image and the requires-python floor;
|
|
41
|
+
# pinning it stops a new Python release without wheels from breaking
|
|
42
|
+
# resolution.
|
|
43
|
+
with:
|
|
44
|
+
build_type: 'python'
|
|
45
|
+
python_version: '3.11'
|
|
38
46
|
# Neither scan writes a cache; deny writes under branch_protection_rule
|
|
39
47
|
cache-mode: read
|
|
40
48
|
secrets:
|
|
41
|
-
|
|
49
|
+
nexus_iq_password: ${{ secrets.NEXUS_IQ_PASSWORD }}
|
|
42
50
|
|
|
43
51
|
# Scan results are found at: https://sonarcloud.io/login
|
|
44
52
|
sonarqube-cloud:
|
|
45
53
|
name: "SonarQube Cloud"
|
|
46
54
|
# yamllint disable-line rule:line-length
|
|
47
|
-
uses:
|
|
55
|
+
uses: lfreleng-actions/security-workflows/.github/workflows/sonarqube-cloud.yaml@378fcc19ebdf37f17fde4888d4b71c83b21d6cf3 # v0.9.7
|
|
48
56
|
# Neither scan writes a cache; deny writes under branch_protection_rule
|
|
49
57
|
cache-mode: read
|
|
50
58
|
permissions:
|
|
51
59
|
contents: read # Reusable scan job checks out the repo
|
|
52
|
-
security-events: write # Upload results to the code-scanning dashboard
|
|
53
|
-
id-token: write # Publish results and obtain a badge via OIDC
|
|
54
|
-
# Uncomment the permission below if installing in a private repository.
|
|
55
|
-
# actions: read
|
|
56
60
|
secrets:
|
|
57
|
-
|
|
61
|
+
sonar_token: ${{ secrets.SONAR_TOKEN }}
|
|
@@ -73,7 +73,7 @@ repos:
|
|
|
73
73
|
args: [--config-file=.yamllint]
|
|
74
74
|
|
|
75
75
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
76
|
-
rev:
|
|
76
|
+
rev: 25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c # frozen: v0.17.3
|
|
77
77
|
hooks:
|
|
78
78
|
- id: ruff
|
|
79
79
|
files: ^(src|tests|scripts)/.+\.py$
|
|
@@ -82,7 +82,7 @@ repos:
|
|
|
82
82
|
files: ^(src|tests|scripts)/.+\.py$
|
|
83
83
|
|
|
84
84
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
85
|
-
rev:
|
|
85
|
+
rev: ad26ebfa797fcb9b8f83275937c1c1d6e126719c # frozen: v2.4.1
|
|
86
86
|
hooks:
|
|
87
87
|
- id: mypy
|
|
88
88
|
additional_dependencies: [types-pycurl]
|
|
@@ -112,7 +112,7 @@ repos:
|
|
|
112
112
|
args: ["--fix"]
|
|
113
113
|
|
|
114
114
|
- repo: https://github.com/fsfe/reuse-tool
|
|
115
|
-
rev:
|
|
115
|
+
rev: bffd9abdccdd86e7926c871a31564913547552c9 # frozen: v6.3.0
|
|
116
116
|
hooks:
|
|
117
117
|
- id: reuse
|
|
118
118
|
|
|
@@ -133,7 +133,7 @@ repos:
|
|
|
133
133
|
- id: basedpyright
|
|
134
134
|
|
|
135
135
|
- repo: https://github.com/lfreleng-actions/gha-workflow-linter
|
|
136
|
-
rev:
|
|
136
|
+
rev: 00aec232d3fd85436fff24dfeaad23921c5db1cb # frozen: v1.10.1
|
|
137
137
|
hooks:
|
|
138
138
|
- id: gha-workflow-linter
|
|
139
139
|
args: [lint, .]
|
|
@@ -149,7 +149,7 @@ repos:
|
|
|
149
149
|
always_run: true
|
|
150
150
|
|
|
151
151
|
- repo: https://github.com/python-jsonschema/check-jsonschema
|
|
152
|
-
rev:
|
|
152
|
+
rev: 39478bf2c099a58683d3f1aedf675105318b078d # frozen: 0.39.0
|
|
153
153
|
hooks:
|
|
154
154
|
- id: check-github-actions
|
|
155
155
|
- id: check-github-workflows
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: http-api-tool
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.5
|
|
4
4
|
Summary: A Python HTTP/HTTPS API testing tool for GitHub Actions and CLI usage
|
|
5
5
|
Project-URL: Homepage, https://github.com/lfreleng-actions/http-api-tool-docker
|
|
6
6
|
Project-URL: Repository, https://github.com/lfreleng-actions/http-api-tool-docker
|
|
@@ -33,7 +33,7 @@ Requires-Dist: requests>=2.32.4
|
|
|
33
33
|
Requires-Dist: typer>=0.9.0
|
|
34
34
|
Provides-Extra: dev
|
|
35
35
|
Requires-Dist: bandit>=1.8.0; extra == 'dev'
|
|
36
|
-
Requires-Dist: black>=
|
|
36
|
+
Requires-Dist: black>=26.10.1; extra == 'dev'
|
|
37
37
|
Requires-Dist: coverage[toml]>=7.9.1; extra == 'dev'
|
|
38
38
|
Requires-Dist: flake8>=7.0.0; extra == 'dev'
|
|
39
39
|
Requires-Dist: interrogate>=1.5.0; extra == 'dev'
|
|
@@ -510,7 +510,7 @@ HTTPS testing service:
|
|
|
510
510
|
```yaml
|
|
511
511
|
steps:
|
|
512
512
|
- name: Setup go-httpbin HTTPS service
|
|
513
|
-
uses: lfreleng-actions/go-httpbin-action@
|
|
513
|
+
uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
|
|
514
514
|
id: httpbin
|
|
515
515
|
with:
|
|
516
516
|
debug: 'true'
|
|
@@ -520,7 +520,7 @@ steps:
|
|
|
520
520
|
uses: lfreleng-actions/http-api-tool-docker@main
|
|
521
521
|
with:
|
|
522
522
|
url: 'https://localhost:8080/get'
|
|
523
|
-
ca_bundle_path: '
|
|
523
|
+
ca_bundle_path: '${{ steps.httpbin.outputs.ca-cert-path }}'
|
|
524
524
|
expected_http_code: '200'
|
|
525
525
|
```
|
|
526
526
|
|
|
@@ -458,7 +458,7 @@ HTTPS testing service:
|
|
|
458
458
|
```yaml
|
|
459
459
|
steps:
|
|
460
460
|
- name: Setup go-httpbin HTTPS service
|
|
461
|
-
uses: lfreleng-actions/go-httpbin-action@
|
|
461
|
+
uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
|
|
462
462
|
id: httpbin
|
|
463
463
|
with:
|
|
464
464
|
debug: 'true'
|
|
@@ -468,7 +468,7 @@ steps:
|
|
|
468
468
|
uses: lfreleng-actions/http-api-tool-docker@main
|
|
469
469
|
with:
|
|
470
470
|
url: 'https://localhost:8080/get'
|
|
471
|
-
ca_bundle_path: '
|
|
471
|
+
ca_bundle_path: '${{ steps.httpbin.outputs.ca-cert-path }}'
|
|
472
472
|
expected_http_code: '200'
|
|
473
473
|
```
|
|
474
474
|
|
|
@@ -166,10 +166,20 @@ runs:
|
|
|
166
166
|
# UVX deployment path (default)
|
|
167
167
|
- name: Install uv for uvx deployment
|
|
168
168
|
if: inputs.deploy == 'uvx'
|
|
169
|
-
|
|
169
|
+
# setup-uv runs the interpreter 'uv python find' returns for its
|
|
170
|
+
# working directory and reads uv settings (required-version,
|
|
171
|
+
# cache-dir) there; the default is the caller's workspace. Point it
|
|
172
|
+
# at this action's own files. The UV_* settings cover an action
|
|
173
|
+
# loaded from inside the workspace ('uses: ./').
|
|
174
|
+
uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
175
|
+
env:
|
|
176
|
+
UV_NO_CONFIG: "1"
|
|
177
|
+
UV_SYSTEM_PYTHON: "1"
|
|
178
|
+
UV_NO_PROJECT: "1"
|
|
170
179
|
with:
|
|
171
180
|
enable-cache: false
|
|
172
181
|
ignore-empty-workdir: true
|
|
182
|
+
working-directory: ${{ github.action_path }}
|
|
173
183
|
|
|
174
184
|
- name: Run http-api-tool via uvx
|
|
175
185
|
if: inputs.deploy == 'uvx'
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '1.1.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 1,
|
|
21
|
+
__version__ = version = '1.1.5'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 1, 5)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
version = 1
|
|
2
|
-
revision =
|
|
2
|
+
revision = 5
|
|
3
3
|
requires-python = ">=3.11"
|
|
4
4
|
|
|
5
5
|
[[package]]
|
|
@@ -28,7 +28,7 @@ wheels = [
|
|
|
28
28
|
|
|
29
29
|
[[package]]
|
|
30
30
|
name = "black"
|
|
31
|
-
version = "26.
|
|
31
|
+
version = "26.10.1"
|
|
32
32
|
source = { registry = "https://pypi.org/simple" }
|
|
33
33
|
dependencies = [
|
|
34
34
|
{ name = "click" },
|
|
@@ -38,29 +38,29 @@ dependencies = [
|
|
|
38
38
|
{ name = "platformdirs" },
|
|
39
39
|
{ name = "pytokens" },
|
|
40
40
|
]
|
|
41
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
42
|
-
wheels = [
|
|
43
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
44
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
45
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
46
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
47
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
48
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
49
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
50
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
51
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
52
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
53
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
54
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
55
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
56
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
57
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
58
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
59
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
60
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
61
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
62
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
63
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
41
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f8/65/a9611a6ec0a8c88d86e59385da02d68d9533f7e86a05913d20c67be54029/black-26.10.1.tar.gz", hash = "sha256:5f9f83beae62437e060dafd53d7f1fc327e3d3494f74d72ee5c2b73eb90fc4e7", size = 741979, upload-time = "2026-10-10T04:13:40.776Z" }
|
|
42
|
+
wheels = [
|
|
43
|
+
{ url = "https://files.pythonhosted.org/packages/6f/1e/c1d4f71299d45f4ff54c9c42ef9214d6b228223f196bc1bb2ee196aeaeee/black-26.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9a0219b29cd70e49f920acb7081e6ce5025c719008447c521d0200dcad93206a", size = 2121821, upload-time = "2026-10-10T04:18:36.793Z" },
|
|
44
|
+
{ url = "https://files.pythonhosted.org/packages/7f/e2/43944049c0945199bbd5c8b291b85306bfd0eeccbc908bf65538a69ff1b0/black-26.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7bdade400bfe24d78a7762896acc2f9a8e1a17fb0fd0536bf6b7c7097cf3eec7", size = 1961908, upload-time = "2026-10-10T04:18:38.942Z" },
|
|
45
|
+
{ url = "https://files.pythonhosted.org/packages/d5/e9/9616d58f69f0e4bfa89ebe8686b6ef50f4b4f0f91237ae4c76f34dabf8aa/black-26.10.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ff57f63029aa1353fa8b1b0c8971fd88a6c92dc766608d2eee33ad2deb23270e", size = 2019042, upload-time = "2026-10-10T04:18:40.612Z" },
|
|
46
|
+
{ url = "https://files.pythonhosted.org/packages/c5/de/0415cce69e2402a5c186cdb5462a0edd3fa44d69d1a1630e68e58daaa6a4/black-26.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:3414a0c52901964dceabd98c7c56beac0f964115a116ecedcce7247359b14017", size = 1608383, upload-time = "2026-10-10T04:18:42.25Z" },
|
|
47
|
+
{ url = "https://files.pythonhosted.org/packages/a9/61/af18e716432e932f166ce9dfa419ce3f05fd5ef8c52c0510d27ae41aaa51/black-26.10.1-cp311-cp311-win_arm64.whl", hash = "sha256:1935b32f5326028019856e18cb42b4da63db23765dc84464cec723e0de478a9b", size = 1466048, upload-time = "2026-10-10T04:18:44.271Z" },
|
|
48
|
+
{ url = "https://files.pythonhosted.org/packages/f7/ca/357ccdd12e8f8429539f8f52edc153de58acba84f6670ac36c254a276691/black-26.10.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fe85fc4019bee59bc495c0f2a8ee76c5cd02c7015508d94a967ba2376f39a52c", size = 2167369, upload-time = "2026-10-10T04:18:45.948Z" },
|
|
49
|
+
{ url = "https://files.pythonhosted.org/packages/a5/a2/4709110a7ca326ba7b4f81a669fbebc20653c79a972b0f8de4ba5b5c5e68/black-26.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:182f6c32be38074b16d378498c498b32cb51928178ee611485344972c35ec9c6", size = 1990732, upload-time = "2026-10-10T04:18:48.252Z" },
|
|
50
|
+
{ url = "https://files.pythonhosted.org/packages/1e/96/9f8fa839c169d19c38ce6582d9449f2d7d70dabd313ac28f15a930260c1f/black-26.10.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b5347d760f0c02bb00dd249384cab71c3bf828b4f68d5b401eb116e0390f147d", size = 2065235, upload-time = "2026-10-10T04:18:50.064Z" },
|
|
51
|
+
{ url = "https://files.pythonhosted.org/packages/2b/ee/929eaf7de6f05a3141d6df72acf9248118f49a5e48f9375be3180e9babf7/black-26.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:4d9a90516db1d99c25dbb20cc0998e0e01531dd903466c7744e56d66f864220a", size = 1621579, upload-time = "2026-10-10T04:18:51.59Z" },
|
|
52
|
+
{ url = "https://files.pythonhosted.org/packages/90/3a/8b6a44abf9648b087311003b91298226c1763172cd8d223ece5b7cf8f795/black-26.10.1-cp312-cp312-win_arm64.whl", hash = "sha256:2ffbc023a12d0c729408823b8f10514490bd0baa301d0d4e21a7240249f9507f", size = 1469662, upload-time = "2026-10-10T04:18:53.245Z" },
|
|
53
|
+
{ url = "https://files.pythonhosted.org/packages/99/6b/bc0d39990bd7a71457d669639fa06acf6191bec28bafe8b8103f597cce76/black-26.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b6272cfd7e1e8e271f5b0e0207259fe2834687e5cb9b5f620b34a44db9754993", size = 2153812, upload-time = "2026-10-10T04:18:55.041Z" },
|
|
54
|
+
{ url = "https://files.pythonhosted.org/packages/85/0e/cc83b88a6b1a51fc051aa4e24663918f0bf4fa9fca98552ee93a125a6780/black-26.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:978113a40223a6aaefc17364176a809a320e6b288683841427fff04c6d7b4130", size = 1980352, upload-time = "2026-10-10T04:18:56.849Z" },
|
|
55
|
+
{ url = "https://files.pythonhosted.org/packages/7b/0f/4dd24ea0ebadbe05e293c3ea7fbebd4389f50508f714640c9b309a0849d2/black-26.10.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03c0ddd93bb392e71209903a691767eb366fe1a76deb9509ccbaae9e1f14bb52", size = 2055268, upload-time = "2026-10-10T04:18:58.974Z" },
|
|
56
|
+
{ url = "https://files.pythonhosted.org/packages/a2/06/221f8e81891ecf5e4df9c258a11037997f1f218533ffe4fa1dc4db37f19c/black-26.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6dba8138cdc99061ef07b958ac082d2aa057b6961d1936f9717c350f02bab5f", size = 1625938, upload-time = "2026-10-10T04:19:00.65Z" },
|
|
57
|
+
{ url = "https://files.pythonhosted.org/packages/2b/3b/763d2dd073fc1e2cbf0fe5e584fe96913bf0d14cd725d1116f4b38453adf/black-26.10.1-cp313-cp313-win_arm64.whl", hash = "sha256:d42dd2fac7c342ae67e64ee99c9532e20b2a84e92c79ed3317fa2ef54c801d93", size = 1470752, upload-time = "2026-10-10T04:19:03.009Z" },
|
|
58
|
+
{ url = "https://files.pythonhosted.org/packages/76/7b/e8d275b23f3023881c0b0d8ce3bbda0d100c79bdef87fb6518bf9e0c5040/black-26.10.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:8375962579d537364cc0efa19b1474481915d3a793f9fc0774901814c5e5b5f4", size = 2147731, upload-time = "2026-10-10T04:19:04.643Z" },
|
|
59
|
+
{ url = "https://files.pythonhosted.org/packages/ee/62/e44f86ee5fc7b893ee0ee935a79c785932da7758d2c339749d90a20ef213/black-26.10.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d8b3a9074a680b3c5749633714e9ae3992a1e5a23343a97ad61cd9b119b444d2", size = 1981714, upload-time = "2026-10-10T04:19:06.287Z" },
|
|
60
|
+
{ url = "https://files.pythonhosted.org/packages/89/2f/e12ca76edfcd037fe9e7e7635d9468d1d51255cf25a01b2f8f97a38f147d/black-26.10.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:289282aa2e09d3162312a3be1788ff21b08e9ea9cc4a81e656024728b32428fb", size = 2047807, upload-time = "2026-10-10T04:19:08.193Z" },
|
|
61
|
+
{ url = "https://files.pythonhosted.org/packages/c3/af/676d3c5cbb2ab0f17c8459b3ae8ea15ebdcc5a2f1c1c586228ec85b8897f/black-26.10.1-cp314-cp314-win_amd64.whl", hash = "sha256:5cd88fd7b444ca51f3fc883b6f6657ea53a258b0b2eef6d9f2dfcfa17ce0e27b", size = 1652537, upload-time = "2026-10-10T04:19:09.817Z" },
|
|
62
|
+
{ url = "https://files.pythonhosted.org/packages/ad/7b/860022d369fdd5fe14280b1e7109f58753c371ff91ce2311d68a056e488a/black-26.10.1-cp314-cp314-win_arm64.whl", hash = "sha256:2520037aa62f8a1454d0811b8f5c88b444445b03a4bfba480d8d220893b64c34", size = 1504226, upload-time = "2026-10-10T04:19:11.367Z" },
|
|
63
|
+
{ url = "https://files.pythonhosted.org/packages/b1/28/9dd29175c1db777e6189e2a0bb5f37101adf19c3e509b236c8920f778d0b/black-26.10.1-py3-none-any.whl", hash = "sha256:28842f9a8207cc1df6eb983a35a14c5a0dfcd603d214fe82d84bef552afd2e3a", size = 239267, upload-time = "2026-10-10T04:13:38.808Z" },
|
|
64
64
|
]
|
|
65
65
|
|
|
66
66
|
[[package]]
|
|
@@ -333,7 +333,7 @@ test = [
|
|
|
333
333
|
[package.metadata]
|
|
334
334
|
requires-dist = [
|
|
335
335
|
{ name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8.0" },
|
|
336
|
-
{ name = "black", marker = "extra == 'dev'", specifier = ">=
|
|
336
|
+
{ name = "black", marker = "extra == 'dev'", specifier = ">=26.10.1" },
|
|
337
337
|
{ name = "certifi", specifier = ">=2025.6.15" },
|
|
338
338
|
{ name = "coverage", extras = ["toml"], marker = "extra == 'dev'", specifier = ">=7.9.1" },
|
|
339
339
|
{ name = "coverage", extras = ["toml"], marker = "extra == 'test'", specifier = ">=7.9.1" },
|
|
@@ -564,40 +564,52 @@ wheels = [
|
|
|
564
564
|
|
|
565
565
|
[[package]]
|
|
566
566
|
name = "pycurl"
|
|
567
|
-
version = "7.
|
|
568
|
-
source = { registry = "https://pypi.org/simple" }
|
|
569
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
570
|
-
wheels = [
|
|
571
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
572
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
573
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
574
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
575
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
576
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
577
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
578
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
579
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
580
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
581
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
582
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
583
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
584
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
585
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
586
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
587
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
588
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
589
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
590
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
591
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
592
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
593
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
594
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
595
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
596
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
597
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
598
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
599
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
600
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
567
|
+
version = "7.49.0"
|
|
568
|
+
source = { registry = "https://pypi.org/simple" }
|
|
569
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a6/b3/93b9b8b4ed45f4700b3f9fc40b5daf189e0badd71d0839a6ad09cefa2245/pycurl-7.49.0.tar.gz", hash = "sha256:d4327da9dea72768f942f831bbaa5a64adca4d7c89f3141da7a833d3c600ab90", size = 305853, upload-time = "2026-10-27T01:33:40.575Z" }
|
|
570
|
+
wheels = [
|
|
571
|
+
{ url = "https://files.pythonhosted.org/packages/66/e0/600818069cb8239c49d9d1614698425e0582fcb0b4db3b1aa7bccd38c13f/pycurl-7.49.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b19c8abb40d8d1d958b5ac134af33869043782c24b8868f48883ee34e3f5db61", size = 4886223, upload-time = "2026-10-27T01:32:18.094Z" },
|
|
572
|
+
{ url = "https://files.pythonhosted.org/packages/20/95/a02a2cacc684c4a1b87eb6e133c72b53389709b85db4811bfdfbf3eae8a0/pycurl-7.49.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a42e64f197ac3e95cc64a06a23a1a01ac55a22c8a7e94c9d93e9fe7d0c09d31", size = 4885301, upload-time = "2026-10-27T01:32:19.916Z" },
|
|
573
|
+
{ url = "https://files.pythonhosted.org/packages/e7/d0/fdf5cdf76196c7281c01754359e46a914a7b028bf6db8c5eb6a03eb1b339/pycurl-7.49.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:b1cd6cea1618ec2a6bbe4e430b34dcc83c5bfb5373a25809fb77e4ec451990ad", size = 6644187, upload-time = "2026-10-27T01:32:21.519Z" },
|
|
574
|
+
{ url = "https://files.pythonhosted.org/packages/fa/08/93271635259c240f6e3113b67c18af8c60219dfd95030fca38cd0460b9ea/pycurl-7.49.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:6f88539845d3bb2cf2ce0ccbc1bb8b9ed9e401a0d874798aeabc5f16f0f95c4d", size = 6341272, upload-time = "2026-10-27T01:32:23.339Z" },
|
|
575
|
+
{ url = "https://files.pythonhosted.org/packages/44/1f/90eb2272db38e7766dcb70440aa3a1eaeebdc8d03ab63bc1b22ef8791db3/pycurl-7.49.0-cp311-cp311-win_amd64.whl", hash = "sha256:ee47cf03a9d3ad8f309c7a34dc6236c48d81257b91b164f9a8fb2363464a5ffa", size = 17183152, upload-time = "2026-10-27T01:32:25.021Z" },
|
|
576
|
+
{ url = "https://files.pythonhosted.org/packages/ab/9f/e42b621c21fa8417a827a3e93997d5b5a867fa7f7f4e3e93c2b34956bd91/pycurl-7.49.0-cp311-cp311-win_arm64.whl", hash = "sha256:ccd92ed511675c52227c8e66c12d6f46cfae226960d563d116fd92e3038c5444", size = 17565623, upload-time = "2026-10-27T01:32:27.433Z" },
|
|
577
|
+
{ url = "https://files.pythonhosted.org/packages/35/55/dba0d0cb19849c5bb26442d484b435338342488ba4eb820a751fdc56ea8d/pycurl-7.49.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:575d6d5d6e0c00577f81dfcbd696c27d824130abae2be9be167a4bfbdfc86c61", size = 4886569, upload-time = "2026-10-27T01:32:29.633Z" },
|
|
578
|
+
{ url = "https://files.pythonhosted.org/packages/9c/1e/abcd6fd0afece28ef254bf27e7b5aa4437e53646f4a6c14c8863fe199364/pycurl-7.49.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2769aa99dac37856dba3c432eccd0585e1fa98735cb64b0c52f5ed552120a0d9", size = 4886220, upload-time = "2026-10-27T01:32:31.466Z" },
|
|
579
|
+
{ url = "https://files.pythonhosted.org/packages/c7/dc/a2979dfb915916a4962c11d83a59d9a8f7b4d673e574f0d2a7da70fca321/pycurl-7.49.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:8aa63c7f2d8451681d7f709a097d3df14ce335aa8a1321499d9cd2c7e35a4a18", size = 6660885, upload-time = "2026-10-27T01:32:33.112Z" },
|
|
580
|
+
{ url = "https://files.pythonhosted.org/packages/48/9b/dfc22a122d75ea45925aaa0a8fc1d0b56fec7198aad2992433bb392911cb/pycurl-7.49.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b02ca356fb9aaced336a2b5ecd74f5eb1896442ddbfb47250e5cddb2b8578fab", size = 6358937, upload-time = "2026-10-27T01:32:35.125Z" },
|
|
581
|
+
{ url = "https://files.pythonhosted.org/packages/59/ff/0db0354d99e5ba4a3c2d6f182ab34ba55d829f4abf455046cdf7176b7a51/pycurl-7.49.0-cp312-cp312-win_amd64.whl", hash = "sha256:e4062a52f378a2f0e6c0da4571fa0a676dd59681869d5645354caf56bba1c906", size = 17185579, upload-time = "2026-10-27T01:32:36.866Z" },
|
|
582
|
+
{ url = "https://files.pythonhosted.org/packages/9a/c5/7f30b0363b6cd574365b97a34ab32356a9579e03c96de1918de15ff38a06/pycurl-7.49.0-cp312-cp312-win_arm64.whl", hash = "sha256:5b8247cc5f76ce37ced12ec5f25d11f6e4b5d87795dc5b4891b48aac70a7c2ff", size = 17565565, upload-time = "2026-10-27T01:32:39.211Z" },
|
|
583
|
+
{ url = "https://files.pythonhosted.org/packages/58/2b/48572ccdc1a51c3628a98ab4db4a96aedd5b350bf123d10d03a75d7359a1/pycurl-7.49.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1787fee6107fbe6771ff0e3f73b2878ea92711a844a91c2ef3831d5d6f40c613", size = 4886531, upload-time = "2026-10-27T01:32:41.6Z" },
|
|
584
|
+
{ url = "https://files.pythonhosted.org/packages/8f/89/0ac7d0d6500924439ea98ebe5d482b3f312a6379de12259cb34d8cba3ca4/pycurl-7.49.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:21a197fcdc12c282136ad5879cf8566178d5228d84641f90f120bc988008239d", size = 4886076, upload-time = "2026-10-27T01:32:43.547Z" },
|
|
585
|
+
{ url = "https://files.pythonhosted.org/packages/26/0a/2459ca3053d013691eb0afa051f22c1e567381bf1ae17254a539aa31f749/pycurl-7.49.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:2778868eec4353ded220bb1e0c3b9e63fa903e94ede3861cfc66ac386b55eabb", size = 6666830, upload-time = "2026-10-27T01:32:45.345Z" },
|
|
586
|
+
{ url = "https://files.pythonhosted.org/packages/fd/81/a6acd0b7bd56868ca1851b6cdcd015231170f74ece8a3ddd6fc6fef534fb/pycurl-7.49.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:0553733d9654a6faf6c672320d68576b07e407b2104c5e7b5569346fcfafa6f3", size = 6364307, upload-time = "2026-10-27T01:32:47.115Z" },
|
|
587
|
+
{ url = "https://files.pythonhosted.org/packages/b7/32/89f24ea0e7839c52ecba6b2b667af31c05b38d4c9bd267669fa624b707c4/pycurl-7.49.0-cp313-cp313-win_amd64.whl", hash = "sha256:a57eac115ebec7cc0130f3921896e04569653b3b6ca10293c05e21f50a3de997", size = 17185421, upload-time = "2026-10-27T01:32:48.904Z" },
|
|
588
|
+
{ url = "https://files.pythonhosted.org/packages/e3/95/93351de992438992ef50e90b89ea8bfa50e9b11c305534236a8ab3789fa8/pycurl-7.49.0-cp313-cp313-win_arm64.whl", hash = "sha256:f1008cc6b1f0339284b80caeb61dca221f926817dd6f461b4e762b89c66ca3fd", size = 17565607, upload-time = "2026-10-27T01:32:51.142Z" },
|
|
589
|
+
{ url = "https://files.pythonhosted.org/packages/d3/20/d14e1353015393727ce240e3d5680b804c734a2717376e5889d329c17c1b/pycurl-7.49.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c640b751f6b48fe9ea9c23bb201c55aa6d6b528032cdb024d655e6a9297e249e", size = 4885908, upload-time = "2026-10-27T01:32:53.313Z" },
|
|
590
|
+
{ url = "https://files.pythonhosted.org/packages/44/25/f3370a25176fa917368dd7aeda00750c3bcb49b816510173134b9be3fc02/pycurl-7.49.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cd7087d96cb16d1c36b6fd3986c731d13ee2666c642b10e0f90822a96d106421", size = 4885724, upload-time = "2026-10-27T01:32:54.808Z" },
|
|
591
|
+
{ url = "https://files.pythonhosted.org/packages/f2/9e/b58eb8f788d5eab2b9dc359a815b5077f2d89fe029e2bcd5a8ddd9ab7a75/pycurl-7.49.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:53c2e43d3ac91a51faebb6e0eba6aebd376a01d57202e6713f7e99954b3b29ab", size = 6666228, upload-time = "2026-10-27T01:32:56.437Z" },
|
|
592
|
+
{ url = "https://files.pythonhosted.org/packages/66/56/6adf005759ee0a5ed4b74e3c54210693e321ae23be80968c78e4fe7a76cd/pycurl-7.49.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:113708c9619af2d07daa43c179538f87458a0298797553da1bae2c18ce5d944d", size = 6361723, upload-time = "2026-10-27T01:32:58.226Z" },
|
|
593
|
+
{ url = "https://files.pythonhosted.org/packages/e7/bd/3fe3d4c0cb0a641f993a24878b547a6f696ddf57934a382c511747cbcfe9/pycurl-7.49.0-cp314-cp314-win_amd64.whl", hash = "sha256:023228cf243176c4cc00664335be4169bd4fb366d5f012e4e5e2d7fb85b65c0b", size = 17926093, upload-time = "2026-10-27T01:33:00.327Z" },
|
|
594
|
+
{ url = "https://files.pythonhosted.org/packages/c8/7f/5482806ad301401473876e7f438439631c6e0d1b35989f5d427eaa040379/pycurl-7.49.0-cp314-cp314-win_arm64.whl", hash = "sha256:d08c0a1b858564a5b72c66e791d1ab1a37d62863967a5fc82150ad14f7cfc05c", size = 18324014, upload-time = "2026-10-27T01:33:02.679Z" },
|
|
595
|
+
{ url = "https://files.pythonhosted.org/packages/c3/43/5d6258259269de97c0d81e4e5ddef98031e53a2f6ce04e5867ec43c710be/pycurl-7.49.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:e09605c621680151da64c9da0a1a9b78fb24111c4ebaa0e2ab7ca18b6676d997", size = 4890190, upload-time = "2026-10-27T01:33:04.983Z" },
|
|
596
|
+
{ url = "https://files.pythonhosted.org/packages/04/a0/b8d2f5fdb7b5d81e78147ceb5fdbaf767083bc9f024fbe2198ec307493bd/pycurl-7.49.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f19b1153d68da7988b44fcc15826c9acac848a144070fff00d9c1b04d9820d06", size = 4889026, upload-time = "2026-10-27T01:33:06.587Z" },
|
|
597
|
+
{ url = "https://files.pythonhosted.org/packages/14/33/35856c19741804313e59e5e60558a42663ef66059cbf88201ebd21f7c255/pycurl-7.49.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:61caaf8edf39fbc01d8c4326aeeab809e3b50d82cdc0d61c9481a87568631b69", size = 6761451, upload-time = "2026-10-27T01:33:08.395Z" },
|
|
598
|
+
{ url = "https://files.pythonhosted.org/packages/a6/51/0e0eb77435e535d0914aa2519972ef8ac3e82e5c8279677618d9b72fa123/pycurl-7.49.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:ef0192aefe5b71a2f35ba69aee640634c1b9610ab5117790b2558edffc6caf4a", size = 6447791, upload-time = "2026-10-27T01:33:10.11Z" },
|
|
599
|
+
{ url = "https://files.pythonhosted.org/packages/1b/a2/b17626fe68376492f94a7007159e201ca6cca8907544342f8e02b58e28e3/pycurl-7.49.0-cp314-cp314t-win_amd64.whl", hash = "sha256:571d8874dc7037c5d270346c7a1a7825f18354b4b2ab75646459e166fa63c319", size = 17931082, upload-time = "2026-10-27T01:33:12.052Z" },
|
|
600
|
+
{ url = "https://files.pythonhosted.org/packages/75/dd/d1c94008d97116e8fd1f5e06fc3e26d1f87de608d0c2d4c4bcb5a506802a/pycurl-7.49.0-cp314-cp314t-win_arm64.whl", hash = "sha256:b0f413a826f11e5ebb05225108da1a40f2f60cdcf1e8450a188127c5e7963d7c", size = 18325405, upload-time = "2026-10-27T01:33:14.48Z" },
|
|
601
|
+
{ url = "https://files.pythonhosted.org/packages/80/45/170a5eff99bf3a9c0ec69c3c15272d44d31709911cefeb32e22f7a865113/pycurl-7.49.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:873a441bee695ce280aa11f4e2220389d6395c70e2728d585a998b648e4a0345", size = 4886090, upload-time = "2026-10-27T01:33:16.651Z" },
|
|
602
|
+
{ url = "https://files.pythonhosted.org/packages/2b/ac/2711c69beea1754012cb34319538e7206f1a9faa295c97269efd920b5528/pycurl-7.49.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:4c2c6059651ef9859a350877001c2155810def14fcca1e7ad88f6e845251e930", size = 4885757, upload-time = "2026-10-27T01:33:18.236Z" },
|
|
603
|
+
{ url = "https://files.pythonhosted.org/packages/87/5b/742bf83897c70ffa4e62970db9dd23681bf3262a1f9159915a9cab88ceb0/pycurl-7.49.0-cp315-cp315-manylinux_2_28_aarch64.whl", hash = "sha256:10be3ff2c57d792a00a5bc2d900a2153823516a5acb5463775d64aa586eca8d3", size = 6669551, upload-time = "2026-10-27T01:33:20.056Z" },
|
|
604
|
+
{ url = "https://files.pythonhosted.org/packages/2e/24/dec569f9f9c43cad4fb72d7c5b6d9c3067670700804d6742d783b010550e/pycurl-7.49.0-cp315-cp315-manylinux_2_28_x86_64.whl", hash = "sha256:684747cca0e1a8d045c4a3b9a4db3e604bedfbc932955377a58998491c7d29e8", size = 6366030, upload-time = "2026-10-27T01:33:21.995Z" },
|
|
605
|
+
{ url = "https://files.pythonhosted.org/packages/70/9f/bed5494ff7233d83c129b7bb67659befa825cdc1fe5df6f7ffbcdf8d3eda/pycurl-7.49.0-cp315-cp315-win_amd64.whl", hash = "sha256:a34a5a4885fc244f6976738f8ad2235b9eb526b0886fa5ce1ad926540f90545e", size = 17926221, upload-time = "2026-10-27T01:33:24.053Z" },
|
|
606
|
+
{ url = "https://files.pythonhosted.org/packages/60/1a/ed817f328a6a74854558f65b7ffafcc622fd51a73c63cd2814dc09ae308b/pycurl-7.49.0-cp315-cp315-win_arm64.whl", hash = "sha256:b485321ca8de7d3ddd24aad1746beaf22c6b1d5d7dfea95ca9390b8f6f940fc8", size = 18324099, upload-time = "2026-10-27T01:33:26.314Z" },
|
|
607
|
+
{ url = "https://files.pythonhosted.org/packages/ae/6f/ba651870fe58bca24828ee69671c32f860018c4b2951b29817d6c5915aed/pycurl-7.49.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:b6f0fc0c6317fe74da605088435161b1e6756c07aa51c2a02b819e399d3b19bc", size = 4889811, upload-time = "2026-10-27T01:33:29.052Z" },
|
|
608
|
+
{ url = "https://files.pythonhosted.org/packages/4a/85/3eb7fab97ea6c866dc7e8e372ecdfe441f6e9be06daf7dbca233901d8396/pycurl-7.49.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:88561246362aa35e3e99c70d0fd6d46379e89e7d2efe3caaab2ecf0fee261a47", size = 4888901, upload-time = "2026-10-27T01:33:31.194Z" },
|
|
609
|
+
{ url = "https://files.pythonhosted.org/packages/fd/28/81253c27f1a40c1ac40fdfb5e663d101c5dd24b05d53e2d6e99876448c3c/pycurl-7.49.0-cp315-cp315t-manylinux_2_28_aarch64.whl", hash = "sha256:fa556d6ad832b5bb879517b751b29e3dcfc75f5771971be3106c0e116987aa5b", size = 6759934, upload-time = "2026-10-27T01:33:32.929Z" },
|
|
610
|
+
{ url = "https://files.pythonhosted.org/packages/5f/ea/0162f5c7c8ddb6b3037bc1fe94031118ff559bfac6a1f35c1435c3d29b14/pycurl-7.49.0-cp315-cp315t-manylinux_2_28_x86_64.whl", hash = "sha256:d6c9ecda1bdeca76649d8230d5b187dba781122222d3eda83f7d3214144c9483", size = 6446834, upload-time = "2026-10-27T01:33:34.66Z" },
|
|
611
|
+
{ url = "https://files.pythonhosted.org/packages/93/f3/13839976a78c8897d29bfdf94b5fb8816ffdcde223a7c00a4455c0ece3ae/pycurl-7.49.0-cp315-cp315t-win_amd64.whl", hash = "sha256:938cecd67c7f30a0a650fcc9de00af77a41a44cdbf851ad6088624bf6b0f0e6b", size = 17930842, upload-time = "2026-10-27T01:33:36.401Z" },
|
|
612
|
+
{ url = "https://files.pythonhosted.org/packages/c0/dc/40d852dad9db1ea0b549bad7e5690917ddaeb6ce1a609bb5c767746b3ed0/pycurl-7.49.0-cp315-cp315t-win_arm64.whl", hash = "sha256:1371e217a7e4d86ff6efedd576b5267b42143a9964df91dba3fe7d31a68aa18a", size = 18325342, upload-time = "2026-10-27T01:33:38.641Z" },
|
|
601
613
|
]
|
|
602
614
|
|
|
603
615
|
[[package]]
|
|
@@ -902,7 +914,7 @@ wheels = [
|
|
|
902
914
|
|
|
903
915
|
[[package]]
|
|
904
916
|
name = "virtualenv"
|
|
905
|
-
version = "21.
|
|
917
|
+
version = "21.15.1"
|
|
906
918
|
source = { registry = "https://pypi.org/simple" }
|
|
907
919
|
dependencies = [
|
|
908
920
|
{ name = "distlib" },
|
|
@@ -911,7 +923,7 @@ dependencies = [
|
|
|
911
923
|
{ name = "platformdirs" },
|
|
912
924
|
{ name = "python-discovery" },
|
|
913
925
|
]
|
|
914
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
926
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b2/24/20282bc8e69ff8dee680dc2b95e9dc81fa7e7894b14c1a8d06330e97fef7/virtualenv-21.15.1.tar.gz", hash = "sha256:e79c90b8f601701599c25905e02839924fede2c798d52325670d24fbdaab74ee", size = 5517048, upload-time = "2026-10-28T01:12:50.919Z" }
|
|
915
927
|
wheels = [
|
|
916
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
928
|
+
{ url = "https://files.pythonhosted.org/packages/ce/23/cdab19d3a9da42ca0938081e163e25f81e610141800ead743ba1ee881f0e/virtualenv-21.15.1-py3-none-any.whl", hash = "sha256:0d14a991689c67600316880eadc0a37b7690cb632e3b4ac67e2bc05b2b2e24a4", size = 5558848, upload-time = "2026-10-28T01:12:48.605Z" },
|
|
917
929
|
]
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
# SPDX-FileCopyrightText: 2025 The Linux Foundation
|
|
4
|
-
|
|
5
|
-
name: 'CodeQL'
|
|
6
|
-
# Must be called codeql.yml NOT codeql.yaml or GitHub will ignore it
|
|
7
|
-
|
|
8
|
-
on:
|
|
9
|
-
workflow_dispatch:
|
|
10
|
-
push:
|
|
11
|
-
branches: ['main', 'master']
|
|
12
|
-
paths:
|
|
13
|
-
- '!.github/**'
|
|
14
|
-
- '!.docs/**'
|
|
15
|
-
schedule:
|
|
16
|
-
- cron: '40 4 * * 0'
|
|
17
|
-
|
|
18
|
-
permissions: {}
|
|
19
|
-
|
|
20
|
-
concurrency:
|
|
21
|
-
group: ${{ github.workflow }}
|
|
22
|
-
cancel-in-progress: true
|
|
23
|
-
|
|
24
|
-
jobs:
|
|
25
|
-
codeql:
|
|
26
|
-
name: 'CodeQL'
|
|
27
|
-
permissions:
|
|
28
|
-
contents: read # checkout
|
|
29
|
-
security-events: write # upload results to code scanning
|
|
30
|
-
packages: read # fetch internal or private CodeQL packs
|
|
31
|
-
actions: read # the upload reads run info on private repositories
|
|
32
|
-
# yamllint disable-line rule:line-length
|
|
33
|
-
uses: lfreleng-actions/security-workflows/.github/workflows/codeql.yaml@ef6c0d9930feedb274067703b50eeebe5ab859b3 # v0.9.5
|
|
34
|
-
with:
|
|
35
|
-
languages: 'python,actions'
|
|
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
|