Skip to content

Bump amannn/action-semantic-pull-request from 5 to 6#8

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/amannn/action-semantic-pull-request-6
Closed

Bump amannn/action-semantic-pull-request from 5 to 6#8
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/amannn/action-semantic-pull-request-6

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 27, 2025

Copy link
Copy Markdown
Contributor

Bumps amannn/action-semantic-pull-request from 5 to 6.

Release notes

Sourced from amannn/action-semantic-pull-request's releases.

v6.0.0

6.0.0 (2025-08-13)

⚠ BREAKING CHANGES

  • Upgrade action to use Node.js 24 and ESM (#287)

Features

  • Upgrade action to use Node.js 24 and ESM (#287) (bc0c9a7)

v5.5.3

5.5.3 (2024-06-28)

Bug Fixes

v5.5.2

5.5.2 (2024-04-24)

Bug Fixes

v5.5.1

5.5.1 (2024-04-24)

Bug Fixes

v5.5.0

5.5.0 (2024-04-23)

Features

v5.4.0

5.4.0 (2023-11-03)

... (truncated)

Changelog

Sourced from amannn/action-semantic-pull-request's changelog.

5.3.0 (2023-09-25)

Features

5.2.0 (2023-03-16)

Features

5.1.0 (2023-02-10)

Features

  • Add regex support to scope and disallowScopes configuration (#226) (403a6f8)

5.0.2 (2022-10-17)

Bug Fixes

  • Upgrade @actions/core to avoid deprecation warnings (#208) (91f4126)

5.0.1 (2022-10-14)

Bug Fixes

  • Upgrade GitHub Action to use Node v16 (#207) (6282ee3)

5.0.0 (2022-10-11)

⚠ BREAKING CHANGES

  • Enum options need to be newline delimited (to allow whitespace within them) (#205)

Features

  • Enum options need to be newline delimited (to allow whitespace within them) (#205) (c906fe1)

4.6.0 (2022-09-26)

Features

... (truncated)

Commits
  • 48f2562 chore: Release 6.1.1 [skip ci]
  • 800da4c fix: Parse headerPatternCorrespondence properly (#295)
  • 677b895 test: Fix broken test
  • 24e6f01 ci: Fix permissions for tagger
  • 7f33ba7 chore: Release 6.1.0 [skip ci]
  • afa4edb fix: Remove trailing whitespace from "unknown release type" error message (#291)
  • a30288b feat: Support providing regexps for types (#292)
  • a46a7c8 build: Move Vitest to devDependencies (#290)
  • fdd4d3d chore: Release 6.0.1 [skip ci]
  • 58e4ab4 fix: Actually execute action (#289)
  • Additional commits viewable in compare view

Dependabot compatibility score

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 rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 5 to 6.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md)
- [Commits](amannn/action-semantic-pull-request@v5...v6)

---
updated-dependencies:
- dependency-name: amannn/action-semantic-pull-request
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github

dependabot Bot commented on behalf of github Oct 27, 2025

Copy link
Copy Markdown
Contributor Author

Labels

The following labels could not be found: dependencies, github-actions. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@cwiklik cwiklik closed this Nov 19, 2025
@dependabot @github

dependabot Bot commented on behalf of github Nov 19, 2025

Copy link
Copy Markdown
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 @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/github_actions/amannn/action-semantic-pull-request-6 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
Should-fix items from the comprehensive PR evaluation.

rossoctl#3 — WARN on NoTokenPolicy implicit default:
The pre-migration default for no_token_policy was mode-dependent
(envoy-sidecar=client-credentials, waypoint=allow, proxy-sidecar=deny).
The migration hardcodes "deny" for all modes. Waypoint operators whose
YAML doesn't explicitly set no_token_policy would silently start
denying outbound requests that previously allowed.

token-exchange.Configure now tracks whether NoTokenPolicy arrived
explicitly, and emits a WARN at boot when the default was used AND
default_policy is "exchange" (the configuration shape where the
behavior change is visible). The WARN names the three valid values
so operators can pin the behavior by adding one line to their YAML.

rossoctl#4 — /stats stub visibility:
The stat server returns empty counters because plugin-level stats
aggregation is a follow-up. Without any signal, operators curling
/stats see zeros and assume the service is broken. main.go now logs
a WARN at the same point where it constructs the stub Stats object,
explaining that /stats is a stub in this release but /config remains
accurate.

rossoctl#5 — Heartbeat during credential-file wait:
WaitForCredentialFile emitted one WARN at Configure time when a file
wasn't readable, then went silent. If the file never appeared
(typo'd path, missing volume mount), operators chased 503s instead
of seeing the wait in logs.

It now emits a WARN every 60s (overridable via the package-scope
heartbeatInterval, used from the test) while still waiting, carrying
the path and total wait duration. Loud enough to notice during an
operational incident, quiet enough to not drown out real signal. The
test asserts the heartbeat branch of the select is reachable without
panics.

rossoctl#7 — Stale CLAUDE.md credential-wait description:
The authbridge/CLAUDE.md gotcha bullet said "Authbridge waits up to
60s for [credential files]" — stale since the switch to indefinite
background polling. Rewrote to match the new behavior and point at
the heartbeat WARN as the diagnostic signal.

rossoctl#8 — Reorder token-exchange Configure to avoid partial cfg mutation:
Under the old ordering, p.cfg = c ran before clientAuth / router
construction. If either failed, p.cfg was already set even though
Configure returned an error. Since Configure errors take the process
down today, this didn't manifest, but it was sloppy state management
and a foot-gun for any future call path that Configure from
non-startup contexts.

Rewrote Configure to build clientAuth, router, and authCfg against
the local `c` before any assignment to p.* fields. buildClientAuth
and buildRouter methods removed; replaced with the pure
buildClientAuthFrom and new buildRouterFrom functions that take
explicit args. pollCredentials already used buildClientAuthFrom, so
the migration is additive.

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
rossoctl#1 atomic.Pointer for bgCancel:
Both JWTValidation and TokenExchange now hold bgCancel in an
atomic.Pointer[context.CancelFunc] rather than a plain field. Today's
callers (pipeline.Start / pipeline.Stop) are serialized so there's no
actual race, but a future caller invoking Shutdown from a different
goroutine would have been latent-racing the Init assignment. Shutdown
uses Swap(nil) so it's also idempotent.

-race passes clean on pipeline, plugins, config packages.

rossoctl#2 Widen NoTokenPolicy WARN:
Previously only fired when default_policy was "exchange". That missed
envoy-sidecar deployers relying on the old client-credentials default
for routed hosts. WARN now fires whenever no_token_policy was
defaulted, with the message listing all three pre-PR mode-specific
defaults so operators can see which one their deployment used to get.

rossoctl#3 audience_file WARN mentions defaulted origin:
When audience_file was defaulted to /shared/client-id.txt (Kagenti
convention) and the file isn't readable, the new WARN spells that
out — so non-Kagenti deployers notice their config didn't put the
plugin where it thinks it is. Explicit-path case keeps the shorter
original message.

rossoctl#4 Drop client_id from credential-loaded log:
OAuth spec treats client_id as non-secret, but some operators treat
it as sensitive. The signal (credentials loaded) doesn't need the
identifier.

rossoctl#5 TODO markers for /stats and Ready():
Grep-able TODO(follow-up) comments at the stub sites in main.go with
sketch notes for the future work. These sit next to the existing
behavior comments so anyone reading those surfaces finds the
follow-up plan.

rossoctl#6 Pipeline.Start failure unwind:
On Init error at plugin N, Start now calls Shutdown on plugins
[0..N-1] in reverse order before returning the error. Prevents leaking
goroutines spawned by earlier plugins' Init when a downstream peer
rejects its config at boot. Not a correctness bug for production
(log.Fatalf then exit, kernel cleans up) but matters for any embedded
or multi-tenant caller.

New test TestPipelineStart_UnwindsSuccessfulInitsOnFailure asserts
the reverse-order Shutdown on the subset that Init'd, and that plugins
after the failing one are neither Init'd nor Shutdown'd.

rossoctl#8 Document strictness asymmetry in CONVENTIONS.md:
Plugin config is strict (DisallowUnknownFields); top-level runtime
YAML is forgiving (unknown keys silently dropped). Note explains the
forward-compat rationale and points at config.Validate's
empty-pipeline guard as the mechanism that closes the obvious
stale-schema gap.

rossoctl#7 is procedural (kind smoke test) — not in code.

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>
huang195 added a commit to huang195/kagenti-extensions that referenced this pull request May 7, 2026
Should-fix items from the comprehensive PR evaluation.

rossoctl#3 — WARN on NoTokenPolicy implicit default:
The pre-migration default for no_token_policy was mode-dependent
(envoy-sidecar=client-credentials, waypoint=allow, proxy-sidecar=deny).
The migration hardcodes "deny" for all modes. Waypoint operators whose
YAML doesn't explicitly set no_token_policy would silently start
denying outbound requests that previously allowed.

token-exchange.Configure now tracks whether NoTokenPolicy arrived
explicitly, and emits a WARN at boot when the default was used AND
default_policy is "exchange" (the configuration shape where the
behavior change is visible). The WARN names the three valid values
so operators can pin the behavior by adding one line to their YAML.

rossoctl#4 — /stats stub visibility:
The stat server returns empty counters because plugin-level stats
aggregation is a follow-up. Without any signal, operators curling
/stats see zeros and assume the service is broken. main.go now logs
a WARN at the same point where it constructs the stub Stats object,
explaining that /stats is a stub in this release but /config remains
accurate.

rossoctl#5 — Heartbeat during credential-file wait:
WaitForCredentialFile emitted one WARN at Configure time when a file
wasn't readable, then went silent. If the file never appeared
(typo'd path, missing volume mount), operators chased 503s instead
of seeing the wait in logs.

It now emits a WARN every 60s (overridable via the package-scope
heartbeatInterval, used from the test) while still waiting, carrying
the path and total wait duration. Loud enough to notice during an
operational incident, quiet enough to not drown out real signal. The
test asserts the heartbeat branch of the select is reachable without
panics.

rossoctl#7 — Stale CLAUDE.md credential-wait description:
The authbridge/CLAUDE.md gotcha bullet said "Authbridge waits up to
60s for [credential files]" — stale since the switch to indefinite
background polling. Rewrote to match the new behavior and point at
the heartbeat WARN as the diagnostic signal.

rossoctl#8 — Reorder token-exchange Configure to avoid partial cfg mutation:
Under the old ordering, p.cfg = c ran before clientAuth / router
construction. If either failed, p.cfg was already set even though
Configure returned an error. Since Configure errors take the process
down today, this didn't manifest, but it was sloppy state management
and a foot-gun for any future call path that Configure from
non-startup contexts.

Rewrote Configure to build clientAuth, router, and authCfg against
the local `c` before any assignment to p.* fields. buildClientAuth
and buildRouter methods removed; replaced with the pure
buildClientAuthFrom and new buildRouterFrom functions that take
explicit args. pollCredentials already used buildClientAuthFrom, so
the migration is additive.

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
rossoctl#1 atomic.Pointer for bgCancel:
Both JWTValidation and TokenExchange now hold bgCancel in an
atomic.Pointer[context.CancelFunc] rather than a plain field. Today's
callers (pipeline.Start / pipeline.Stop) are serialized so there's no
actual race, but a future caller invoking Shutdown from a different
goroutine would have been latent-racing the Init assignment. Shutdown
uses Swap(nil) so it's also idempotent.

-race passes clean on pipeline, plugins, config packages.

rossoctl#2 Widen NoTokenPolicy WARN:
Previously only fired when default_policy was "exchange". That missed
envoy-sidecar deployers relying on the old client-credentials default
for routed hosts. WARN now fires whenever no_token_policy was
defaulted, with the message listing all three pre-PR mode-specific
defaults so operators can see which one their deployment used to get.

rossoctl#3 audience_file WARN mentions defaulted origin:
When audience_file was defaulted to /shared/client-id.txt (Kagenti
convention) and the file isn't readable, the new WARN spells that
out — so non-Kagenti deployers notice their config didn't put the
plugin where it thinks it is. Explicit-path case keeps the shorter
original message.

rossoctl#4 Drop client_id from credential-loaded log:
OAuth spec treats client_id as non-secret, but some operators treat
it as sensitive. The signal (credentials loaded) doesn't need the
identifier.

rossoctl#5 TODO markers for /stats and Ready():
Grep-able TODO(follow-up) comments at the stub sites in main.go with
sketch notes for the future work. These sit next to the existing
behavior comments so anyone reading those surfaces finds the
follow-up plan.

rossoctl#6 Pipeline.Start failure unwind:
On Init error at plugin N, Start now calls Shutdown on plugins
[0..N-1] in reverse order before returning the error. Prevents leaking
goroutines spawned by earlier plugins' Init when a downstream peer
rejects its config at boot. Not a correctness bug for production
(log.Fatalf then exit, kernel cleans up) but matters for any embedded
or multi-tenant caller.

New test TestPipelineStart_UnwindsSuccessfulInitsOnFailure asserts
the reverse-order Shutdown on the subset that Init'd, and that plugins
after the failing one are neither Init'd nor Shutdown'd.

rossoctl#8 Document strictness asymmetry in CONVENTIONS.md:
Plugin config is strict (DisallowUnknownFields); top-level runtime
YAML is forgiving (unknown keys silently dropped). Note explains the
forward-compat rationale and points at config.Validate's
empty-pipeline guard as the mechanism that closes the obvious
stale-schema gap.

rossoctl#7 is procedural (kind smoke test) — not in code.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: Hai Huang <huang195@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant