sshkit 1.23.1 → 1.24.0

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: 8af10c24f9ba9204b96596dbdebafc11e685870643ef910926f834d793758b57
4
- data.tar.gz: 862c58e68660bbb27206e478db3f1946fde1a3a6f5165413329b50b154208aed
3
+ metadata.gz: 931b99f3ed7bae2c98d4d6e5b48ad8f2261c4ccfca373d75fab75de03d49b656
4
+ data.tar.gz: '09096adfadec79a68a91477f5de116847d2a6baa6f36ea9faab13e41dae4fc66'
5
5
  SHA512:
6
- metadata.gz: 5d8b5501b9465a66d34f7b21833b4da59c41a2a27b10f895f530082fee9b93181a8cb95af8d05c14b76a4681870ef38627a90fb2d2f70b117c1ab3732636d4a4
7
- data.tar.gz: c68f53bf25284db54f8ff4becc67b74440196b12b89fc6b143d9a8fb2583ebfd0584ed936a30711634bf4bf38b85cdf33a1a69b41aa73712996e6d7bd36dc786
6
+ metadata.gz: 9cb179c93ff215fed59c2f2c38dca664886af6f8b39376f7f1ed72bfb9a675d6c6a7616b519c165a83cd8e9356f15301e7a656b0045ab65f6faaf971176a8748
7
+ data.tar.gz: 22c231cdb7622ba13ceac3c6def0178dee92b2d3e75b71038f3e5415e9e2d5bf0c2e7f1dd48005b7a2fdcf65d8787ea83788a5531d781b8e76314b3f7d596a86
@@ -8,34 +8,7 @@ jobs:
8
8
  runs-on: ubuntu-latest
9
9
  strategy:
10
10
  matrix:
11
- ruby:
12
- [
13
- "2.3",
14
- "2.4",
15
- "2.5",
16
- "2.6",
17
- "2.7",
18
- "3.0",
19
- "3.1",
20
- "3.2",
21
- "3.3",
22
- "head",
23
- ]
24
- steps:
25
- - uses: actions/checkout@v4
26
- - name: Set up Ruby
27
- uses: ruby/setup-ruby@v1
28
- with:
29
- ruby-version: ${{ matrix.ruby }}
30
- bundler-cache: true
31
- - name: Run tests
32
- run: bundle exec rake test:units
33
-
34
- test-legacy:
35
- runs-on: ubuntu-20.04
36
- strategy:
37
- matrix:
38
- ruby: ["2.0", "2.1", "2.2"]
11
+ ruby: ["2.5", "2.6", "2.7", "3.0", "3.1", "3.2", "3.3", "3.4", "head"]
39
12
  steps:
40
13
  - uses: actions/checkout@v4
41
14
  - name: Set up Ruby
@@ -45,10 +18,12 @@ jobs:
45
18
  bundler-cache: true
46
19
  - name: Run tests
47
20
  run: bundle exec rake test:units
21
+ env:
22
+ RUBYOPT: ${{ startsWith(matrix.ruby, 'head') && '--enable=frozen-string-literal' || '' }}
48
23
 
49
24
  test-all:
50
25
  runs-on: ubuntu-latest
51
- needs: [test, test-legacy]
26
+ needs: test
52
27
  if: always()
53
28
  steps:
54
29
  - name: All tests ok
@@ -74,7 +49,7 @@ jobs:
74
49
  runs-on: ubuntu-latest
75
50
  strategy:
76
51
  matrix:
77
- ruby: ["2.0", "ruby"]
52
+ ruby: ["2.5", "ruby"]
78
53
  steps:
79
54
  - uses: actions/checkout@v4
80
55
  - name: Set up Ruby
@@ -7,6 +7,6 @@ jobs:
7
7
  steps:
8
8
  - uses: actions/checkout@master
9
9
  - name: Draft Release
10
- uses: toolmantim/release-drafter@v6.0.0
10
+ uses: toolmantim/release-drafter@v6.1.0
11
11
  env:
12
12
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
data/.rubocop.yml CHANGED
@@ -3,7 +3,7 @@ inherit_from: .rubocop_todo.yml
3
3
  AllCops:
4
4
  DisplayCopNames: true
5
5
  DisplayStyleGuide: true
6
- TargetRubyVersion: 2.0
6
+ TargetRubyVersion: 2.5
7
7
 
8
8
  Lint/AmbiguousBlockAssociation:
9
9
  Enabled: false
@@ -18,12 +18,12 @@ Style/ClassAndModuleChildren:
18
18
  Enabled: false
19
19
  Style/DoubleNegation:
20
20
  Enabled: false
21
- Style/FileName:
21
+ Naming/FileName:
22
22
  Exclude:
23
23
  - "Dangerfile"
24
- Style/IndentHeredoc:
24
+ Layout/IndentHeredoc:
25
25
  Enabled: false
26
- Style/SpaceAroundEqualsInParameterDefault:
26
+ Layout/SpaceAroundEqualsInParameterDefault:
27
27
  EnforcedStyle: no_space
28
28
  Style/StringLiterals:
29
29
  EnforcedStyle: double_quotes
@@ -47,7 +47,7 @@ Metrics/CyclomaticComplexity:
47
47
  Enabled: false
48
48
  Metrics/MethodLength:
49
49
  Enabled: false
50
- Style/PredicateName:
50
+ Naming/PredicateName:
51
51
  Enabled: false
52
52
  Metrics/LineLength:
53
53
  Enabled: false
@@ -59,5 +59,5 @@ Metrics/ClassLength:
59
59
  Enabled: false
60
60
  Metrics/ModuleLength:
61
61
  Enabled: false
62
- Style/AccessorMethodName:
62
+ Naming/AccessorMethodName:
63
63
  Enabled: false
data/.rubocop_todo.yml CHANGED
@@ -439,7 +439,7 @@ Style/MethodDefParentheses:
439
439
  # Offense count: 3
440
440
  # Configuration parameters: SupportedStyles.
441
441
  # SupportedStyles: snake_case, camelCase
442
- Style/MethodName:
442
+ Naming/MethodName:
443
443
  EnforcedStyle: snake_case
444
444
  Exclude:
445
445
  - 'test/unit/test_color.rb'
@@ -460,7 +460,7 @@ Style/NumericPredicate:
460
460
  - 'lib/sshkit/command.rb'
461
461
 
462
462
  # Offense count: 1
463
- Style/OpMethod:
463
+ Naming/BinaryOperatorParameterName:
464
464
  Exclude:
465
465
  - 'lib/sshkit/host.rb'
466
466
 
@@ -611,7 +611,7 @@ Style/UnneededPercentQ:
611
611
  # Offense count: 1
612
612
  # Configuration parameters: EnforcedStyle, SupportedStyles.
613
613
  # SupportedStyles: snake_case, normalcase, non_integer
614
- Style/VariableNumber:
614
+ Naming/VariableNumber:
615
615
  Exclude:
616
616
  - 'test/unit/backends/test_connection_pool.rb'
617
617
 
data/Gemfile CHANGED
@@ -1,8 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
-
5
- # public_suffix 3+ requires ruby 2.1+
6
- if Gem::Requirement.new('< 2.1').satisfied_by?(Gem::Version.new(RUBY_VERSION))
7
- gem 'public_suffix', '< 3'
8
- end
data/RELEASING.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  * You must have commit rights to the SSHKit repository.
6
6
  * You must have push rights for the sshkit gem on rubygems.org.
7
- * You must be using Ruby >= 2.1.0.
7
+ * You must be using Ruby >= 2.5.0.
8
8
 
9
9
  ## How to release
10
10
 
@@ -135,8 +135,7 @@ module SSHKit
135
135
  # Backends which extend the Abstract backend should implement the following methods:
136
136
  def upload!(_local, _remote, _options = {}) raise MethodUnavailableError end
137
137
  def download!(_remote, _local=nil, _options = {}) raise MethodUnavailableError end
138
- def execute_command(_cmd) raise MethodUnavailableError end
139
- private :execute_command # Can inline after Ruby 2.1
138
+ private def execute_command(_cmd) raise MethodUnavailableError end
140
139
 
141
140
  private
142
141
 
@@ -1,5 +1,4 @@
1
1
  require "monitor"
2
- require "thread"
3
2
 
4
3
  # Since we call to_s on new connection arguments and use that as a cache key, we
5
4
  # need to make sure the memory address of the object is not used as part of the
data/lib/sshkit/color.rb CHANGED
@@ -44,8 +44,8 @@ module SSHKit
44
44
  return string unless COLOR_CODES.key?(color)
45
45
 
46
46
  result = mode == :bold ? "\e[1;" : "\e[0;"
47
- result << COLOR_CODES.fetch(color).to_s
48
- result << ";49m#{string}\e[0m"
47
+
48
+ "#{result}#{COLOR_CODES.fetch(color)};49m#{string}\e[0m"
49
49
  end
50
50
 
51
51
  # Returns `true` if the underlying output is a tty, or if the SSHKIT_COLOR
@@ -1,5 +1,3 @@
1
- require 'thread'
2
-
3
1
  module SSHKit
4
2
 
5
3
  module Runner
@@ -1,3 +1,3 @@
1
1
  module SSHKit
2
- VERSION = "1.23.1".freeze
2
+ VERSION = "1.24.0".freeze
3
3
  end
data/sshkit.gemspec CHANGED
@@ -19,19 +19,20 @@ Gem::Specification.new do |gem|
19
19
  gem.name = "sshkit"
20
20
  gem.require_paths = ["lib"]
21
21
  gem.version = SSHKit::VERSION
22
+ gem.required_ruby_version = ">= 2.5"
22
23
 
23
- gem.add_runtime_dependency('base64') if RUBY_VERSION >= "2.4"
24
+ gem.add_runtime_dependency('base64')
25
+ gem.add_runtime_dependency('logger')
24
26
  gem.add_runtime_dependency('net-ssh', '>= 2.8.0')
25
27
  gem.add_runtime_dependency('net-scp', '>= 1.1.2')
26
28
  gem.add_runtime_dependency('net-sftp', '>= 2.1.2')
27
- gem.add_runtime_dependency('ostruct') if RUBY_VERSION >= "2.5"
29
+ gem.add_runtime_dependency('ostruct')
28
30
 
29
31
  gem.add_development_dependency('danger')
30
32
  gem.add_development_dependency('minitest', '>= 5.0.0')
31
33
  gem.add_development_dependency('minitest-reporters')
32
- gem.add_development_dependency('rainbow', '~> 2.2.2')
33
34
  gem.add_development_dependency('rake')
34
- gem.add_development_dependency('rubocop', "~> 0.49.1")
35
+ gem.add_development_dependency('rubocop', "~> 0.52.0")
35
36
  gem.add_development_dependency('mocha')
36
37
 
37
38
  gem.add_development_dependency('bcrypt_pbkdf')
@@ -131,7 +131,7 @@ module SSHKit
131
131
 
132
132
  def test_test_does_not_raise_on_non_zero_exit_status
133
133
  Netssh.new(a_host) do |_host|
134
- test :false
134
+ test :false # rubocop:disable Lint/BooleanSymbol
135
135
  end.run
136
136
  end
137
137
 
@@ -151,7 +151,7 @@ module SSHKit
151
151
  # ensure we enable connection pool
152
152
  SSHKit::Backend::Netssh.pool.idle_timeout = 10
153
153
  Netssh.new(a_host) do |_host|
154
- test :false
154
+ test :false # rubocop:disable Lint/BooleanSymbol
155
155
  end.run
156
156
  sleep 2.5
157
157
  captured_command_result = nil
@@ -112,7 +112,7 @@ module SSHKit
112
112
  end
113
113
 
114
114
  def test_background_logs_deprecation_warnings
115
- deprecation_out = ''
115
+ deprecation_out = +''
116
116
  SSHKit.config.deprecation_output = deprecation_out
117
117
 
118
118
  ExampleBackend.new do
@@ -211,7 +211,8 @@ module SSHKit
211
211
  end
212
212
 
213
213
  def test_deprecated_stdtream_accessors
214
- deprecation_out = ''
214
+ deprecation_out = +''
215
+
215
216
  SSHKit.config.deprecation_output = deprecation_out
216
217
 
217
218
  c = Command.new(:whoami)
@@ -11,7 +11,8 @@ module SSHKit
11
11
  end
12
12
 
13
13
  def test_deprecation_output
14
- output = ''
14
+ output = +''
15
+
15
16
  SSHKit.config.deprecation_output = output
16
17
  SSHKit.config.deprecation_logger.log('Test')
17
18
  assert_equal "[Deprecated] Test\n", output.lines.first
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sshkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.23.1
4
+ version: 1.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lee Hambley
8
8
  - Tom Clements
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2024-09-05 00:00:00.000000000 Z
11
+ date: 2025-02-09 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: base64
@@ -25,6 +24,20 @@ dependencies:
25
24
  - - ">="
26
25
  - !ruby/object:Gem::Version
27
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: logger
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
28
41
  - !ruby/object:Gem::Dependency
29
42
  name: net-ssh
30
43
  requirement: !ruby/object:Gem::Requirement
@@ -123,20 +136,6 @@ dependencies:
123
136
  - - ">="
124
137
  - !ruby/object:Gem::Version
125
138
  version: '0'
126
- - !ruby/object:Gem::Dependency
127
- name: rainbow
128
- requirement: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: 2.2.2
133
- type: :development
134
- prerelease: false
135
- version_requirements: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - "~>"
138
- - !ruby/object:Gem::Version
139
- version: 2.2.2
140
139
  - !ruby/object:Gem::Dependency
141
140
  name: rake
142
141
  requirement: !ruby/object:Gem::Requirement
@@ -157,14 +156,14 @@ dependencies:
157
156
  requirements:
158
157
  - - "~>"
159
158
  - !ruby/object:Gem::Version
160
- version: 0.49.1
159
+ version: 0.52.0
161
160
  type: :development
162
161
  prerelease: false
163
162
  version_requirements: !ruby/object:Gem::Requirement
164
163
  requirements:
165
164
  - - "~>"
166
165
  - !ruby/object:Gem::Version
167
- version: 0.49.1
166
+ version: 0.52.0
168
167
  - !ruby/object:Gem::Dependency
169
168
  name: mocha
170
169
  requirement: !ruby/object:Gem::Requirement
@@ -323,7 +322,6 @@ licenses:
323
322
  - MIT
324
323
  metadata:
325
324
  changelog_uri: https://github.com/capistrano/sshkit/releases
326
- post_install_message:
327
325
  rdoc_options: []
328
326
  require_paths:
329
327
  - lib
@@ -331,15 +329,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
331
329
  requirements:
332
330
  - - ">="
333
331
  - !ruby/object:Gem::Version
334
- version: '0'
332
+ version: '2.5'
335
333
  required_rubygems_version: !ruby/object:Gem::Requirement
336
334
  requirements:
337
335
  - - ">="
338
336
  - !ruby/object:Gem::Version
339
337
  version: '0'
340
338
  requirements: []
341
- rubygems_version: 3.5.16
342
- signing_key:
339
+ rubygems_version: 3.6.3
343
340
  specification_version: 4
344
341
  summary: SSHKit makes it easy to write structured, testable SSH commands in Ruby
345
342
  test_files: