feat!: remove the :allow rule action

What does this MR do and why?

Removes :allow from Labkit::RateLimit's rule actions (KNOWN_ACTIONS is now %i[block log skip]).

:allow was a terminating allow that still evaluated the limiter, so it paid a Redis EVALSHA per matched request for counters nobody read. The :skip action (added in 2.7.0, !326 (merged)) covers the bypass use case without any Redis operation, and gitlab-org/gitlab!244168 (merged) migrated the only consumer's rules off :allow. Nothing uses it any more; removing it prevents new exclusion rules from silently paying per-request Redis writes on the capacity-constrained rate-limiting cluster.

:allow is unchanged as a result action: under-limit matches, :skip matches, unmatched fall-through, and fail-open results still report Result#action == :allow, and the calls_total metric still emits action="allow" for counted allows.

Breaking change (major bump via feat!): constructing a Rule with action: :allow now raises ArgumentError.

Merge request reports

Loading
Loading