qso-graph-auth 0.1.0__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.
- qso_graph_auth-0.1.0/.github/workflows/publish.yml +70 -0
- qso_graph_auth-0.1.0/.gitignore +12 -0
- qso_graph_auth-0.1.0/LICENSE +674 -0
- qso_graph_auth-0.1.0/PKG-INFO +115 -0
- qso_graph_auth-0.1.0/README.md +92 -0
- qso_graph_auth-0.1.0/pyproject.toml +34 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/__init__.py +3 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/cli/__init__.py +7 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/cli/creds.py +234 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/cli/persona.py +204 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/cli/provider.py +159 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/cli/root.py +52 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/credentials/__init__.py +19 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/credentials/credentials.py +97 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/identity/__init__.py +19 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/identity/errors.py +24 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/identity/manager.py +78 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/identity/models.py +61 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/identity/store.py +180 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/paths.py +48 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/providers/__init__.py +9 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/providers/adapters.py +68 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/resources/__init__.py +0 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/resources/providers/eqsl.json +19 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/resources/providers/hamqth.json +12 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/resources/providers/lotw.json +19 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/resources/providers/qrz.json +17 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/resources/providers/qrz_logbook.json +17 -0
- qso_graph_auth-0.1.0/src/qso_graph_auth/resources/schemas/manifest.v1.json +46 -0
- qso_graph_auth-0.1.0/tests/test_security.py +87 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
security:
|
|
10
|
+
name: Security gates
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
|
|
15
|
+
- uses: actions/setup-python@v5
|
|
16
|
+
with:
|
|
17
|
+
python-version: "3.12"
|
|
18
|
+
|
|
19
|
+
- name: Install test dependencies
|
|
20
|
+
run: pip install pytest pip-audit
|
|
21
|
+
|
|
22
|
+
- name: Run security test suite
|
|
23
|
+
run: python -m pytest tests/test_security.py -v
|
|
24
|
+
|
|
25
|
+
- name: Audit dependencies for vulnerabilities
|
|
26
|
+
run: pip-audit --strict --desc 2>&1 || true
|
|
27
|
+
|
|
28
|
+
- name: Grep check — no subprocess/shell
|
|
29
|
+
run: |
|
|
30
|
+
if grep -rn 'subprocess\.\|os\.system\|shell=True' src/; then
|
|
31
|
+
echo "FAIL: subprocess/shell found in source"
|
|
32
|
+
exit 1
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
- name: Grep check — no plaintext http://
|
|
36
|
+
run: |
|
|
37
|
+
if grep -rn 'http://' src/ | grep -v 'localhost\|127\.0\.0\.1\|::1'; then
|
|
38
|
+
echo "FAIL: non-HTTPS URL found in source"
|
|
39
|
+
exit 1
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
- name: Grep check — no credential logging
|
|
43
|
+
run: |
|
|
44
|
+
if grep -rn -i 'print.*password\|print.*api_key\|logging.*password\|logging.*api_key' src/; then
|
|
45
|
+
echo "FAIL: credential logging found in source"
|
|
46
|
+
exit 1
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
publish:
|
|
50
|
+
name: Build and publish to PyPI
|
|
51
|
+
needs: security
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
environment: pypi
|
|
54
|
+
permissions:
|
|
55
|
+
id-token: write # Required for trusted publishing (OIDC)
|
|
56
|
+
steps:
|
|
57
|
+
- uses: actions/checkout@v4
|
|
58
|
+
|
|
59
|
+
- uses: actions/setup-python@v5
|
|
60
|
+
with:
|
|
61
|
+
python-version: "3.12"
|
|
62
|
+
|
|
63
|
+
- name: Install build dependencies
|
|
64
|
+
run: pip install build
|
|
65
|
+
|
|
66
|
+
- name: Build package
|
|
67
|
+
run: python -m build
|
|
68
|
+
|
|
69
|
+
- name: Publish to PyPI
|
|
70
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|