Skip to content

Commit 7b0100b

Browse files
no trailing slash for post to /entries (#1366)
* no trailing slash for post to /entries * use f-strings * Update CHANGELOG.md Signed-off-by: Ramon Petgrave <[email protected]> Signed-off-by: William Woodruff <[email protected]> Co-authored-by: William Woodruff <[email protected]>
1 parent 93545ab commit 7b0100b

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ All versions prior to 0.9.0 are untracked.
88

99
## [Unreleased]
1010

11+
### Fixed
12+
13+
* API: Make Rekor APIs compatible with Rekor v2 by removing trailing slashes
14+
from endpoints ([#1366](https://github.com/sigstore/sigstore-python/pull/1366))
15+
1116
## [3.6.2]
1217

1318
### Fixed

sigstore/_internal/rekor/client.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
from abc import ABC
2424
from dataclasses import dataclass
2525
from typing import Any, Optional
26-
from urllib.parse import urljoin
2726

2827
import rekor_types
2928
import requests
@@ -112,7 +111,7 @@ def entries(self) -> RekorEntries:
112111
Returns a `RekorEntries` capable of accessing detailed information
113112
about individual log entries.
114113
"""
115-
return RekorEntries(urljoin(self.url, "entries/"), session=self.session)
114+
return RekorEntries(f"{self.url}/entries", session=self.session)
116115

117116

118117
class RekorEntries(_Endpoint):
@@ -134,7 +133,7 @@ def get(
134133
resp: requests.Response
135134

136135
if uuid is not None:
137-
resp = self.session.get(urljoin(self.url, uuid))
136+
resp = self.session.get(f"{self.url}/{uuid}")
138137
else:
139138
resp = self.session.get(self.url, params={"logIndex": log_index})
140139

@@ -170,9 +169,7 @@ def retrieve(self) -> RekorEntriesRetrieve:
170169
"""
171170
Returns a `RekorEntriesRetrieve` capable of retrieving entries.
172171
"""
173-
return RekorEntriesRetrieve(
174-
urljoin(self.url, "retrieve/"), session=self.session
175-
)
172+
return RekorEntriesRetrieve(f"{self.url}/retrieve/", session=self.session)
176173

177174

178175
class RekorEntriesRetrieve(_Endpoint):
@@ -226,7 +223,7 @@ def __init__(self, url: str) -> None:
226223
"""
227224
Create a new `RekorClient` from the given URL.
228225
"""
229-
self.url = urljoin(url, "api/v1/")
226+
self.url = f"{url}/api/v1"
230227
self.session = requests.Session()
231228
self.session.headers.update(
232229
{
@@ -263,4 +260,4 @@ def log(self) -> RekorLog:
263260
"""
264261
Returns a `RekorLog` adapter for making requests to a Rekor log.
265262
"""
266-
return RekorLog(urljoin(self.url, "log/"), session=self.session)
263+
return RekorLog(f"{self.url}/log", session=self.session)

sigstore/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -488,9 +488,9 @@ def _verify(self) -> None:
488488
# We expect some old bundles to violate the rules around root
489489
# and intermediate CAs, so we issue warnings and not hard errors
490490
# in those cases.
491-
leaf_cert, *chain_certs = [
491+
leaf_cert, *chain_certs = (
492492
load_der_x509_certificate(cert.raw_bytes) for cert in certs
493-
]
493+
)
494494
if not cert_is_leaf(leaf_cert):
495495
raise InvalidBundle(
496496
"bundle contains an invalid leaf or non-leaf certificate in the leaf position"

0 commit comments

Comments
 (0)