Skip to content

Commit 95c86d0

Browse files
committed
fix: lazily create and cache OIDC Issuer for Kubernetes token support
Issuer was created eagerly in __init__, fetching OIDC discovery config. Kubernetes OIDC providers lack authorization_endpoint/token_endpoint, causing failures even when identity_token was provided directly. Now Issuer is lazily created and cached when OAuth flow is needed. Signed-off-by: SequeI <[email protected]>
1 parent 26b35a9 commit 95c86d0

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

src/model_signing/_signing/sign_sigstore.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,8 @@ def __init__(
126126
if not oidc_issuer:
127127
oidc_issuer = trust_config.signing_config.get_oidc_url()
128128

129-
self._issuer = sigstore_oidc.Issuer(oidc_issuer)
129+
self._oidc_issuer = oidc_issuer
130+
self._issuer: sigstore_oidc.Issuer | None = None
130131
self._signing_context = (
131132
sigstore_signer.SigningContext.from_trust_config(trust_config)
132133
)
@@ -153,6 +154,9 @@ def _get_identity_token(self) -> sigstore_oidc.IdentityToken:
153154
if token:
154155
return sigstore_oidc.IdentityToken(token, self._client_id)
155156

157+
if self._issuer is None:
158+
self._issuer = sigstore_oidc.Issuer(self._oidc_issuer)
159+
156160
return self._issuer.identity_token(
157161
force_oob=self._force_oob,
158162
client_id=self._client_id,

0 commit comments

Comments
 (0)