Bump github.com/onsi/ginkgo/v2 from 2.26.0 to 2.27.2 in /kagenti-webhook#11
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.26.0 to 2.27.2. - [Release notes](https://github.com/onsi/ginkgo/releases) - [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md) - [Commits](onsi/ginkgo@v2.26.0...v2.27.2) --- updated-dependencies: - dependency-name: github.com/onsi/ginkgo/v2 dependency-version: 2.27.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
Contributor
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
dependabot
Bot
deleted the
dependabot/go_modules/kagenti-webhook/github.com/onsi/ginkgo/v2-2.27.2
branch
November 19, 2025 20:00
huang195
added a commit
to huang195/kagenti-extensions
that referenced
this pull request
May 7, 2026
Must-fix: - rossoctl#1+rossoctl#7: Plugins spawned credential watchers with initCtx (60s), so a slow client-registration orphaned the plugin after Start's deadline and OnRequest returned 503 for the pod's lifetime. Watchers now run on process-lifetime contexts created in Init via context.Background() + context.WithCancel; the cancel func is stored on the plugin and fired in Shutdown. Both JWTValidation and TokenExchange now implement pipeline.Shutdowner. Removed the orphaned context.WithCancel at main.go:89 that looked like it was meant to be that context. - rossoctl#2: testutil.go moved out of the plugins package into a dedicated sub-package authlib/plugins/plugintesting/ so it can't be imported by the production binary. Rewrote the helpers as stub plugin adapters that mimic jwt-validation / token-exchange OnRequest but don't touch plugin internals — listener tests inject an *auth.Auth via plugintesting.NewJWTValidation / NewTokenExchange, wire through plugintesting.BuildPipeline, and never see the real Configure path. All four listener tests updated. - rossoctl#11: Removed identity sub-validation that applyDefaults made unreachable; class-of-error compensated by logging a boot-time WARN when Configure's best-effort ReadCredentialFile fails (see also rossoctl#12). Suggestions: - rossoctl#3: pollCredentials no longer mutates p.cfg. Reads credential values into locals and feeds them through auth.UpdateIdentity. cfg is now immutable after Configure returns. Added a buildClientAuthFrom helper that takes explicit args so the goroutine doesn't read p.cfg either. - rossoctl#4: Rewrote the NoTokenPolicy doc comment to state the current behavior ("deny in all modes; operators who need allow or client-credentials must set it explicitly") instead of referring to the removed config.NoTokenPolicyForMode. - rossoctl#5: Deleted unused DefaultInboundPlugins/DefaultOutboundPlugins and the whole defaults.go file. Fixed the stale PipelineConfig docstring in config.go that said "defaults kick in when pipeline section is omitted" — they don't. - rossoctl#6: PluginEntry.UnmarshalYAML normalizes explicit `config: null` (and any other !!null-tagged scalar under `config:`) to a nil RawMessage, so Build's "plugin does not accept configuration" gate doesn't fire spuriously on the four bytes "null". - rossoctl#12: Deleted unreachable validate() branches: static-mode's audience emptiness check, spiffe's missing-path check, client-secret's missing-id / missing-secret checks. applyDefaults fills the matching field in every case; the branches were dead code that obscured what the plugin actually validated. Nits: - rossoctl#8: Renamed TestPluginEntry_IDDefaultsToName → TestPluginEntry_IDOmittedStaysEmpty. - rossoctl#9: TestBuild_ConfigForNonConfigurablePlugin now asserts the error text contains "does not accept configuration" — operator-facing contract. - rossoctl#10: Renamed TestConfigurable_ErrorAborts → TestConfigurable_ErrorPropagates and noted in the comment that Build-level abort coverage lives in plugins_test.go. - rossoctl#13: Documented on jwtValidationConfig.AudienceFile that empty- string is treated as "unset" and triggers the default. Operators who want no file backing must supply an explicit Audience. - rossoctl#14: Added TestAuthbridgeCombinedYAML_Loads — parses the in-repo authbridge-combined.yaml with env vars set, asserts both inbound and outbound pipelines Build cleanly. A future rename of any default constant that the YAML relies on breaks this test in CI rather than silently shipping a broken image. Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Hai Huang <huang195@gmail.com>
huang195
added a commit
to huang195/kagenti-extensions
that referenced
this pull request
May 7, 2026
Must-fix: - rossoctl#1+rossoctl#7: Plugins spawned credential watchers with initCtx (60s), so a slow client-registration orphaned the plugin after Start's deadline and OnRequest returned 503 for the pod's lifetime. Watchers now run on process-lifetime contexts created in Init via context.Background() + context.WithCancel; the cancel func is stored on the plugin and fired in Shutdown. Both JWTValidation and TokenExchange now implement pipeline.Shutdowner. Removed the orphaned context.WithCancel at main.go:89 that looked like it was meant to be that context. - rossoctl#2: testutil.go moved out of the plugins package into a dedicated sub-package authlib/plugins/plugintesting/ so it can't be imported by the production binary. Rewrote the helpers as stub plugin adapters that mimic jwt-validation / token-exchange OnRequest but don't touch plugin internals — listener tests inject an *auth.Auth via plugintesting.NewJWTValidation / NewTokenExchange, wire through plugintesting.BuildPipeline, and never see the real Configure path. All four listener tests updated. - rossoctl#11: Removed identity sub-validation that applyDefaults made unreachable; class-of-error compensated by logging a boot-time WARN when Configure's best-effort ReadCredentialFile fails (see also rossoctl#12). Suggestions: - rossoctl#3: pollCredentials no longer mutates p.cfg. Reads credential values into locals and feeds them through auth.UpdateIdentity. cfg is now immutable after Configure returns. Added a buildClientAuthFrom helper that takes explicit args so the goroutine doesn't read p.cfg either. - rossoctl#4: Rewrote the NoTokenPolicy doc comment to state the current behavior ("deny in all modes; operators who need allow or client-credentials must set it explicitly") instead of referring to the removed config.NoTokenPolicyForMode. - rossoctl#5: Deleted unused DefaultInboundPlugins/DefaultOutboundPlugins and the whole defaults.go file. Fixed the stale PipelineConfig docstring in config.go that said "defaults kick in when pipeline section is omitted" — they don't. - rossoctl#6: PluginEntry.UnmarshalYAML normalizes explicit `config: null` (and any other !!null-tagged scalar under `config:`) to a nil RawMessage, so Build's "plugin does not accept configuration" gate doesn't fire spuriously on the four bytes "null". - rossoctl#12: Deleted unreachable validate() branches: static-mode's audience emptiness check, spiffe's missing-path check, client-secret's missing-id / missing-secret checks. applyDefaults fills the matching field in every case; the branches were dead code that obscured what the plugin actually validated. Nits: - rossoctl#8: Renamed TestPluginEntry_IDDefaultsToName → TestPluginEntry_IDOmittedStaysEmpty. - rossoctl#9: TestBuild_ConfigForNonConfigurablePlugin now asserts the error text contains "does not accept configuration" — operator-facing contract. - rossoctl#10: Renamed TestConfigurable_ErrorAborts → TestConfigurable_ErrorPropagates and noted in the comment that Build-level abort coverage lives in plugins_test.go. - rossoctl#13: Documented on jwtValidationConfig.AudienceFile that empty- string is treated as "unset" and triggers the default. Operators who want no file backing must supply an explicit Audience. - rossoctl#14: Added TestAuthbridgeCombinedYAML_Loads — parses the in-repo authbridge-combined.yaml with env vars set, asserts both inbound and outbound pipelines Build cleanly. A future rename of any default constant that the YAML relies on breaks this test in CI rather than silently shipping a broken image. Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Hai Huang <huang195@gmail.com>
kellyaa
added a commit
to kellyaa/kagenti-extensions
that referenced
this pull request
Jun 12, 2026
Adds construction-time guards, audit logging, and tests asked for in the PR rossoctl#500 review. Skiphost matcher (authlib/listener/skiphost): - Reject match-all patterns ("*", "**", whitespace-only) at New() so a single misconfigured entry cannot silently disable the entire outbound enforcement pipeline. Mirrors the bypass-pattern guard added to ibac in rossoctl#496. Empirically verified: under .-delimited glob "*" matches every single-label hostname (which is how every short Kubernetes service name reaches the listener), and "**" is the unambiguous match-all. Patterns like "*.svc.cluster.local" or "*.*" are NOT match-all and remain accepted. - Reject patterns containing ":" so an operator typo like "otel-collector:8335" fails fast at startup rather than silently never matching (Match strips the port from the incoming host before comparing, so colon-bearing patterns would never fire). - Add MatchPattern(host) (string, bool) so listeners can attribute audit logs / counters to the specific raw operator-supplied pattern that fired. Match() is now a thin wrapper around it for callers that only want the boolean. Listener skip-path audit logging: - Each successful skip in extproc (handleOutbound, handleOutboundBody) and forwardproxy (handleRequest, handleConnect) now emits a structured slog INFO line carrying host, matched pattern, and method/path. Without this trail, a successful self-exemption left no trace anywhere -- no session event, no plugin invocation -- because that is exactly what skip means. Trust-model documentation (authlib/config/config.go): - ListenerConfig.SkipHosts godoc now spells out that the matched value is agent-influenceable on the ext_proc and HTTP-forward paths (Envoy :authority / r.Host header) and only safe-by- construction on the CONNECT-tunnel path. Operators should not list a host they would want IBAC / token-exchange to deny on. Hard-guard reminder (authlib/listener/forwardproxy/transparent.go): - HandleTransparentConn (proxy-sidecar enforce-redirect mode) intentionally does NOT consult SkipHosts. Add a paragraph to its godoc stating the omission is deliberate so a future maintainer does not "fix the inconsistency" by adding a skip keyed on the agent-controlled SNI/Host bytes and open a real bypass of the hard egress guard. Tests: - New TestForwardProxy_SkipHosts_MatchesAgainstHostHeaderNotURL locks the trust-model contract for the HTTP forward path: the skip keys on the agent-supplied Host header, not on r.URL.Host. - New TestForwardProxy_SkipHosts_CONNECT_BypassesPipeline exercises the previously-uncovered CONNECT skip path end-to-end. - New TestNew_RejectsMatchAllStar / RejectsMatchAllDoubleStar / RejectsWhitespaceOnly / RejectsPortInPattern lock the construction- time guards, plus TestNew_AcceptsLeadingStar guards against a future rewrite that over-rejects and breaks operator-typical FQDN patterns. CLAUDE.md gotcha rossoctl#11: - Narrow the LastIntent() wording: the pin protects against FIFO eviction only; expired or deleted sessions can still return nil. Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Kelly Abuelsaad <kaymar@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps github.com/onsi/ginkgo/v2 from 2.26.0 to 2.27.2.
Release notes
Sourced from github.com/onsi/ginkgo/v2's releases.
Changelog
Sourced from github.com/onsi/ginkgo/v2's changelog.
Commits
9a84c21v2.27.2a69113ainline automaxprocs to simplify dependencies; this will be removed when Go 1....a99c6e0Fix syntax errors and typof993df5Fix paragraph position error56cb393v2.27.12ce3f13reporters: add enhanced bounds checking in emitTimeline to prevent slice panicacf208aAdding check for malformed date51090a8Updating after docs run606c1cbFix Ginkgo Reporter slice-bounds panica6463b3Bug Fix: Add GinkoTBWrapper.Attr() and GinkoTBWrapper.Output()Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)