oauth-tty 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 715ff09353a843901b1025d9161468934f75bebaf5ed1e9d99e87a7eabea05f0
4
- data.tar.gz: c9753c42ab67afd478a5f1981bef15f9d3960efd8de7dd0a80094dcdf796d0a2
3
+ metadata.gz: ddf468baedf5f9d67c7d894fb625a87d96c5f8618604e5d6ae0e0dd1541b61df
4
+ data.tar.gz: bcf96155a11aabb6f329cabf3f965296c4c98479b74f229df076fa5f756532e0
5
5
  SHA512:
6
- metadata.gz: 854af08782e9f4ca1c22c9502f24f644c8890a98c597c557ce034fc5a0885ebbf771c427df5f88e5232b556452ae27d49e0e65104722cb745d79ee9798c873ef
7
- data.tar.gz: 457e3960abe5d5f153dfd267b2a53a2376d84d430b0d9478e70b2a23c9fa8ac993e87eecb5e5df9444835de4fedb31bef181d2ef3cbb1f94c89cee4b2616e826
6
+ metadata.gz: eef1bd7af1bb544d05364ea553c4b41fef5d856d8284ff1b50f23c110cefe04ee335b1102ebaf7c606d218d83b6fb227789a912e33eb1b98e9c5a9bfaf9a3d98
7
+ data.tar.gz: 87b683834fa36d7357abaadeb6536b8196fd11ec4191d2dfbde3a9221bedb0ad882c316cb4135971dacb0f525759a9d763fc962da3c9d5397d733718af809854
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,22 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [1.0.7] - 2026-05-16
34
+
35
+ - TAG: [v1.0.7][1.0.7t]
36
+ - COVERAGE: 100.00% -- 305/305 lines in 10 files
37
+ - BRANCH COVERAGE: 96.55% -- 28/29 branches in 10 files
38
+ - 16.22% documented
39
+
40
+ ### Added
41
+
42
+ - Add inspect-time secret redaction for command option state through `auth-sanitizer` integration.
43
+ - Traditional OAuth::TTY::VERSION constant
44
+
45
+ ### Changed
46
+
47
+ - Redact the command options hash from `OAuth::TTY::Command#inspect` because it may contain credential-bearing CLI arguments.
48
+
33
49
  ## [1.0.6] - 2025-09-21
34
50
 
35
51
  - TAG: [v1.0.6][1.0.6t]
@@ -124,7 +140,9 @@ Please file a bug if you notice a violation of semantic versioning.
124
140
 
125
141
  - Initial release (@pboling)
126
142
 
127
- [Unreleased]: https://github.com/ruby-oauth/oauth-tty/compare/v1.0.6...HEAD
143
+ [Unreleased]: https://github.com/ruby-oauth/oauth-tty/compare/v1.0.7...HEAD
144
+ [1.0.7]: https://github.com/ruby-oauth/oauth-tty/compare/v1.0.6...v1.0.7
145
+ [1.0.7t]: https://github.com/ruby-oauth/oauth-tty/releases/tag/v1.0.7
128
146
  [1.0.6]: https://github.com/ruby-oauth/oauth-tty/compare/v1.0.5...v1.0.6
129
147
  [1.0.6t]: https://github.com/ruby-oauth/oauth-tty/releases/tag/v1.0.6
130
148
  [1.0.5]: https://gitlab.com/ruby-oauth/oauth-tty/-/compare/v1.0.4...v1.0.5
data/CITATION.cff CHANGED
File without changes
data/CODE_OF_CONDUCT.md CHANGED
File without changes
data/CONTRIBUTING.md CHANGED
File without changes
data/FUNDING.md CHANGED
File without changes
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2021-2022, 2025 Peter H. Boling, of Galtzo.com, and oauth2 contributors
3
+ Copyright (c) 2021-2022, 2025 Peter H. Boling, of Galtzo.com, and oauth-tty contributors
4
4
  Copyright (c) 2016-2017 Thiago Pinto
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
data/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  # 🖥️ OAuth::TTY
11
11
 
12
- [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license-ref] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![Open Source Helpers][👽oss-helpi]][👽oss-help] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Supported][🚎6-s-wfi]][🚎6-s-wf] [![CI Legacy][🚎4-lg-wfi]][🚎4-lg-wf] [![CI Unsupported][🚎7-us-wfi]][🚎7-us-wf] [![CI Ancient][🚎1-an-wfi]][🚎1-an-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
12
+ [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license-ref] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Supported][🚎6-s-wfi]][🚎6-s-wf] [![CI Legacy][🚎4-lg-wfi]][🚎4-lg-wf] [![CI Unsupported][🚎7-us-wfi]][🚎7-us-wf] [![CI Ancient][🚎1-an-wfi]][🚎1-an-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
13
13
 
14
14
  `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][🖼️galtzo-discord], as I may have missed the [discord notification][🖼️galtzo-discord].
15
15
 
@@ -572,8 +572,6 @@ Thanks for RTFM. ☺️
572
572
  [📜gh-wiki-img]: https://img.shields.io/badge/wiki-examples-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
573
573
  [👽dl-rank]: https://rubygems.org/gems/oauth-tty
574
574
  [👽dl-ranki]: https://img.shields.io/gem/rd/oauth-tty.svg
575
- [👽oss-help]: https://www.codetriage.com/ruby-oauth/oauth-tty
576
- [👽oss-helpi]: https://www.codetriage.com/ruby-oauth/oauth-tty/badges/users.svg
577
575
  [👽version]: https://rubygems.org/gems/oauth-tty
578
576
  [👽versioni]: https://img.shields.io/gem/v/oauth-tty.svg
579
577
  [🏀qlty-mnt]: https://qlty.sh/gh/ruby-oauth/projects/oauth-tty
@@ -664,7 +662,7 @@ Thanks for RTFM. ☺️
664
662
  [📌gitmoji]:https://gitmoji.dev
665
663
  [📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
666
664
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
667
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.296-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
665
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.305-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
668
666
  [🔐security]: SECURITY.md
669
667
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
670
668
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
data/REEK CHANGED
@@ -0,0 +1,2 @@
1
+ ./reek: 1: Error:: not found
2
+ ./reek: 2: Error:: not found
data/RUBOCOP.md CHANGED
File without changes
data/SECURITY.md CHANGED
@@ -12,6 +12,8 @@ To report a security vulnerability, please use the
12
12
  [Tidelift security contact](https://tidelift.com/security).
13
13
  Tidelift will coordinate the fix and disclosure.
14
14
 
15
+ More detailed explanation of the process is in [IRP.md][IRP].
16
+
15
17
  ## Additional Support
16
18
 
17
19
  If you are interested in support for versions older than the latest release,
@@ -19,3 +21,4 @@ please consider sponsoring the project / maintainer @ https://liberapay.com/pbol
19
21
  or find other sponsorship links in the [README].
20
22
 
21
23
  [README]: README.md
24
+ [IRP]: IRP.md
data/lib/oauth/tty/cli.rb CHANGED
@@ -3,8 +3,10 @@
3
3
  module OAuth
4
4
  module TTY
5
5
  class CLI
6
- def self.puts_red(string)
7
- puts "\033[0;91m#{string}\033[0m"
6
+ class << self
7
+ def puts_red(string)
8
+ puts "\033[0;91m#{string}\033[0m"
9
+ end
8
10
  end
9
11
 
10
12
  ALIASES = {
@@ -2,7 +2,18 @@
2
2
 
3
3
  module OAuth
4
4
  module TTY
5
+ # Base class for oauth-tty commands.
6
+ #
7
+ # Includes {Auth::Sanitizer::FilteredAttributes} so inspect output redacts
8
+ # the accumulated command options hash, which may contain consumer or token
9
+ # secrets read from CLI flags or option files.
5
10
  class Command
11
+ include Auth::Sanitizer::FilteredAttributes
12
+
13
+ # Redact parser-related state from inspect output because it can include
14
+ # credential-bearing CLI arguments and parser internals that retain them.
15
+ filtered_attributes :options, :option_parser
16
+
6
17
  def initialize(stdout, stdin, stderr, arguments)
7
18
  @stdout = stdout
8
19
  @stdin = stdin
@@ -12,6 +23,17 @@ module OAuth
12
23
  option_parser.parse!(arguments)
13
24
  end
14
25
 
26
+ def inspect
27
+ format(
28
+ "#<%<klass>s:0x%<object_id>x @stdout=%<stdout>s, @stdin=%<stdin>s, @stderr=%<stderr>s, @options=[FILTERED], @option_parser=[FILTERED]>",
29
+ klass: self.class,
30
+ object_id: object_id,
31
+ stdout: @stdout.inspect,
32
+ stdin: @stdin.inspect,
33
+ stderr: @stderr.inspect,
34
+ )
35
+ end
36
+
15
37
  def run
16
38
  missing = required_options - options.keys
17
39
  if missing.empty?
@@ -26,10 +48,12 @@ module OAuth
26
48
  []
27
49
  end
28
50
 
29
- protected
51
+ private
30
52
 
31
53
  attr_reader :options
32
54
 
55
+ protected
56
+
33
57
  def show_missing(array)
34
58
  array = array.map { |s| "--#{s}" }.join(" ")
35
59
  OAuth::TTY::CLI.puts_red("Options missing to OAuth CLI: #{array}")
File without changes
File without changes
File without changes
File without changes
@@ -3,7 +3,8 @@
3
3
  module OAuth
4
4
  module TTY
5
5
  module Version
6
- VERSION = "1.0.6"
6
+ VERSION = "1.0.7"
7
7
  end
8
+ VERSION = Version::VERSION # Traditional Constant Location
8
9
  end
9
10
  end
data/lib/oauth/tty.rb CHANGED
@@ -1,9 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # stdlib
4
+ require "cgi"
4
5
  require "optparse"
5
6
 
6
7
  # external gems
8
+ require "auth/sanitizer"
7
9
  require "version_gem"
8
10
 
9
11
  # For initial release as a standalone gem, this gem must not declare oauth as a dependency,
@@ -0,0 +1,15 @@
1
+ module OAuth
2
+ module TTY
3
+ class Command
4
+ include Auth::Sanitizer::FilteredAttributes
5
+
6
+ def initialize: (untyped stdout, untyped stdin, untyped stderr, untyped arguments) -> void
7
+ def run: () -> untyped
8
+ def required_options: () -> Array[untyped]
9
+
10
+ private
11
+
12
+ attr_reader options: untyped
13
+ end
14
+ end
15
+ end
@@ -4,5 +4,6 @@ module OAuth
4
4
  VERSION: String
5
5
  # See the writing guide of rbs: https://github.com/ruby/rbs#guides
6
6
  end
7
+ VERSION: String
7
8
  end
8
9
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth-tty
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thiago Pinto
@@ -38,6 +38,34 @@ cert_chain:
38
38
  -----END CERTIFICATE-----
39
39
  date: 1980-01-02 00:00:00.000000000 Z
40
40
  dependencies:
41
+ - !ruby/object:Gem::Dependency
42
+ name: cgi
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: auth-sanitizer
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.1'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.1'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: version_gem
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -152,16 +180,16 @@ dependencies:
152
180
  name: mocha
153
181
  requirement: !ruby/object:Gem::Requirement
154
182
  requirements:
155
- - - ">="
183
+ - - "~>"
156
184
  - !ruby/object:Gem::Version
157
- version: '0'
185
+ version: '3.0'
158
186
  type: :development
159
187
  prerelease: false
160
188
  version_requirements: !ruby/object:Gem::Requirement
161
189
  requirements:
162
- - - ">="
190
+ - - "~>"
163
191
  - !ruby/object:Gem::Version
164
- version: '0'
192
+ version: '3.0'
165
193
  - !ruby/object:Gem::Dependency
166
194
  name: rack
167
195
  requirement: !ruby/object:Gem::Requirement
@@ -180,30 +208,30 @@ dependencies:
180
208
  name: rack-test
181
209
  requirement: !ruby/object:Gem::Requirement
182
210
  requirements:
183
- - - ">="
211
+ - - "~>"
184
212
  - !ruby/object:Gem::Version
185
- version: '0'
213
+ version: '2.0'
186
214
  type: :development
187
215
  prerelease: false
188
216
  version_requirements: !ruby/object:Gem::Requirement
189
217
  requirements:
190
- - - ">="
218
+ - - "~>"
191
219
  - !ruby/object:Gem::Version
192
- version: '0'
220
+ version: '2.0'
193
221
  - !ruby/object:Gem::Dependency
194
222
  name: rest-client
195
223
  requirement: !ruby/object:Gem::Requirement
196
224
  requirements:
197
- - - ">="
225
+ - - "~>"
198
226
  - !ruby/object:Gem::Version
199
- version: '0'
227
+ version: '2.1'
200
228
  type: :development
201
229
  prerelease: false
202
230
  version_requirements: !ruby/object:Gem::Requirement
203
231
  requirements:
204
- - - ">="
232
+ - - "~>"
205
233
  - !ruby/object:Gem::Version
206
- version: '0'
234
+ version: '2.1'
207
235
  - !ruby/object:Gem::Dependency
208
236
  name: rspec-pending_for
209
237
  requirement: !ruby/object:Gem::Requirement
@@ -381,16 +409,17 @@ files:
381
409
  - lib/oauth/tty/commands/version_command.rb
382
410
  - lib/oauth/tty/version.rb
383
411
  - lib/oauth_tty.rb
412
+ - sig/oauth/tty/command.rbs
384
413
  - sig/oauth/tty/version.rbs
385
414
  homepage: https://github.com/ruby-oauth/oauth-tty
386
415
  licenses:
387
416
  - MIT
388
417
  metadata:
389
418
  homepage_uri: https://oauth-tty.galtzo.com/
390
- source_code_uri: https://github.com/ruby-oauth/oauth-tty/tree/v1.0.6
391
- changelog_uri: https://github.com/ruby-oauth/oauth-tty/blob/v1.0.6/CHANGELOG.md
419
+ source_code_uri: https://github.com/ruby-oauth/oauth-tty/tree/v1.0.7
420
+ changelog_uri: https://github.com/ruby-oauth/oauth-tty/blob/v1.0.7/CHANGELOG.md
392
421
  bug_tracker_uri: https://github.com/ruby-oauth/oauth-tty/issues
393
- documentation_uri: https://www.rubydoc.info/gems/oauth-tty/1.0.6
422
+ documentation_uri: https://www.rubydoc.info/gems/oauth-tty/1.0.7
394
423
  funding_uri: https://github.com/sponsors/pboling
395
424
  wiki_uri: https://github.com/ruby-oauth/oauth-tty/wiki
396
425
  news_uri: https://www.railsbling.com/tags/oauth-tty
@@ -420,7 +449,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
420
449
  - !ruby/object:Gem::Version
421
450
  version: '0'
422
451
  requirements: []
423
- rubygems_version: 3.7.2
452
+ rubygems_version: 4.0.11
424
453
  specification_version: 4
425
454
  summary: "\U0001F5A5️ OAuth 1.0 / 1.0a TTY CLI"
426
455
  test_files: []
metadata.gz.sig CHANGED
Binary file