signedshot 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.
- signedshot-0.1.0/.github/workflows/ci.yml +66 -0
- signedshot-0.1.0/.github/workflows/release.yml +164 -0
- signedshot-0.1.0/.gitignore +28 -0
- signedshot-0.1.0/Cargo.lock +2100 -0
- signedshot-0.1.0/Cargo.toml +37 -0
- signedshot-0.1.0/PKG-INFO +63 -0
- signedshot-0.1.0/README.md +40 -0
- signedshot-0.1.0/pyproject.toml +34 -0
- signedshot-0.1.0/python/signedshot/__init__.py +9 -0
- signedshot-0.1.0/python/signedshot/__init__.pyi +103 -0
- signedshot-0.1.0/src/bin/signedshot.rs +192 -0
- signedshot-0.1.0/src/error.rs +55 -0
- signedshot-0.1.0/src/integrity.rs +208 -0
- signedshot-0.1.0/src/jwt.rs +224 -0
- signedshot-0.1.0/src/lib.rs +58 -0
- signedshot-0.1.0/src/python.rs +225 -0
- signedshot-0.1.0/src/sidecar.rs +205 -0
- signedshot-0.1.0/src/validate.rs +277 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
CARGO_TERM_COLOR: always
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
fmt:
|
|
14
|
+
name: Format
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
19
|
+
with:
|
|
20
|
+
components: rustfmt
|
|
21
|
+
- run: cargo fmt --check
|
|
22
|
+
|
|
23
|
+
clippy:
|
|
24
|
+
name: Clippy
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v4
|
|
28
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
29
|
+
with:
|
|
30
|
+
components: clippy
|
|
31
|
+
- uses: Swatinem/rust-cache@v2
|
|
32
|
+
- run: cargo clippy -- -D warnings
|
|
33
|
+
|
|
34
|
+
test:
|
|
35
|
+
name: Test
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
steps:
|
|
38
|
+
- uses: actions/checkout@v4
|
|
39
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
40
|
+
- uses: Swatinem/rust-cache@v2
|
|
41
|
+
- run: cargo test
|
|
42
|
+
|
|
43
|
+
build:
|
|
44
|
+
name: Build
|
|
45
|
+
runs-on: ubuntu-latest
|
|
46
|
+
steps:
|
|
47
|
+
- uses: actions/checkout@v4
|
|
48
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
49
|
+
- uses: Swatinem/rust-cache@v2
|
|
50
|
+
- run: cargo build --release
|
|
51
|
+
|
|
52
|
+
# Verify Python bindings compile
|
|
53
|
+
python-check:
|
|
54
|
+
name: Python Bindings Check
|
|
55
|
+
runs-on: ubuntu-latest
|
|
56
|
+
steps:
|
|
57
|
+
- uses: actions/checkout@v4
|
|
58
|
+
- uses: actions/setup-python@v5
|
|
59
|
+
with:
|
|
60
|
+
python-version: '3.12'
|
|
61
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
62
|
+
- uses: Swatinem/rust-cache@v2
|
|
63
|
+
- name: Install maturin
|
|
64
|
+
run: pip install maturin
|
|
65
|
+
- name: Check Python bindings build
|
|
66
|
+
run: maturin build --features python
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
tags:
|
|
7
|
+
- 'v*'
|
|
8
|
+
pull_request:
|
|
9
|
+
branches: [main]
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
# Build wheels for Linux x86_64
|
|
17
|
+
linux-x86_64:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
|
+
- uses: actions/setup-python@v5
|
|
22
|
+
with:
|
|
23
|
+
python-version: '3.12'
|
|
24
|
+
- name: Build wheels
|
|
25
|
+
uses: PyO3/maturin-action@v1
|
|
26
|
+
with:
|
|
27
|
+
target: x86_64
|
|
28
|
+
args: --release --out dist --features python
|
|
29
|
+
sccache: 'true'
|
|
30
|
+
manylinux: auto
|
|
31
|
+
- name: Upload wheels
|
|
32
|
+
uses: actions/upload-artifact@v4
|
|
33
|
+
with:
|
|
34
|
+
name: wheels-linux-x86_64
|
|
35
|
+
path: dist
|
|
36
|
+
|
|
37
|
+
# Build wheels for Linux aarch64 (native ARM runner)
|
|
38
|
+
linux-aarch64:
|
|
39
|
+
runs-on: ubuntu-24.04-arm
|
|
40
|
+
steps:
|
|
41
|
+
- uses: actions/checkout@v4
|
|
42
|
+
- uses: actions/setup-python@v5
|
|
43
|
+
with:
|
|
44
|
+
python-version: '3.12'
|
|
45
|
+
- name: Build wheels
|
|
46
|
+
uses: PyO3/maturin-action@v1
|
|
47
|
+
with:
|
|
48
|
+
target: aarch64
|
|
49
|
+
args: --release --out dist --features python
|
|
50
|
+
sccache: 'true'
|
|
51
|
+
manylinux: auto
|
|
52
|
+
- name: Upload wheels
|
|
53
|
+
uses: actions/upload-artifact@v4
|
|
54
|
+
with:
|
|
55
|
+
name: wheels-linux-aarch64
|
|
56
|
+
path: dist
|
|
57
|
+
|
|
58
|
+
# Build wheels for macOS
|
|
59
|
+
macos:
|
|
60
|
+
runs-on: macos-latest
|
|
61
|
+
strategy:
|
|
62
|
+
matrix:
|
|
63
|
+
target: [x86_64, aarch64]
|
|
64
|
+
steps:
|
|
65
|
+
- uses: actions/checkout@v4
|
|
66
|
+
- uses: actions/setup-python@v5
|
|
67
|
+
with:
|
|
68
|
+
python-version: '3.12'
|
|
69
|
+
- name: Build wheels
|
|
70
|
+
uses: PyO3/maturin-action@v1
|
|
71
|
+
with:
|
|
72
|
+
target: ${{ matrix.target }}
|
|
73
|
+
args: --release --out dist --features python
|
|
74
|
+
sccache: 'true'
|
|
75
|
+
- name: Upload wheels
|
|
76
|
+
uses: actions/upload-artifact@v4
|
|
77
|
+
with:
|
|
78
|
+
name: wheels-macos-${{ matrix.target }}
|
|
79
|
+
path: dist
|
|
80
|
+
|
|
81
|
+
# Build wheels for Windows
|
|
82
|
+
windows:
|
|
83
|
+
runs-on: windows-latest
|
|
84
|
+
strategy:
|
|
85
|
+
matrix:
|
|
86
|
+
target: [x64]
|
|
87
|
+
steps:
|
|
88
|
+
- uses: actions/checkout@v4
|
|
89
|
+
- uses: actions/setup-python@v5
|
|
90
|
+
with:
|
|
91
|
+
python-version: '3.12'
|
|
92
|
+
architecture: ${{ matrix.target }}
|
|
93
|
+
- name: Build wheels
|
|
94
|
+
uses: PyO3/maturin-action@v1
|
|
95
|
+
with:
|
|
96
|
+
target: ${{ matrix.target }}
|
|
97
|
+
args: --release --out dist --features python
|
|
98
|
+
sccache: 'true'
|
|
99
|
+
- name: Upload wheels
|
|
100
|
+
uses: actions/upload-artifact@v4
|
|
101
|
+
with:
|
|
102
|
+
name: wheels-windows-${{ matrix.target }}
|
|
103
|
+
path: dist
|
|
104
|
+
|
|
105
|
+
# Build source distribution
|
|
106
|
+
sdist:
|
|
107
|
+
runs-on: ubuntu-latest
|
|
108
|
+
steps:
|
|
109
|
+
- uses: actions/checkout@v4
|
|
110
|
+
- name: Build sdist
|
|
111
|
+
uses: PyO3/maturin-action@v1
|
|
112
|
+
with:
|
|
113
|
+
command: sdist
|
|
114
|
+
args: --out dist
|
|
115
|
+
- name: Upload sdist
|
|
116
|
+
uses: actions/upload-artifact@v4
|
|
117
|
+
with:
|
|
118
|
+
name: wheels-sdist
|
|
119
|
+
path: dist
|
|
120
|
+
|
|
121
|
+
# Publish to PyPI (only on tags)
|
|
122
|
+
publish:
|
|
123
|
+
name: Publish to PyPI
|
|
124
|
+
runs-on: ubuntu-latest
|
|
125
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
126
|
+
needs: [linux-x86_64, linux-aarch64, macos, windows, sdist]
|
|
127
|
+
environment:
|
|
128
|
+
name: pypi
|
|
129
|
+
url: https://pypi.org/p/signedshot
|
|
130
|
+
permissions:
|
|
131
|
+
id-token: write # Required for trusted publishing
|
|
132
|
+
steps:
|
|
133
|
+
- uses: actions/download-artifact@v4
|
|
134
|
+
with:
|
|
135
|
+
pattern: wheels-*
|
|
136
|
+
path: dist
|
|
137
|
+
merge-multiple: true
|
|
138
|
+
- name: Publish to PyPI
|
|
139
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
140
|
+
with:
|
|
141
|
+
skip-existing: true
|
|
142
|
+
|
|
143
|
+
# Publish to TestPyPI (on main branch push)
|
|
144
|
+
publish-test:
|
|
145
|
+
name: Publish to TestPyPI
|
|
146
|
+
runs-on: ubuntu-latest
|
|
147
|
+
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
|
148
|
+
needs: [linux-x86_64, linux-aarch64, macos, windows, sdist]
|
|
149
|
+
environment:
|
|
150
|
+
name: testpypi
|
|
151
|
+
url: https://test.pypi.org/p/signedshot
|
|
152
|
+
permissions:
|
|
153
|
+
id-token: write # Required for trusted publishing
|
|
154
|
+
steps:
|
|
155
|
+
- uses: actions/download-artifact@v4
|
|
156
|
+
with:
|
|
157
|
+
pattern: wheels-*
|
|
158
|
+
path: dist
|
|
159
|
+
merge-multiple: true
|
|
160
|
+
- name: Publish to TestPyPI
|
|
161
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
162
|
+
with:
|
|
163
|
+
repository-url: https://test.pypi.org/legacy/
|
|
164
|
+
skip-existing: true
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Generated by Cargo
|
|
2
|
+
/target/
|
|
3
|
+
|
|
4
|
+
# Cargo.lock for libraries (keep for binaries)
|
|
5
|
+
# Cargo.lock
|
|
6
|
+
|
|
7
|
+
# IDE
|
|
8
|
+
.idea/
|
|
9
|
+
.vscode/
|
|
10
|
+
*.swp
|
|
11
|
+
*.swo
|
|
12
|
+
|
|
13
|
+
# macOS
|
|
14
|
+
.DS_Store
|
|
15
|
+
|
|
16
|
+
# Test artifacts
|
|
17
|
+
*.log
|
|
18
|
+
|
|
19
|
+
# Media files (avoid accidental commits)
|
|
20
|
+
*.jpg
|
|
21
|
+
*.jpeg
|
|
22
|
+
*.png
|
|
23
|
+
*.heic
|
|
24
|
+
*.mov
|
|
25
|
+
*.mp4
|
|
26
|
+
|
|
27
|
+
# Sidecar files
|
|
28
|
+
*.sidecar.json
|