http-api-tool 1.1.2__tar.gz → 1.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.github/workflows/build-test-release.yaml +25 -25
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.github/workflows/build-test.yaml +30 -30
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.github/workflows/clear-action-cache.yaml +1 -1
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.github/workflows/codeql.yml +10 -8
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.github/workflows/openssf-scorecard.yaml +7 -7
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.github/workflows/release-drafter.yaml +4 -4
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.github/workflows/security-scans.yaml +2 -2
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.pre-commit-config.yaml +3 -3
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/PKG-INFO +6 -7
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/README.md +3 -3
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/action.yaml +1 -1
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/pyproject.toml +4 -5
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/src/http_api_tool/_version.py +2 -2
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/uv.lock +93 -158
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.actrc +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.aislop/config.yml +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.codespell +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.dockerignore +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.editorconfig +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.github/actionlint.yaml +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.github/cache-config.yaml +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.github/dependabot.yml +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.gitignore +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.gitlint +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.readthedocs.yml +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/.yamllint +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/AGENTS.md +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/CHANGELOG-v0.2.0.md +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/LICENSE +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/LICENSES/Apache-2.0.txt +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/REUSE.toml +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/SECURITY.md +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/UV-QUICK-REFERENCE.md +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/docker/Containerfile +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/scripts/check-pip-security.py +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/scripts/generate_requirements.py +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/sonar-project.properties +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/src/http_api_tool/__init__.py +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/src/http_api_tool/__main__.py +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/src/http_api_tool/cli.py +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/src/http_api_tool/curl_client.py +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/src/http_api_tool/reporting.py +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/src/http_api_tool/sanitize.py +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/src/http_api_tool/validation.py +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/src/http_api_tool/verifier.py +0 -0
- {http_api_tool-1.1.2 → http_api_tool-1.1.4}/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
|
|
|
@@ -45,7 +45,7 @@ jobs:
|
|
|
45
45
|
- name: "Gather repository metadata"
|
|
46
46
|
id: repo-metadata
|
|
47
47
|
# yamllint disable-line rule:line-length
|
|
48
|
-
uses: lfreleng-actions/repository-metadata-action@
|
|
48
|
+
uses: lfreleng-actions/repository-metadata-action@2206d754f65f1a90f57b49be546712c5f594def2 # v0.3.3
|
|
49
49
|
with:
|
|
50
50
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
51
51
|
github_summary: 'true'
|
|
@@ -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
|
|
|
@@ -144,7 +144,7 @@ jobs:
|
|
|
144
144
|
- name: 'Build Python project'
|
|
145
145
|
id: 'python-build'
|
|
146
146
|
# yamllint disable-line rule:line-length
|
|
147
|
-
uses: lfreleng-actions/python-build-action@
|
|
147
|
+
uses: lfreleng-actions/python-build-action@3cdb6f8e3b9c6c8fb21cce123f7b873b3620273d # v2.1.1
|
|
148
148
|
with:
|
|
149
149
|
sigstore_sign: true
|
|
150
150
|
attestations: true
|
|
@@ -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
|
|
|
@@ -174,7 +174,7 @@ jobs:
|
|
|
174
174
|
|
|
175
175
|
- name: 'Test Python project [PYTEST]'
|
|
176
176
|
# yamllint disable-line rule:line-length
|
|
177
|
-
uses: lfreleng-actions/python-test-action@
|
|
177
|
+
uses: lfreleng-actions/python-test-action@0c2fe7546faea2321e003c1c3b26a9156a7bc432 # v1.3.1
|
|
178
178
|
with:
|
|
179
179
|
python_version: "${{ matrix.python-version }}"
|
|
180
180
|
|
|
@@ -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
|
|
|
@@ -203,7 +203,7 @@ jobs:
|
|
|
203
203
|
|
|
204
204
|
- name: 'Audit Python project'
|
|
205
205
|
# yamllint disable-line rule:line-length
|
|
206
|
-
uses: lfreleng-actions/python-audit-action@
|
|
206
|
+
uses: lfreleng-actions/python-audit-action@47af793a2a28882b10ceb9109646cbbcecc2e7b0 # v0.6.1
|
|
207
207
|
with:
|
|
208
208
|
python_version: "${{ matrix.python-version }}"
|
|
209
209
|
permit_fail: "${{ vars.NO_BLOCK_AUDIT_FAIL == 'true' }}"
|
|
@@ -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
|
|
|
@@ -230,14 +230,14 @@ jobs:
|
|
|
230
230
|
- name: "Generate SBOM"
|
|
231
231
|
id: sbom
|
|
232
232
|
# yamllint disable-line rule:line-length
|
|
233
|
-
uses: lfreleng-actions/python-sbom-action@
|
|
233
|
+
uses: lfreleng-actions/python-sbom-action@639001a0def8109e045818dfb3ee82cf602657af # v0.1.4
|
|
234
234
|
with:
|
|
235
235
|
include_dev: "false"
|
|
236
236
|
sbom_format: "both"
|
|
237
237
|
|
|
238
238
|
- name: "Upload SBOM artifacts"
|
|
239
239
|
# yamllint disable-line rule:line-length
|
|
240
|
-
uses: actions/upload-artifact@
|
|
240
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
241
241
|
with:
|
|
242
242
|
name: sbom-files
|
|
243
243
|
path: |
|
|
@@ -275,7 +275,7 @@ jobs:
|
|
|
275
275
|
|
|
276
276
|
- name: "Upload Grype scan results"
|
|
277
277
|
# yamllint disable-line rule:line-length
|
|
278
|
-
uses: actions/upload-artifact@
|
|
278
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
279
279
|
if: always()
|
|
280
280
|
with:
|
|
281
281
|
name: grype-scan-results
|
|
@@ -345,13 +345,13 @@ 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
|
|
|
352
352
|
- name: 'Test PyPI publishing'
|
|
353
353
|
# yamllint disable-line rule:line-length
|
|
354
|
-
uses: lfreleng-actions/pypi-publish-action@
|
|
354
|
+
uses: lfreleng-actions/pypi-publish-action@95a73a3d8f8a665d0816d35fcd6a75a2508e9aeb # v0.2.1
|
|
355
355
|
with:
|
|
356
356
|
environment: 'development'
|
|
357
357
|
tag: "${{ needs.tag-validate.outputs.tag }}"
|
|
@@ -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,13 +457,13 @@ 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
|
|
|
464
464
|
- name: 'PyPI release'
|
|
465
465
|
# yamllint disable-line rule:line-length
|
|
466
|
-
uses: lfreleng-actions/pypi-publish-action@
|
|
466
|
+
uses: lfreleng-actions/pypi-publish-action@95a73a3d8f8a665d0816d35fcd6a75a2508e9aeb # v0.2.1
|
|
467
467
|
with:
|
|
468
468
|
environment: 'production'
|
|
469
469
|
attestations: true
|
|
@@ -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
|
|
|
@@ -506,14 +506,14 @@ jobs:
|
|
|
506
506
|
|
|
507
507
|
- name: 'Download build artefacts'
|
|
508
508
|
# yamllint disable-line rule:line-length
|
|
509
|
-
uses: actions/download-artifact@
|
|
509
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
510
510
|
with:
|
|
511
511
|
name: "${{ needs.python-build.outputs.artefact_name }}"
|
|
512
512
|
path: "${{ needs.python-build.outputs.artefact_path }}"
|
|
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
|
|
|
@@ -566,7 +566,7 @@ jobs:
|
|
|
566
566
|
id: 'promote-release'
|
|
567
567
|
if: steps.check-promoted.outputs.already_promoted == 'false'
|
|
568
568
|
# yamllint disable-line rule:line-length
|
|
569
|
-
uses: lfreleng-actions/draft-release-promote-action@
|
|
569
|
+
uses: lfreleng-actions/draft-release-promote-action@358264a2efca5ac359a90718373cbce18016bd27 # v0.1.7
|
|
570
570
|
with:
|
|
571
571
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
|
572
572
|
tag: "${{ needs.tag-validate.outputs.tag }}"
|
|
@@ -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'
|
|
@@ -319,7 +319,7 @@ jobs:
|
|
|
319
319
|
- name: 'Build Python project'
|
|
320
320
|
id: python-build
|
|
321
321
|
# yamllint disable-line rule:line-length
|
|
322
|
-
uses: lfreleng-actions/python-build-action@
|
|
322
|
+
uses: lfreleng-actions/python-build-action@3cdb6f8e3b9c6c8fb21cce123f7b873b3620273d # v2.1.1
|
|
323
323
|
|
|
324
324
|
# Python tests with matrix strategy (after container pipeline)
|
|
325
325
|
python-tests:
|
|
@@ -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'
|
|
@@ -368,7 +368,7 @@ jobs:
|
|
|
368
368
|
|
|
369
369
|
- name: "Python tests [pytest] ${{ matrix.python-version }}"
|
|
370
370
|
# yamllint disable-line rule:line-length
|
|
371
|
-
uses: lfreleng-actions/python-test-action@
|
|
371
|
+
uses: lfreleng-actions/python-test-action@0c2fe7546faea2321e003c1c3b26a9156a7bc432 # v1.3.1
|
|
372
372
|
with:
|
|
373
373
|
python_version: ${{ matrix.python-version }}
|
|
374
374
|
|
|
@@ -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'
|
|
@@ -419,7 +419,7 @@ jobs:
|
|
|
419
419
|
|
|
420
420
|
- name: "Audit dependencies ${{ matrix.python-version }}"
|
|
421
421
|
# yamllint disable-line rule:line-length
|
|
422
|
-
uses: lfreleng-actions/python-audit-action@
|
|
422
|
+
uses: lfreleng-actions/python-audit-action@47af793a2a28882b10ceb9109646cbbcecc2e7b0 # v0.6.1
|
|
423
423
|
with:
|
|
424
424
|
python_version: "${{ matrix.python-version }}"
|
|
425
425
|
|
|
@@ -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'
|
|
@@ -730,14 +730,14 @@ jobs:
|
|
|
730
730
|
steps:
|
|
731
731
|
# Harden the runner used by this workflow
|
|
732
732
|
- name: Harden Runner
|
|
733
|
-
uses: step-security/harden-runner@
|
|
733
|
+
uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
734
734
|
with:
|
|
735
735
|
egress-policy: audit
|
|
736
736
|
|
|
737
737
|
# Start go-httpbin service for testing
|
|
738
738
|
- name: Setup go-httpbin service
|
|
739
739
|
id: go-httpbin
|
|
740
|
-
uses: lfreleng-actions/go-httpbin-action@
|
|
740
|
+
uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
|
|
741
741
|
with:
|
|
742
742
|
port: '8080'
|
|
743
743
|
debug: 'true'
|
|
@@ -797,7 +797,7 @@ jobs:
|
|
|
797
797
|
steps:
|
|
798
798
|
# Harden the runner used by this workflow
|
|
799
799
|
- name: Harden Runner
|
|
800
|
-
uses: step-security/harden-runner@
|
|
800
|
+
uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
801
801
|
with:
|
|
802
802
|
egress-policy: audit
|
|
803
803
|
|
|
@@ -811,7 +811,7 @@ jobs:
|
|
|
811
811
|
|
|
812
812
|
# Login to Container Registry
|
|
813
813
|
- name: Login to Container Registry
|
|
814
|
-
uses: docker/login-action@
|
|
814
|
+
uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4.7.0
|
|
815
815
|
with:
|
|
816
816
|
registry: ${{ env.REGISTRY }}
|
|
817
817
|
username: ${{ github.actor }}
|
|
@@ -829,7 +829,7 @@ jobs:
|
|
|
829
829
|
# Start go-httpbin service for testing
|
|
830
830
|
- name: Setup go-httpbin service
|
|
831
831
|
id: go-httpbin
|
|
832
|
-
uses: lfreleng-actions/go-httpbin-action@
|
|
832
|
+
uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
|
|
833
833
|
with:
|
|
834
834
|
port: '8080'
|
|
835
835
|
debug: 'true'
|
|
@@ -845,7 +845,7 @@ jobs:
|
|
|
845
845
|
|
|
846
846
|
# Test the http-api-tool against go-httpbin with HTTPS
|
|
847
847
|
docker run --rm --network host \
|
|
848
|
-
-v "$
|
|
848
|
+
-v "$CA_BUNDLE:/tmp/ca-bundle.pem:ro" \
|
|
849
849
|
"$IMAGE_TAG" \
|
|
850
850
|
test \
|
|
851
851
|
--url "$SERVICE_URL/get" \
|
|
@@ -872,7 +872,7 @@ jobs:
|
|
|
872
872
|
steps:
|
|
873
873
|
# Harden the runner
|
|
874
874
|
- name: Harden Runner
|
|
875
|
-
uses: step-security/harden-runner@
|
|
875
|
+
uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
|
|
876
876
|
with:
|
|
877
877
|
egress-policy: audit
|
|
878
878
|
|
|
@@ -883,7 +883,7 @@ jobs:
|
|
|
883
883
|
|
|
884
884
|
# Setup Python with caching
|
|
885
885
|
- name: Set up Python
|
|
886
|
-
uses: actions/setup-python@
|
|
886
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
887
887
|
with:
|
|
888
888
|
# Do NOT use hard coded Python; extract from pyproject.toml
|
|
889
889
|
python-version-file: 'pyproject.toml'
|
|
@@ -905,7 +905,7 @@ jobs:
|
|
|
905
905
|
|
|
906
906
|
# Install UV
|
|
907
907
|
- name: Install UV
|
|
908
|
-
uses: astral-sh/setup-uv@
|
|
908
|
+
uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
909
909
|
|
|
910
910
|
# Install project dependencies with dev extras (includes bandit)
|
|
911
911
|
- 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 }}
|
|
@@ -22,12 +22,14 @@ concurrency:
|
|
|
22
22
|
cancel-in-progress: true
|
|
23
23
|
|
|
24
24
|
jobs:
|
|
25
|
-
|
|
26
|
-
name: '
|
|
27
|
-
# yamllint disable-line rule:line-length
|
|
28
|
-
uses: lfit/releng-reusable-workflows/.github/workflows/reuse-python-codeql.yaml@87eacd1f8322263ebbc1411ce2ea82bab10ed091 # v0.10.3
|
|
25
|
+
codeql:
|
|
26
|
+
name: 'CodeQL'
|
|
29
27
|
permissions:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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@378fcc19ebdf37f17fde4888d4b71c83b21d6cf3 # v0.9.7
|
|
34
|
+
with:
|
|
35
|
+
languages: 'python,actions'
|
|
@@ -28,13 +28,13 @@ jobs:
|
|
|
28
28
|
openssf-scorecard:
|
|
29
29
|
name: "OpenSSF Scorecard"
|
|
30
30
|
# yamllint disable-line rule:line-length
|
|
31
|
-
uses:
|
|
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:
|
|
35
|
-
contents: read #
|
|
36
|
-
#
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
#
|
|
40
|
-
#
|
|
35
|
+
contents: read # checkout
|
|
36
|
+
security-events: write # upload results to the code scanning dashboard
|
|
37
|
+
id-token: write # publish results and obtain the badge, via OIDC
|
|
38
|
+
actions: read # upload-sarif reads run info on private repositories
|
|
39
|
+
# The lane's scan job requests only the scopes above, so granting
|
|
40
|
+
# more here has no effect, including on a private repository.
|
|
@@ -28,18 +28,18 @@ 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@d01dcdad980f826d4099289e2014126465580807 # v0.14.1
|
|
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: >
|
|
42
42
|
${{ env.CONNECTION_ALLOW_LIST }}
|
|
43
43
|
|
|
44
44
|
# yamllint disable-line rule:line-length
|
|
45
|
-
- uses: release-drafter/release-drafter@
|
|
45
|
+
- uses: release-drafter/release-drafter@978bb0b30c5ee8cdd332ced253758157150d43f0 # v7.10.0
|
|
@@ -34,7 +34,7 @@ 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: lfit/releng-reusable-workflows/.github/workflows/reuse-sonatype-lifecycle.yaml@
|
|
37
|
+
uses: lfit/releng-reusable-workflows/.github/workflows/reuse-sonatype-lifecycle.yaml@e3bb02dd0d2e5027cde63732fe00f591d6ecec03 # v0.11.0
|
|
38
38
|
# Neither scan writes a cache; deny writes under branch_protection_rule
|
|
39
39
|
cache-mode: read
|
|
40
40
|
secrets:
|
|
@@ -44,7 +44,7 @@ jobs:
|
|
|
44
44
|
sonarqube-cloud:
|
|
45
45
|
name: "SonarQube Cloud"
|
|
46
46
|
# yamllint disable-line rule:line-length
|
|
47
|
-
uses: lfit/releng-reusable-workflows/.github/workflows/reuse-sonarqube-cloud.yaml@
|
|
47
|
+
uses: lfit/releng-reusable-workflows/.github/workflows/reuse-sonarqube-cloud.yaml@e3bb02dd0d2e5027cde63732fe00f591d6ecec03 # v0.11.0
|
|
48
48
|
# Neither scan writes a cache; deny writes under branch_protection_rule
|
|
49
49
|
cache-mode: read
|
|
50
50
|
permissions:
|
|
@@ -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: f368fb366ff7f2f808dd324b83a6d32267799e19 # frozen: v0.17.2
|
|
77
77
|
hooks:
|
|
78
78
|
- id: ruff
|
|
79
79
|
files: ^(src|tests|scripts)/.+\.py$
|
|
@@ -106,7 +106,7 @@ repos:
|
|
|
106
106
|
- id: shellcheck
|
|
107
107
|
|
|
108
108
|
- repo: https://github.com/igorshubovych/markdownlint-cli
|
|
109
|
-
rev:
|
|
109
|
+
rev: cbcdc463be5464e25e3e955a511599a67b9b987f # frozen: v0.50.0
|
|
110
110
|
hooks:
|
|
111
111
|
- id: markdownlint
|
|
112
112
|
args: ["--fix"]
|
|
@@ -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: 6431fe01a4f1b978de418160cc7caa6a24f6df76 # frozen: v1.10.0
|
|
137
137
|
hooks:
|
|
138
138
|
- id: gha-workflow-linter
|
|
139
139
|
args: [lint, .]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: http-api-tool
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.4
|
|
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
|
|
@@ -18,7 +18,6 @@ Classifier: Intended Audience :: System Administrators
|
|
|
18
18
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
19
19
|
Classifier: Operating System :: OS Independent
|
|
20
20
|
Classifier: Programming Language :: Python :: 3
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.13
|
|
@@ -27,14 +26,14 @@ Classifier: Topic :: Internet :: WWW/HTTP
|
|
|
27
26
|
Classifier: Topic :: Software Development :: Testing
|
|
28
27
|
Classifier: Topic :: System :: Monitoring
|
|
29
28
|
Classifier: Topic :: Utilities
|
|
30
|
-
Requires-Python: >=3.
|
|
29
|
+
Requires-Python: >=3.11
|
|
31
30
|
Requires-Dist: certifi>=2025.6.15
|
|
32
31
|
Requires-Dist: pycurl>=7.45.0
|
|
33
32
|
Requires-Dist: requests>=2.32.4
|
|
34
33
|
Requires-Dist: typer>=0.9.0
|
|
35
34
|
Provides-Extra: dev
|
|
36
35
|
Requires-Dist: bandit>=1.8.0; extra == 'dev'
|
|
37
|
-
Requires-Dist: black>=
|
|
36
|
+
Requires-Dist: black>=26.10.1; extra == 'dev'
|
|
38
37
|
Requires-Dist: coverage[toml]>=7.9.1; extra == 'dev'
|
|
39
38
|
Requires-Dist: flake8>=7.0.0; extra == 'dev'
|
|
40
39
|
Requires-Dist: interrogate>=1.5.0; extra == 'dev'
|
|
@@ -511,7 +510,7 @@ HTTPS testing service:
|
|
|
511
510
|
```yaml
|
|
512
511
|
steps:
|
|
513
512
|
- name: Setup go-httpbin HTTPS service
|
|
514
|
-
uses: lfreleng-actions/go-httpbin-action@
|
|
513
|
+
uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
|
|
515
514
|
id: httpbin
|
|
516
515
|
with:
|
|
517
516
|
debug: 'true'
|
|
@@ -521,7 +520,7 @@ steps:
|
|
|
521
520
|
uses: lfreleng-actions/http-api-tool-docker@main
|
|
522
521
|
with:
|
|
523
522
|
url: 'https://localhost:8080/get'
|
|
524
|
-
ca_bundle_path: '
|
|
523
|
+
ca_bundle_path: '${{ steps.httpbin.outputs.ca-cert-path }}'
|
|
525
524
|
expected_http_code: '200'
|
|
526
525
|
```
|
|
527
526
|
|
|
@@ -594,7 +593,7 @@ uv run pytest tests/ -v
|
|
|
594
593
|
|
|
595
594
|
## Requirements
|
|
596
595
|
|
|
597
|
-
- Python 3.
|
|
596
|
+
- Python 3.11+
|
|
598
597
|
- UV (Fast Python package installer and resolver)
|
|
599
598
|
- pycurl
|
|
600
599
|
- typer (for CLI usage)
|