bard 2.2.0 → 3.0.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.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -487
  3. data/Rakefile +1 -4
  4. data/bard.gemspec +2 -11
  5. data/lib/bard/config.rb +22 -20
  6. data/lib/bard/plugins/ping/target_methods.rb +0 -9
  7. data/lib/bard/plugins/ssh/connection.rb +2 -35
  8. data/lib/bard/target.rb +0 -15
  9. data/lib/bard/version.rb +1 -1
  10. data/lib/bard.rb +2 -1
  11. data/spec/bard/capability_spec.rb +0 -8
  12. data/spec/bard/config_spec.rb +30 -67
  13. data/spec/bard/target_spec.rb +1 -36
  14. metadata +4 -225
  15. data/ARCHITECTURE.md +0 -957
  16. data/CUSTOM_STRATEGIES.md +0 -701
  17. data/MIGRATION_GUIDE.md +0 -513
  18. data/PLUGINS.md +0 -99
  19. data/bin/bard +0 -4
  20. data/features/ci.feature +0 -63
  21. data/features/data.feature +0 -13
  22. data/features/deploy.feature +0 -14
  23. data/features/deploy_git_workflow.feature +0 -89
  24. data/features/run.feature +0 -14
  25. data/features/step_definitions/bard_steps.rb +0 -136
  26. data/features/support/bard-coverage +0 -16
  27. data/features/support/env.rb +0 -22
  28. data/features/support/test_server.rb +0 -216
  29. data/lib/bard/cli.rb +0 -44
  30. data/lib/bard/command.rb +0 -31
  31. data/lib/bard/copy.rb +0 -45
  32. data/lib/bard/plugins/data.rb +0 -56
  33. data/lib/bard/plugins/deploy/ci/github_actions.rb +0 -202
  34. data/lib/bard/plugins/deploy/ci/jenkins.rb +0 -176
  35. data/lib/bard/plugins/deploy/ci/local.rb +0 -57
  36. data/lib/bard/plugins/deploy/ci/runner.rb +0 -112
  37. data/lib/bard/plugins/deploy/ci/state.rb +0 -40
  38. data/lib/bard/plugins/deploy/ci.rb +0 -38
  39. data/lib/bard/plugins/deploy/ssh_strategy.rb +0 -26
  40. data/lib/bard/plugins/deploy/strategy.rb +0 -60
  41. data/lib/bard/plugins/deploy.rb +0 -260
  42. data/lib/bard/plugins/git.rb +0 -45
  43. data/lib/bard/plugins/github.rb +0 -152
  44. data/lib/bard/plugins/github_pages/strategy.rb +0 -170
  45. data/lib/bard/plugins/github_pages.rb +0 -35
  46. data/lib/bard/plugins/hurt.rb +0 -13
  47. data/lib/bard/plugins/install/.github/dependabot.yml +0 -18
  48. data/lib/bard/plugins/install/.github/workflows/cache-ci.yml +0 -15
  49. data/lib/bard/plugins/install/.github/workflows/ci.yml +0 -74
  50. data/lib/bard/plugins/install/apt_dependencies.rb +0 -33
  51. data/lib/bard/plugins/install/ci +0 -5
  52. data/lib/bard/plugins/install/setup +0 -13
  53. data/lib/bard/plugins/install/specified_bundler.rb +0 -15
  54. data/lib/bard/plugins/install/specified_ruby.rb +0 -59
  55. data/lib/bard/plugins/install.rb +0 -9
  56. data/lib/bard/plugins/open.rb +0 -20
  57. data/lib/bard/plugins/ping/check.rb +0 -66
  58. data/lib/bard/plugins/ping.rb +0 -10
  59. data/lib/bard/plugins/run.rb +0 -19
  60. data/lib/bard/plugins/setup.rb +0 -75
  61. data/lib/bard/plugins/ssh/copy.rb +0 -95
  62. data/lib/bard/plugins/ssh.rb +0 -10
  63. data/lib/bard/plugins/vim.rb +0 -6
  64. data/lib/bard/retryable.rb +0 -25
  65. data/lib/bard/secrets.rb +0 -10
  66. data/spec/acceptance/.gitignore +0 -4
  67. data/spec/acceptance/docker/Dockerfile +0 -36
  68. data/spec/acceptance/docker/test_key +0 -27
  69. data/spec/acceptance/docker/test_key.pub +0 -1
  70. data/spec/bard/ci/github_actions_spec.rb +0 -138
  71. data/spec/bard/ci/jenkins_spec.rb +0 -139
  72. data/spec/bard/ci/runner_spec.rb +0 -61
  73. data/spec/bard/ci_spec.rb +0 -10
  74. data/spec/bard/cli/ci_spec.rb +0 -170
  75. data/spec/bard/cli/data_spec.rb +0 -58
  76. data/spec/bard/cli/deploy_spec.rb +0 -243
  77. data/spec/bard/cli/hurt_spec.rb +0 -17
  78. data/spec/bard/cli/install_spec.rb +0 -19
  79. data/spec/bard/cli/master_key_spec.rb +0 -38
  80. data/spec/bard/cli/open_spec.rb +0 -51
  81. data/spec/bard/cli/ping_spec.rb +0 -32
  82. data/spec/bard/cli/run_spec.rb +0 -57
  83. data/spec/bard/cli/setup_spec.rb +0 -99
  84. data/spec/bard/cli/ssh_spec.rb +0 -40
  85. data/spec/bard/cli/stage_spec.rb +0 -127
  86. data/spec/bard/cli/vim_spec.rb +0 -28
  87. data/spec/bard/command_spec.rb +0 -30
  88. data/spec/bard/copy_spec.rb +0 -69
  89. data/spec/bard/deploy_strategy/github_pages_spec.rb +0 -58
  90. data/spec/bard/deploy_strategy/ssh_spec.rb +0 -135
  91. data/spec/bard/deploy_strategy_spec.rb +0 -107
  92. data/spec/bard/dynamic_dsl_spec.rb +0 -46
  93. data/spec/bard/git_spec.rb +0 -101
  94. data/spec/bard/github_spec.rb +0 -45
  95. data/spec/bard/ping_spec.rb +0 -60
  96. data/spec/bard/ssh_copy_spec.rb +0 -44
data/lib/bard/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Bard
2
- VERSION = "2.2.0"
2
+ VERSION = "3.0.0"
3
3
  end
4
4
 
data/lib/bard.rb CHANGED
@@ -1 +1,2 @@
1
- require "bard/cli"
1
+ require "bard/version"
2
+ require "bard/config"
@@ -44,12 +44,4 @@ describe "Capability System" do
44
44
  end
45
45
  end
46
46
 
47
- describe "capability dependency checking" do
48
- context "URL-dependent methods" do
49
- it "ping! requires url capability" do
50
- expect { target.ping! }
51
- .to raise_error(/url capability not configured/)
52
- end
53
- end
54
- end
55
47
  end
@@ -1,7 +1,7 @@
1
+ require "tmpdir"
2
+ require "fileutils"
1
3
  require "bard/config"
2
4
  require "bard/plugins/ssh/target_methods"
3
- require "bard/plugins/data"
4
- require "bard/plugins/github_pages"
5
5
 
6
6
  describe Bard::Config do
7
7
  describe ".detect_project_name" do
@@ -56,8 +56,8 @@ describe Bard::Config do
56
56
  end
57
57
 
58
58
  describe "#targets" do
59
- it "is prefilled with default targets" do
60
- expect(subject.targets.keys).to eq %i[local gubs ci staging production]
59
+ it "is prefilled with the generic local target" do
60
+ expect(subject.targets.keys).to eq %i[local]
61
61
  end
62
62
 
63
63
  it "creates Target instances for defaults" do
@@ -66,19 +66,6 @@ describe Bard::Config do
66
66
  end
67
67
  end
68
68
  end
69
-
70
- describe "#[]" do
71
- it "defines a default production target equivalent to staging" do
72
- expect(subject[:production]).to eq subject[:staging]
73
- expect(subject[:production]).not_to equal subject[:staging]
74
- end
75
- end
76
-
77
- describe "#data" do
78
- it "return an empty array" do
79
- expect(subject.data).to eq []
80
- end
81
- end
82
69
  end
83
70
 
84
71
  context "with production definition" do
@@ -87,8 +74,6 @@ describe Bard::Config do
87
74
  ssh "www@ssh.botandrose.com:22022"
88
75
  url "tracker.botandrose.com"
89
76
  end
90
-
91
- data "public/system", "public/ckeditor"
92
77
  SOURCE
93
78
 
94
79
  describe "#project_name" do
@@ -98,75 +83,53 @@ describe Bard::Config do
98
83
  end
99
84
 
100
85
  describe "#targets" do
101
- it "contains the defined target" do
102
- expect(subject.targets.keys).to eq %i[local gubs ci staging production]
86
+ it "contains the defined target alongside the local default" do
87
+ expect(subject.targets.keys).to eq %i[local production]
103
88
  end
104
89
  end
105
90
 
106
91
  describe "#target" do
107
- it "can overwrite existing definition" do
92
+ it "can define a target" do
108
93
  subject.target :staging do
109
94
  ssh "www@tracker-staging.botandrose.com:22022"
110
95
  end
111
96
  expect(subject[:staging].server.to_s).to eq "www@tracker-staging.botandrose.com:22022"
112
97
  end
113
98
  end
114
-
115
- describe "#data" do
116
- it "returns the data setting" do
117
- expect(subject.data).to eq ["public/system", "public/ckeditor"]
118
- end
119
- end
120
99
  end
121
100
 
122
- context "with remove_target" do
123
- subject { described_class.new("tracker", source: <<~SOURCE) }
124
- remove_target :staging
125
- target :staging do
126
- ssh "deploy@new-host.com"
127
- end
128
- SOURCE
101
+ describe "unknown DSL (plugin-contributed)" do
102
+ after { Bard::Config.strict = false }
129
103
 
130
- it "replaces the default with a fresh target" do
131
- staging = subject[:staging]
132
- expect(staging).to be_a(Bard::Target)
133
- expect(staging.ssh.to_s).to eq "deploy@new-host.com"
134
- expect(staging.url).to eq "https://new-host.com"
104
+ it "is tolerated as an attribute by default (server/test parsing)" do
105
+ config = described_class.new("tracker", source: <<~SOURCE)
106
+ ci :github_actions
107
+ data "public/system", "public/ckeditor"
108
+ SOURCE
109
+ expect(config.ci).to eq :github_actions
110
+ expect(config.data).to eq ["public/system", "public/ckeditor"]
135
111
  end
136
- end
137
112
 
138
- context "with github_pages directive" do
139
- subject { described_class.new("test", source: "github_pages 'example.com'") }
140
-
141
- describe "#target" do
142
- it "creates a production target with github_pages enabled" do
143
- production = subject[:production]
144
- expect(production).not_to be_nil
145
- expect(production.github_pages).to eq "example.com"
146
- expect(production.ssh).to be_nil
147
- end
113
+ it "raises in strict mode (CLI parsing) so typos surface" do
114
+ Bard::Config.strict = true
115
+ expect {
116
+ described_class.new("tracker", source: "typoed_directive :oops")
117
+ }.to raise_error(NoMethodError)
148
118
  end
149
119
  end
150
120
 
151
- context "with github_pages directive and no domain" do
152
- subject { described_class.new("test", source: "github_pages") }
153
-
154
- before do
155
- allow(Bard::Git).to receive(:github_pages_url).and_return("https://acme.github.io/widgets/")
156
- end
121
+ describe "#remove_target" do
122
+ subject { described_class.new("tracker") }
157
123
 
158
- describe "#target" do
159
- it "creates a production target with github_pages enabled and no custom domain" do
160
- production = subject[:production]
161
- expect(production).not_to be_nil
162
- expect(production.has_capability?(:github_pages)).to be true
163
- expect(production.github_pages).to be_nil
164
- expect(production.ssh).to be_nil
124
+ it "removes a defined target" do
125
+ subject.target :staging do
126
+ ssh "deploy@new-host.com"
165
127
  end
128
+ expect(subject[:staging].ssh.to_s).to eq "deploy@new-host.com"
129
+ expect(subject[:staging].url).to eq "https://new-host.com"
166
130
 
167
- it "uses the derived github.io url for pinging" do
168
- expect(subject[:production].url).to eq "https://acme.github.io/widgets/"
169
- end
131
+ subject.remove_target :staging
132
+ expect(subject[:staging]).to be_nil
170
133
  end
171
134
  end
172
135
  end
@@ -145,42 +145,7 @@ describe Bard::Target do
145
145
  end
146
146
  end
147
147
 
148
- describe "command execution" do
149
- describe "local (base)" do
150
- it "runs commands locally" do
151
- expect(Bard::Command).to receive(:run!)
152
- .with("ls", verbose: false, quiet: false)
153
- target.run!("ls")
154
- end
155
- end
156
-
157
- describe "remote (SSH)" do
158
- before do
159
- target.ssh("deploy@example.com:22", path: "/app")
160
- end
161
-
162
- it "runs commands on remote server" do
163
- expected_cmd = "ssh -tt -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR deploy@example.com #{Shellwords.shellescape("cd /app && ls")}"
164
- expect(Bard::Command).to receive(:run!)
165
- .with(expected_cmd, verbose: false, quiet: false)
166
- target.run!("ls")
167
- end
168
-
169
- it "runs commands without raising on remote server" do
170
- expected_cmd = "ssh -tt -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR deploy@example.com #{Shellwords.shellescape("cd /app && ls")}"
171
- expect(Bard::Command).to receive(:run)
172
- .with(expected_cmd, verbose: false, quiet: false)
173
- target.run("ls")
174
- end
175
-
176
- it "replaces process with remote command" do
177
- expected_cmd = "ssh -tt -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR deploy@example.com #{Shellwords.shellescape("cd /app && ls")}"
178
- expect(Bard::Command).to receive(:exec!)
179
- .with(expected_cmd)
180
- target.exec!("ls")
181
- end
182
- end
183
- end
148
+ # command execution (run!/run/exec!) lives in bard-cli now; covered by its target_spec.
184
149
 
185
150
  describe "#to_s" do
186
151
  it "returns the target key as string" do
metadata CHANGED
@@ -1,70 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bard
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-07-06 00:00:00.000000000 Z
10
+ date: 2026-07-09 00:00:00.000000000 Z
11
11
  dependencies:
12
- - !ruby/object:Gem::Dependency
13
- name: thor
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - ">="
17
- - !ruby/object:Gem::Version
18
- version: 0.19.0
19
- type: :runtime
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- version: 0.19.0
26
- - !ruby/object:Gem::Dependency
27
- name: rvm
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '0'
40
- - !ruby/object:Gem::Dependency
41
- name: rbnacl
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: '0'
47
- type: :runtime
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- - !ruby/object:Gem::Dependency
55
- name: base64
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '0'
68
12
  - !ruby/object:Gem::Dependency
69
13
  name: rake
70
14
  requirement: !ruby/object:Gem::Requirement
@@ -107,52 +51,9 @@ dependencies:
107
51
  - - ">="
108
52
  - !ruby/object:Gem::Version
109
53
  version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: cucumber
112
- requirement: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '0'
117
- type: :development
118
- prerelease: false
119
- version_requirements: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
- - !ruby/object:Gem::Dependency
125
- name: testcontainers
126
- requirement: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: '0'
131
- type: :development
132
- prerelease: false
133
- version_requirements: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: '0'
138
- - !ruby/object:Gem::Dependency
139
- name: ostruct
140
- requirement: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '0'
145
- type: :development
146
- prerelease: false
147
- version_requirements: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '0'
152
54
  email:
153
55
  - micah@botandrose.com
154
- executables:
155
- - bard
56
+ executables: []
156
57
  extensions: []
157
58
  extra_rdoc_files: []
158
59
  files:
@@ -160,108 +61,26 @@ files:
160
61
  - ".gitignore"
161
62
  - ".gitmodules"
162
63
  - ".rspec"
163
- - ARCHITECTURE.md
164
64
  - CLAUDE.md
165
- - CUSTOM_STRATEGIES.md
166
65
  - Gemfile
167
66
  - LICENSE
168
- - MIGRATION_GUIDE.md
169
- - PLUGINS.md
170
67
  - README.md
171
68
  - Rakefile
172
69
  - bard.gemspec
173
- - bin/bard
174
70
  - bin/setup
175
71
  - cucumber.yml
176
- - features/ci.feature
177
- - features/data.feature
178
- - features/deploy.feature
179
- - features/deploy_git_workflow.feature
180
- - features/run.feature
181
- - features/step_definitions/bard_steps.rb
182
- - features/support/bard-coverage
183
- - features/support/env.rb
184
- - features/support/test_server.rb
185
72
  - lib/bard.rb
186
- - lib/bard/cli.rb
187
- - lib/bard/command.rb
188
73
  - lib/bard/config.rb
189
- - lib/bard/copy.rb
190
- - lib/bard/plugins/data.rb
191
- - lib/bard/plugins/deploy.rb
192
- - lib/bard/plugins/deploy/ci.rb
193
- - lib/bard/plugins/deploy/ci/github_actions.rb
194
- - lib/bard/plugins/deploy/ci/jenkins.rb
195
- - lib/bard/plugins/deploy/ci/local.rb
196
- - lib/bard/plugins/deploy/ci/runner.rb
197
- - lib/bard/plugins/deploy/ci/state.rb
198
- - lib/bard/plugins/deploy/ssh_strategy.rb
199
- - lib/bard/plugins/deploy/strategy.rb
200
- - lib/bard/plugins/git.rb
201
- - lib/bard/plugins/github.rb
202
- - lib/bard/plugins/github_pages.rb
203
- - lib/bard/plugins/github_pages/strategy.rb
204
- - lib/bard/plugins/hurt.rb
205
- - lib/bard/plugins/install.rb
206
- - lib/bard/plugins/install/.github/dependabot.yml
207
- - lib/bard/plugins/install/.github/workflows/cache-ci.yml
208
- - lib/bard/plugins/install/.github/workflows/ci.yml
209
- - lib/bard/plugins/install/apt_dependencies.rb
210
- - lib/bard/plugins/install/ci
211
- - lib/bard/plugins/install/setup
212
- - lib/bard/plugins/install/specified_bundler.rb
213
- - lib/bard/plugins/install/specified_ruby.rb
214
- - lib/bard/plugins/open.rb
215
- - lib/bard/plugins/ping.rb
216
- - lib/bard/plugins/ping/check.rb
217
74
  - lib/bard/plugins/ping/target_methods.rb
218
- - lib/bard/plugins/run.rb
219
- - lib/bard/plugins/setup.rb
220
- - lib/bard/plugins/ssh.rb
221
75
  - lib/bard/plugins/ssh/connection.rb
222
- - lib/bard/plugins/ssh/copy.rb
223
76
  - lib/bard/plugins/ssh/server.rb
224
77
  - lib/bard/plugins/ssh/target_methods.rb
225
78
  - lib/bard/plugins/url.rb
226
79
  - lib/bard/plugins/url/target_methods.rb
227
- - lib/bard/plugins/vim.rb
228
- - lib/bard/retryable.rb
229
- - lib/bard/secrets.rb
230
80
  - lib/bard/target.rb
231
81
  - lib/bard/version.rb
232
- - spec/acceptance/.gitignore
233
- - spec/acceptance/docker/Dockerfile
234
- - spec/acceptance/docker/test_key
235
- - spec/acceptance/docker/test_key.pub
236
82
  - spec/bard/capability_spec.rb
237
- - spec/bard/ci/github_actions_spec.rb
238
- - spec/bard/ci/jenkins_spec.rb
239
- - spec/bard/ci/runner_spec.rb
240
- - spec/bard/ci_spec.rb
241
- - spec/bard/cli/ci_spec.rb
242
- - spec/bard/cli/data_spec.rb
243
- - spec/bard/cli/deploy_spec.rb
244
- - spec/bard/cli/hurt_spec.rb
245
- - spec/bard/cli/install_spec.rb
246
- - spec/bard/cli/master_key_spec.rb
247
- - spec/bard/cli/open_spec.rb
248
- - spec/bard/cli/ping_spec.rb
249
- - spec/bard/cli/run_spec.rb
250
- - spec/bard/cli/setup_spec.rb
251
- - spec/bard/cli/ssh_spec.rb
252
- - spec/bard/cli/stage_spec.rb
253
- - spec/bard/cli/vim_spec.rb
254
- - spec/bard/command_spec.rb
255
83
  - spec/bard/config_spec.rb
256
- - spec/bard/copy_spec.rb
257
- - spec/bard/deploy_strategy/github_pages_spec.rb
258
- - spec/bard/deploy_strategy/ssh_spec.rb
259
- - spec/bard/deploy_strategy_spec.rb
260
- - spec/bard/dynamic_dsl_spec.rb
261
- - spec/bard/git_spec.rb
262
- - spec/bard/github_spec.rb
263
- - spec/bard/ping_spec.rb
264
- - spec/bard/ssh_copy_spec.rb
265
84
  - spec/bard/ssh_server_spec.rb
266
85
  - spec/bard/target_spec.rb
267
86
  - spec/bard_spec.rb
@@ -288,50 +107,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
288
107
  requirements: []
289
108
  rubygems_version: 3.6.2
290
109
  specification_version: 4
291
- summary: CLI to automate common development tasks.
110
+ summary: Config core for bard.
292
111
  test_files:
293
- - features/ci.feature
294
- - features/data.feature
295
- - features/deploy.feature
296
- - features/deploy_git_workflow.feature
297
- - features/run.feature
298
- - features/step_definitions/bard_steps.rb
299
- - features/support/bard-coverage
300
- - features/support/env.rb
301
- - features/support/test_server.rb
302
- - spec/acceptance/.gitignore
303
- - spec/acceptance/docker/Dockerfile
304
- - spec/acceptance/docker/test_key
305
- - spec/acceptance/docker/test_key.pub
306
112
  - spec/bard/capability_spec.rb
307
- - spec/bard/ci/github_actions_spec.rb
308
- - spec/bard/ci/jenkins_spec.rb
309
- - spec/bard/ci/runner_spec.rb
310
- - spec/bard/ci_spec.rb
311
- - spec/bard/cli/ci_spec.rb
312
- - spec/bard/cli/data_spec.rb
313
- - spec/bard/cli/deploy_spec.rb
314
- - spec/bard/cli/hurt_spec.rb
315
- - spec/bard/cli/install_spec.rb
316
- - spec/bard/cli/master_key_spec.rb
317
- - spec/bard/cli/open_spec.rb
318
- - spec/bard/cli/ping_spec.rb
319
- - spec/bard/cli/run_spec.rb
320
- - spec/bard/cli/setup_spec.rb
321
- - spec/bard/cli/ssh_spec.rb
322
- - spec/bard/cli/stage_spec.rb
323
- - spec/bard/cli/vim_spec.rb
324
- - spec/bard/command_spec.rb
325
113
  - spec/bard/config_spec.rb
326
- - spec/bard/copy_spec.rb
327
- - spec/bard/deploy_strategy/github_pages_spec.rb
328
- - spec/bard/deploy_strategy/ssh_spec.rb
329
- - spec/bard/deploy_strategy_spec.rb
330
- - spec/bard/dynamic_dsl_spec.rb
331
- - spec/bard/git_spec.rb
332
- - spec/bard/github_spec.rb
333
- - spec/bard/ping_spec.rb
334
- - spec/bard/ssh_copy_spec.rb
335
114
  - spec/bard/ssh_server_spec.rb
336
115
  - spec/bard/target_spec.rb
337
116
  - spec/bard_spec.rb