@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
88## [ Unreleased]
99
10+ ## [ 0.0.28]
11+
12+ ### Changed
13+
14+ - Upgraded ` sigstore ` dependency to ` >=4.0.0 ` . Since version ` 4.0.0 ` ,
15+ ` sigstore ` supports signing using the new Rekor v2 instance, which
16+ will become the default in the future. We force the version to 1,
17+ so any attestations created with ` pypi-attestations==0.0.28 ` will
18+ still contain Rekor v1 entries.
19+ - Repository has been moved to the ` pypi ` GitHub org. The new URL
20+ is https://github.com/pypi/pypi-attestations .
21+
1022## [ 0.0.27]
1123
1224### Fixed
@@ -17,30 +29,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1729 string comparison. This fixes an issue where verification would fail
1830 due to the artifact filename having the wheel tags in a different
1931 order than the ones in the attestation.
20- ([ #127 ] ( https://github.com/trailofbits /pypi-attestations/pull/127 ) )
32+ ([ #127 ] ( https://github.com/pypi /pypi-attestations/pull/127 ) )
2133
2234## [ 0.0.26]
2335
2436### Fixed
2537
2638- This library no longer enforces distribution name "ultranormalization,"
2739 which went above the requirements specified in PEP 740
28- ([ #124 ] ( https://github.com/trailofbits /pypi-attestations/pull/124 ) )
40+ ([ #124 ] ( https://github.com/pypi /pypi-attestations/pull/124 ) )
2941
3042## [ 0.0.25]
3143
3244### Fixed
3345
3446- Make the ` GooglePublisher ` type and APIs public
35- ([ #117 ] ( https://github.com/trailofbits /pypi-attestations/pull/117 ) )
47+ ([ #117 ] ( https://github.com/pypi /pypi-attestations/pull/117 ) )
3648
3749## [ 0.0.24]
3850
3951### Added
4052
4153- The ` GooglePublisher ` type has been added to support
4254 Google Cloud-based Trusted Publishers
43- ([ #114 ] ( https://github.com/trailofbits /pypi-attestations/pull/114 ) )
55+ ([ #114 ] ( https://github.com/pypi /pypi-attestations/pull/114 ) )
4456
4557## [ 0.0.23]
4658
@@ -64,15 +76,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6476 if the ` Source Repository Ref ` or ` Source Repository Digest ` claim
6577 was missing from the attestation's certificate. We require at least
6678 one of the two claims, but not necessarily both
67- ([ #109 ] ( https://github.com/trailofbits /pypi-attestations/pull/109 ) )
79+ ([ #109 ] ( https://github.com/pypi /pypi-attestations/pull/109 ) )
6880
6981## [ 0.0.22]
7082
7183### Changed
7284
7385- The ` inspect ` subcommand now ignores inputs that don't match ` *.attestation ` ,
7486 rather than failing on them
75- ([ #93 ] ( https://github.com/trailofbits /pypi-attestations/pull/93 ) )
87+ ([ #93 ] ( https://github.com/pypi /pypi-attestations/pull/93 ) )
7688
7789### Added
7890
@@ -95,10 +107,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
95107### Changed
96108
97109- The CLI entrypoint is now ` pypi-attestations `
98- ([ #82 ] ( https://github.com/trailofbits /pypi-attestations/pull/82 ) )
110+ ([ #82 ] ( https://github.com/pypi /pypi-attestations/pull/82 ) )
99111- The CLI ` verify ` subcommand has been changed to ` verify attestation ` ,
100112 as in ` pypi-attestations verify attestation --identity ... `
101- ([ #82 ] ( https://github.com/trailofbits /pypi-attestations/pull/82 ) )
113+ ([ #82 ] ( https://github.com/pypi /pypi-attestations/pull/82 ) )
102114
103115### Added
104116
@@ -108,14 +120,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
108120 downloading it and its provenance from PyPI, verifying them using
109121 ` sigstore ` and checking that the repository matches the one in the
110122 PyPI provenance file.
111- ([ #82 ] ( https://github.com/trailofbits /pypi-attestations/pull/82 ) )
123+ ([ #82 ] ( https://github.com/pypi /pypi-attestations/pull/82 ) )
112124
113125## [ 0.0.20]
114126
115127### Changed
116128
117129- Explicitly support sigstore-python 3.6
118- ([ #79 ] ( https://github.com/trailofbits /pypi-attestations/pull/79 ) )
130+ ([ #79 ] ( https://github.com/pypi /pypi-attestations/pull/79 ) )
119131
120132## [ 0.0.19]
121133
@@ -127,26 +139,26 @@ This is a corrective release for [0.0.18].
127139
128140- The ` Attestation ` type now has a ` certificate_claims ` property to expose
129141 underlying Fulcio signing certificate extensions
130- ([ #70 ] ( https://github.com/trailofbits /pypi-attestations/pull/70 ) )
142+ ([ #70 ] ( https://github.com/pypi /pypi-attestations/pull/70 ) )
131143
132144## [ 0.0.17]
133145
134146### Fixed
135147
136148- The ` GitLabPublisher ` policy now takes the workflow file path in order to
137149 verify attestations, rathen than assuming it will always be ` gitlab-ci.yml `
138- ([ #71 ] ( https://github.com/trailofbits /pypi-attestations/pull/71 ) ).
150+ ([ #71 ] ( https://github.com/pypi /pypi-attestations/pull/71 ) ).
139151- The ` GitLabPublisher ` now longer expects claims being passed during construction,
140152 rather the ` ref ` and ` sha ` claims are extracted from the certificate's extensions,
141153 similar to ` GitHubPublisher ` 's behavior
142- ([ #71 ] ( https://github.com/trailofbits /pypi-attestations/pull/71 ) ).
154+ ([ #71 ] ( https://github.com/pypi /pypi-attestations/pull/71 ) ).
143155
144156
145157### Changed
146158
147159- Publisher classes (` GitLabPublisher ` and ` GitHubPublisher ` ) no longer take a claims
148160 dictionary during construction
149- ([ #72 ] ( https://github.com/trailofbits /pypi-attestations/pull/72 ) ).
161+ ([ #72 ] ( https://github.com/pypi /pypi-attestations/pull/72 ) ).
150162
151163## [ 0.0.16]
152164
@@ -165,19 +177,19 @@ This is a corrective release for [0.0.14].
165177
166178- The ` Distribution ` API now handles ZIP source distributions
167179 (those ending with ` .zip ` ) instead of rejecting them as invalid
168- ([ #68 ] ( https://github.com/trailofbits /pypi-attestations/pull/68 ) )
180+ ([ #68 ] ( https://github.com/pypi /pypi-attestations/pull/68 ) )
169181
170182## [ 0.0.13]
171183
172184### Changed
173185
174186- The minimum Python version required has been brought back to ` 3.9 `
175- ([ #64 ] ( https://github.com/trailofbits /pypi-attestations/pull/64 ) ).
187+ ([ #64 ] ( https://github.com/pypi /pypi-attestations/pull/64 ) ).
176188
177189- The ` Attestation.verify(...) ` API has been changed to remove the ` Verifier `
178190 argument in favor of an optional ` staging: bool ` kwarg to select the
179191 Sigstore instance
180- ([ #62 ] ( https://github.com/trailofbits /pypi-attestations/pull/62 ) )
192+ ([ #62 ] ( https://github.com/pypi /pypi-attestations/pull/62 ) )
181193
182194- The ` Attestation.verify(...) ` API has been changed to accept both ` Publisher `
183195 and ` VerificationPolicy ` objects as a policy. The publisher object is internally
@@ -190,7 +202,7 @@ This is a corrective release for [0.0.14].
190202
191203- ` python -m pypi_attestations verify ` now exits with a non-zero exit code
192204 if the verification step fails
193- ([ #57 ] ( https://github.com/trailofbits /pypi-attestations/pull/57 ) )
205+ ([ #57 ] ( https://github.com/pypi /pypi-attestations/pull/57 ) )
194206
195207## [ 0.0.12]
196208
@@ -199,74 +211,74 @@ This is a corrective release for [0.0.14].
199211- Base64-encoded bytes inside Attestation objects contained newline characters
200212 every 76 characters due to a bug in Pydantic's Base64Bytes type. Those
201213 newlines were also (incorrectly) ignored by Pydantic during decoding
202- ([ #48 ] ( https://github.com/trailofbits /pypi-attestations/pull/48 ) ).
214+ ([ #48 ] ( https://github.com/pypi /pypi-attestations/pull/48 ) ).
203215
204216## [ 0.0.11]
205217
206218### Changed
207219
208220- The minimum version of sigstore-python is now ` 3.2.0 ` , owing to private
209- API changes ([ #45 ] ( https://github.com/trailofbits /pypi-attestations/pull/45 ) )
221+ API changes ([ #45 ] ( https://github.com/pypi /pypi-attestations/pull/45 ) )
210222
211223## [ 0.0.10]
212224
213225### Changed
214226
215227- The minimum Python version required has been bumped to ` 3.11 `
216- ([ #37 ] ( https://github.com/trailofbits /pypi-attestations/pull/37 ) )
228+ ([ #37 ] ( https://github.com/pypi /pypi-attestations/pull/37 ) )
217229
218230### Added
219231
220232- The ` Provenance ` , ` Publisher ` , ` GitHubPublisher ` , ` GitLabPublisher ` , and
221233 ` AttestationBundle ` types have been added
222- ([ #36 ] ( https://github.com/trailofbits /pypi-attestations/pull/36 ) ).
234+ ([ #36 ] ( https://github.com/pypi /pypi-attestations/pull/36 ) ).
223235
224236## [ 0.0.9]
225237
226238### Added
227239
228240- The ` Distribution ` type and APIs have been added, allowing a user to supply
229241 a pre-computed digest instead of performing I/O
230- ([ #34 ] ( https://github.com/trailofbits /pypi-attestations/pull/34 ) )
242+ ([ #34 ] ( https://github.com/pypi /pypi-attestations/pull/34 ) )
231243
232244### Changed
233245
234246- ` sign ` and ` verify ` no longer perform I/O
235- ([ #34 ] ( https://github.com/trailofbits /pypi-attestations/pull/34 ) )
247+ ([ #34 ] ( https://github.com/pypi /pypi-attestations/pull/34 ) )
236248
237249
238250### Fixed
239251
240252- ` verify ` : catch another leaky error case
241- ([ #32 ] ( https://github.com/trailofbits /pypi-attestations/pull/32 ) )
253+ ([ #32 ] ( https://github.com/pypi /pypi-attestations/pull/32 ) )
242254
243255
244256## [ 0.0.8]
245257
246258### Fixed
247259
248260- ` AttestationType ` is now re-exported at the top-level as a public API
249- ([ #31 ] ( https://github.com/trailofbits /pypi-attestations/pull/31 ) )
261+ ([ #31 ] ( https://github.com/pypi /pypi-attestations/pull/31 ) )
250262
251263## [ 0.0.7]
252264
253265### Added
254266
255267- ` AttestationType ` has been added, as an enumeration of all currently known
256268 attestation types (by URL)
257- ([ #29 ] ( https://github.com/trailofbits /pypi-attestations/pull/29 ) )
269+ ([ #29 ] ( https://github.com/pypi /pypi-attestations/pull/29 ) )
258270
259271### Changed
260272
261273- ` Attestation.verify ` now checks the attestation's type against
262274 ` AttestationType ` before returning it
263- ([ #29 ] ( https://github.com/trailofbits /pypi-attestations/pull/29 ) )
275+ ([ #29 ] ( https://github.com/pypi /pypi-attestations/pull/29 ) )
264276
265277### Fixed
266278
267279- ` Attestation.sign ` now only returns ` AttestationError ` when failing to sign a
268280 distribution file
269- ([ #28 ] ( https://github.com/trailofbits /pypi-attestations/pull/28 ) )
281+ ([ #28 ] ( https://github.com/pypi /pypi-attestations/pull/28 ) )
270282
271283## [ 0.0.6]
272284
@@ -276,28 +288,28 @@ This is a corrective release for [0.0.14].
276288 intended for local development, and not for external use. Its flags and
277289 commands are not subject to stabilization unless explicitly documented
278290 in a future release
279- ([ #22 ] ( https://github.com/trailofbits /pypi-attestations/pull/22 ) )
291+ ([ #22 ] ( https://github.com/pypi /pypi-attestations/pull/22 ) )
280292
281293### Changed
282294
283295- The name of this project is now ` pypi-attestations ` , renamed from
284- ` pypi-attestion-models ` ([ #25 ] ( https://github.com/trailofbits /pypi-attestations/pull/25 ) )
296+ ` pypi-attestion-models ` ([ #25 ] ( https://github.com/pypi /pypi-attestations/pull/25 ) )
285297
286298- The model conversion functions have been moved into the ` Attestation ` class
287- ([ #24 ] ( https://github.com/trailofbits /pypi-attestations/pull/24 ) )
299+ ([ #24 ] ( https://github.com/pypi /pypi-attestations/pull/24 ) )
288300
289301## [ 0.0.5] - 2024-06-20
290302
291303### Added
292304
293305- ` Attestation.verify ` now returns the inner statement's predicate components
294- ([ #20 ] ( https://github.com/trailofbits /pypi-attestations/pull/20 ) )
306+ ([ #20 ] ( https://github.com/pypi /pypi-attestations/pull/20 ) )
295307
296308## [ 0.0.4] - 2024-06-11
297309
298310### Changed
299311
300- - Switch to in-toto statements ([ #18 ] ( https://github.com/trailofbits /pypi-attestations/pull/18 ) )
312+ - Switch to in-toto statements ([ #18 ] ( https://github.com/pypi /pypi-attestations/pull/18 ) )
301313
302314## [ 0.0.3] - 2024-06-10
303315
@@ -315,31 +327,33 @@ This is a corrective release for [0.0.14].
315327
316328- Initial implementation
317329
318- [ Unreleased ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.27...HEAD
319- [ 0.0.27 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.26...v0.0.27
320- [ 0.0.26 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.25...v0.0.26
321- [ 0.0.25 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.24...v0.0.25
322- [ 0.0.24 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.23...v0.0.24
323- [ 0.0.23 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.22...v0.0.23
324- [ 0.0.22 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.21...v0.0.22
325- [ 0.0.21 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.20...v0.0.21
326- [ 0.0.20 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.19...v0.0.20
327- [ 0.0.19 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.18...v0.0.19
328- [ 0.0.18 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.17...v0.0.18
329- [ 0.0.17 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.16...v0.0.17
330- [ 0.0.16 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.15...v0.0.16
331- [ 0.0.15 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.14...v0.0.15
332- [ 0.0.14 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.13...v0.0.14
333- [ 0.0.13 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.12...v0.0.13
334- [ 0.0.12 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.11...v0.0.12
335- [ 0.0.11 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.10...v0.0.11
336- [ 0.0.10 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.9...v0.0.10
337- [ 0.0.9 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.8...v0.0.9
338- [ 0.0.8 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.7...v0.0.8
339- [ 0.0.7 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.6...v0.0.7
340- [ 0.0.6 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.5...v0.0.6
341- [ 0.0.5 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.4...v0.0.5
342- [ 0.0.4 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.3...v0.0.4
343- [ 0.0.3 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.2...v0.0.3
344- [ 0.0.2 ] : https://github.com/trailofbits/pypi-attestation-models/compare/v0.0.1...v0.0.2
345- [ 0.0.1 ] : https://github.com/trailofbits/pypi-attestation-models/releases/tag/v0.0.1
330+ [ Unreleased ] : https://github.com/pypi/pypi-attestations/compare/v0.0.28...HEAD
331+ [ 0.0.28 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.27...v0.0.28
332+ [ 0.0.27 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.26...v0.0.27
333+ [ 0.0.26 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.25...v0.0.26
334+ [ 0.0.25 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.24...v0.0.25
335+ [ 0.0.24 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.23...v0.0.24
336+ [ 0.0.23 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.22...v0.0.23
337+ [ 0.0.22 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.21...v0.0.22
338+ [ 0.0.21 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.20...v0.0.21
339+ [ 0.0.20 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.19...v0.0.20
340+ [ 0.0.19 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.18...v0.0.19
341+ [ 0.0.18 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.17...v0.0.18
342+ [ 0.0.17 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.16...v0.0.17
343+ [ 0.0.16 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.15...v0.0.16
344+ [ 0.0.15 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.14...v0.0.15
345+ [ 0.0.14 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.13...v0.0.14
346+ [ 0.0.13 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.12...v0.0.13
347+ [ 0.0.12 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.11...v0.0.12
348+ [ 0.0.11 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.10...v0.0.11
349+ [ 0.0.10 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.9...v0.0.10
350+ [ 0.0.9 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.8...v0.0.9
351+ [ 0.0.8 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.7...v0.0.8
352+ [ 0.0.7 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.6...v0.0.7
353+ [ 0.0.6 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.5...v0.0.6
354+ [ 0.0.5 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.4...v0.0.5
355+ [ 0.0.4 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.3...v0.0.4
356+ [ 0.0.3 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.2...v0.0.3
357+ [ 0.0.2 ] : https://github.com/pypi/pypi-attestations/compare/v0.0.1...v0.0.2
358+ [ 0.0.1 ] : https://github.com/pypi/pypi-attestations/releases/tag/v0.0.1
359+
0 commit comments