Add pkg/auth package with OIDCClient skeleton for OpenID Connect (ADR-0028 Phase B prep).\n\nNew files:\n- pkg/auth/oidc.go: OIDCClient struct with discovery/JWKS caching, NewOIDCClient constructor, Discovery/TokenResponse/IDTokenClaims types, TODO skeleton methods (Discover, RefreshJWKS, ExchangeCode, ValidateIDToken)\n- pkg/auth/oidc_test.go: smoke test for NewOIDCClient\n\nAll methods are TODO placeholders - HTTP handlers wire-up happens in pkg/user/api/oidc_handler.go (Phase B.3).
Add pkg/auth package with OIDCClient skeleton for OpenID Connect (ADR-0028 Phase B prep).\n\nNew files:\n- pkg/auth/oidc.go: OIDCClient struct with discovery/JWKS caching, NewOIDCClient constructor, Discovery/TokenResponse/IDTokenClaims types, TODO skeleton methods (Discover, RefreshJWKS, ExchangeCode, ValidateIDToken)\n- pkg/auth/oidc_test.go: smoke test for NewOIDCClient\n\nAll methods are TODO placeholders - HTTP handlers wire-up happens in pkg/user/api/oidc_handler.go (Phase B.3).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Add pkg/auth package with OIDCClient skeleton for OpenID Connect (ADR-0028 Phase B prep).\n\nNew files:\n- pkg/auth/oidc.go: OIDCClient struct with discovery/JWKS caching, NewOIDCClient constructor, Discovery/TokenResponse/IDTokenClaims types, TODO skeleton methods (Discover, RefreshJWKS, ExchangeCode, ValidateIDToken)\n- pkg/auth/oidc_test.go: smoke test for NewOIDCClient\n\nAll methods are TODO placeholders - HTTP handlers wire-up happens in pkg/user/api/oidc_handler.go (Phase B.3).