Skip to content

Avoid auth-sanitizer top-level namespaces#360

Merged
pboling merged 6 commits into
mainfrom
fix/top-level-namespace-pollution
May 21, 2026
Merged

Avoid auth-sanitizer top-level namespaces#360
pboling merged 6 commits into
mainfrom
fix/top-level-namespace-pollution

Conversation

@pboling
Copy link
Copy Markdown
Member

@pboling pboling commented May 20, 2026

Summary

  • load auth-sanitizer through an isolated internal loader
  • keep sanitizer integration under the OAuth namespace
  • prevent requiring oauth from adding top-level Auth or AuthSanitizer constants

Testing

  • bundle exec rspec spec/oauth/auth_sanitizer_spec.rb spec/oauth/token_spec.rb spec/oauth/consumer_spec.rb spec/oauth/signature/base_spec.rb

Copilot AI review requested due to automatic review settings May 20, 2026 19:36
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR changes how the auth-sanitizer dependency is loaded so require "oauth" no longer introduces top-level Auth / AuthSanitizer constants, keeping the sanitizer integration contained within the OAuth namespace.

Changes:

  • Introduces OAuth::AUTH_SANITIZER via an internal isolated loader and updates OAuth core classes to include OAuth::AUTH_SANITIZER::FilteredAttributes.
  • Adds a spec to assert top-level constants are not defined after requiring oauth.
  • Bumps the auth-sanitizer dependency to >= 0.1.3 and updates the gem version/lockfile accordingly.

Reviewed changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
spec/oauth/auth_sanitizer_spec.rb Adds regression coverage to ensure Auth / AuthSanitizer don’t leak into the top-level namespace and verifies mixins are present.
sig/oauth/tokens/token.rbs Updates signatures to include OAuth::AUTH_SANITIZER::FilteredAttributes.
sig/oauth/signature/base.rbs Updates signatures to include OAuth::AUTH_SANITIZER::FilteredAttributes.
sig/oauth/consumer.rbs Updates signatures to include OAuth::AUTH_SANITIZER::FilteredAttributes.
oauth.gemspec Bumps auth-sanitizer dependency minimum version to 0.1.3.
lib/oauth/version.rb Bumps gem version to 1.1.5.
lib/oauth/tokens/token.rb Switches redaction mixin reference to OAuth::AUTH_SANITIZER::FilteredAttributes.
lib/oauth/signature/base.rb Switches redaction mixin reference to OAuth::AUTH_SANITIZER::FilteredAttributes.
lib/oauth/consumer.rb Switches redaction mixin reference to OAuth::AUTH_SANITIZER::FilteredAttributes.
lib/oauth/auth_sanitizer.rb Adds isolated loader that loads auth-sanitizer without defining top-level constants.
lib/oauth.rb Replaces direct auth/sanitizer require with internal loader require.
Gemfile.lock Updates locked versions for oauth + auth-sanitizer.
CHANGELOG.md Documents the isolation change under Unreleased.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/oauth/version.rb
@pboling pboling merged commit 5ec937e into main May 21, 2026
31 checks passed
@pboling pboling deleted the fix/top-level-namespace-pollution branch May 21, 2026 00:25
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.

3 participants