dpl 2.0.0.alpha.12 → 2.0.0.alpha.13

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
- SHA256:
3
- metadata.gz: f51b7dddefc86cab53a72809d3332b4d8941c3db8ff4ba495d37002c2e60d834
4
- data.tar.gz: 2a853f8d3aec5de09d14e944facd9411c5435ab1cca246eaa5c9013668f96cd0
2
+ SHA1:
3
+ metadata.gz: 4117990a1102ebe9620253fe64e0452b11378c24
4
+ data.tar.gz: 9bf46f45a17e1d69a71f4aa6eeed7ce3917d44ea
5
5
  SHA512:
6
- metadata.gz: a6704d442012947ec679fa815f481170e35071c12c251df05e714367f3577dae698f65d2eb84f1a26fc989601c31d3a00b51905bda623a9d20ff7fc31e7998b0
7
- data.tar.gz: e8d7fd036e3625f8ab0f729a315ae6666265f0b119ed2bd3286950665d7f17091395a114c8ebef8b8b8c148e6618c196e156345010c7a6c532eb5b4175ca2831
6
+ metadata.gz: 74ac9382b0cfcbba1390b73bd99e0bf6bc901ece27d780c4cc33f26c65969beba39e2e5bfad063d59c7da7d5436cebcaf52dfe6f4000b1e7e2d1141e1a5bd559
7
+ data.tar.gz: 183bc21601df7437398e28fff669d790ae9be50e9ee509fd7c20b59127ba4c563e917c09e1d39cfe720b2ef452cb00b7ac7908e2a4018d7f0b0875c74eff8617
data/Gemfile CHANGED
@@ -6,6 +6,7 @@ ruby '>= 2.2'
6
6
 
7
7
  gemspec name: 'dpl'
8
8
  # gem 'cl', path: '../../cl'
9
+ # gem 'regstry', path: '../../registry'
9
10
 
10
11
  gems = Dpl::Support::Gems.new('lib/dpl/providers/**/*.rb')
11
12
  gems.each do |name, version, opts|
@@ -0,0 +1,377 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ dpl (2.0.0.alpha.12)
5
+ cl (~> 1.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ addressable (2.7.0)
11
+ public_suffix (>= 2.0.2, < 5.0)
12
+ awesome_print (1.8.0)
13
+ aws-eventstream (1.0.3)
14
+ aws-partitions (1.203.0)
15
+ aws-sdk-cloudformation (1.25.0)
16
+ aws-sdk-core (~> 3, >= 3.61.1)
17
+ aws-sigv4 (~> 1.1)
18
+ aws-sdk-codedeploy (1.26.0)
19
+ aws-sdk-core (~> 3, >= 3.61.1)
20
+ aws-sigv4 (~> 1.1)
21
+ aws-sdk-core (3.64.0)
22
+ aws-eventstream (~> 1.0, >= 1.0.2)
23
+ aws-partitions (~> 1.0)
24
+ aws-sigv4 (~> 1.1)
25
+ jmespath (~> 1.0)
26
+ aws-sdk-elasticbeanstalk (1.25.0)
27
+ aws-sdk-core (~> 3, >= 3.61.1)
28
+ aws-sigv4 (~> 1.1)
29
+ aws-sdk-kms (1.24.0)
30
+ aws-sdk-core (~> 3, >= 3.61.1)
31
+ aws-sigv4 (~> 1.1)
32
+ aws-sdk-lambda (1.29.0)
33
+ aws-sdk-core (~> 3, >= 3.61.1)
34
+ aws-sigv4 (~> 1.1)
35
+ aws-sdk-opsworks (1.20.0)
36
+ aws-sdk-core (~> 3, >= 3.61.1)
37
+ aws-sigv4 (~> 1.1)
38
+ aws-sdk-s3 (1.46.0)
39
+ aws-sdk-core (~> 3, >= 3.61.1)
40
+ aws-sdk-kms (~> 1)
41
+ aws-sigv4 (~> 1.1)
42
+ aws-sigv4 (1.1.0)
43
+ aws-eventstream (~> 1.0, >= 1.0.2)
44
+ belafonte (0.5.0)
45
+ optionally
46
+ wrapomatic (~> 0.3)
47
+ builder (3.2.3)
48
+ chef (12.22.5)
49
+ addressable
50
+ bundler (>= 1.10)
51
+ chef-config (= 12.22.5)
52
+ chef-zero (>= 4.8, < 13)
53
+ diff-lcs (~> 1.2, >= 1.2.4)
54
+ erubis (~> 2.7)
55
+ ffi-yajl (~> 2.2)
56
+ highline (~> 1.6, >= 1.6.9)
57
+ iniparse (~> 1.4)
58
+ mixlib-archive (~> 0.4)
59
+ mixlib-authentication (~> 1.4)
60
+ mixlib-cli (~> 1.7)
61
+ mixlib-log (~> 1.3)
62
+ mixlib-shellout (~> 2.0)
63
+ net-sftp (~> 2.1, >= 2.1.2)
64
+ net-ssh (>= 2.9, < 5.0)
65
+ net-ssh-multi (~> 1.2, >= 1.2.1)
66
+ ohai (>= 8.6.0.alpha.1, < 13)
67
+ plist (~> 3.2)
68
+ proxifier (~> 1.0)
69
+ rspec-core (~> 3.5)
70
+ rspec-expectations (~> 3.5)
71
+ rspec-mocks (~> 3.5)
72
+ rspec_junit_formatter (~> 0.2.0)
73
+ serverspec (~> 2.7)
74
+ specinfra (~> 2.10)
75
+ syslog-logger (~> 1.6)
76
+ uuidtools (~> 2.1.5)
77
+ chef-config (12.22.5)
78
+ addressable
79
+ fuzzyurl
80
+ mixlib-config (~> 2.0)
81
+ mixlib-shellout (~> 2.0)
82
+ chef-zero (5.3.2)
83
+ ffi-yajl (~> 2.2)
84
+ hashie (>= 2.0, < 4.0)
85
+ mixlib-log (~> 1.3)
86
+ rack (~> 2.0)
87
+ uuidtools (~> 2.1)
88
+ cistern (0.12.3)
89
+ cl (1.2.1)
90
+ regstry (~> 1.0.3)
91
+ coderay (1.1.2)
92
+ colorize (0.8.1)
93
+ cookiejar (0.3.3)
94
+ coveralls (0.8.23)
95
+ json (>= 1.8, < 3)
96
+ simplecov (~> 0.16.1)
97
+ term-ansicolor (~> 1.3)
98
+ thor (>= 0.19.4, < 2.0)
99
+ tins (~> 1.6)
100
+ crack (0.4.3)
101
+ safe_yaml (~> 1.0.0)
102
+ diff-lcs (1.3)
103
+ docile (1.3.2)
104
+ domain_name (0.5.20190701)
105
+ unf (>= 0.0.5, < 1.0.0)
106
+ em-http-request (1.1.5)
107
+ addressable (>= 2.3.4)
108
+ cookiejar (!= 0.3.1)
109
+ em-socksify (>= 0.3)
110
+ eventmachine (>= 1.0.3)
111
+ http_parser.rb (>= 0.6.0)
112
+ em-socksify (0.3.2)
113
+ eventmachine (>= 1.0.0.beta.4)
114
+ erubis (2.7.0)
115
+ escape (0.0.4)
116
+ eventmachine (1.2.7)
117
+ excon (0.66.0)
118
+ ey-core (3.5.0)
119
+ addressable
120
+ awesome_print
121
+ belafonte
122
+ cistern (~> 0.12.3)
123
+ colorize
124
+ escape
125
+ ey-hmac (~> 2.0)
126
+ faraday (~> 0.9)
127
+ faraday_middleware (~> 0.9)
128
+ faye
129
+ highline
130
+ json (< 2.0)
131
+ mime-types
132
+ oj
133
+ oj_mimic_json
134
+ pry
135
+ rack
136
+ sshkey (~> 1.6)
137
+ table_print
138
+ ey-hmac (2.2.0)
139
+ facter (2.5.5)
140
+ faraday (0.9.2)
141
+ multipart-post (>= 1.2, < 3)
142
+ faraday_middleware (0.13.1)
143
+ faraday (>= 0.7.4, < 1.0)
144
+ fast_gettext (1.1.2)
145
+ faye (1.2.4)
146
+ cookiejar (>= 0.3.0)
147
+ em-http-request (>= 0.3.0)
148
+ eventmachine (>= 0.12.0)
149
+ faye-websocket (>= 0.9.1)
150
+ multi_json (>= 1.0.0)
151
+ rack (>= 1.0.0)
152
+ websocket-driver (>= 0.5.1)
153
+ faye-websocket (0.10.9)
154
+ eventmachine (>= 0.12.0)
155
+ websocket-driver (>= 0.5.1)
156
+ ffi (1.11.1)
157
+ ffi-yajl (2.3.1)
158
+ libyajl2 (~> 1.2)
159
+ fog-core (2.1.0)
160
+ builder
161
+ excon (~> 0.58)
162
+ formatador (~> 0.2)
163
+ mime-types
164
+ fog-json (1.2.0)
165
+ fog-core
166
+ multi_json (~> 1.10)
167
+ fog-rackspace (0.1.6)
168
+ fog-core (>= 1.35)
169
+ fog-json (>= 1.0)
170
+ fog-xml (>= 0.1)
171
+ ipaddress (>= 0.8)
172
+ fog-xml (0.1.3)
173
+ fog-core
174
+ nokogiri (>= 1.5.11, < 2.0.0)
175
+ formatador (0.2.5)
176
+ fuzzyurl (0.9.0)
177
+ gems (1.1.1)
178
+ json
179
+ gleis (0.6.2)
180
+ rest-client (~> 2.0.0)
181
+ thor (~> 0.20.0)
182
+ hashdiff (1.0.0)
183
+ hashie (3.6.0)
184
+ hiera (3.5.0)
185
+ highline (1.7.10)
186
+ http-cookie (1.0.3)
187
+ domain_name (~> 0.5)
188
+ http_parser.rb (0.6.0)
189
+ iniparse (1.4.4)
190
+ ipaddress (0.8.3)
191
+ jmespath (1.4.0)
192
+ json (1.8.6)
193
+ json_pure (1.8.6)
194
+ libyajl2 (1.2.0)
195
+ locale (2.1.2)
196
+ method_source (0.9.2)
197
+ mime (0.4.4)
198
+ mime-types (3.2.2)
199
+ mime-types-data (~> 3.2015)
200
+ mime-types-data (3.2019.0331)
201
+ mini_portile2 (2.4.0)
202
+ mixlib-archive (0.4.20)
203
+ mixlib-log
204
+ mixlib-authentication (1.4.2)
205
+ mixlib-cli (1.7.0)
206
+ mixlib-config (2.2.18)
207
+ tomlrb
208
+ mixlib-log (1.7.1)
209
+ mixlib-shellout (2.4.4)
210
+ multi_json (1.13.1)
211
+ multipart-post (2.0.0)
212
+ net-scp (2.0.0)
213
+ net-ssh (>= 2.6.5, < 6.0.0)
214
+ net-sftp (2.1.2)
215
+ net-ssh (>= 2.6.5)
216
+ net-ssh (4.2.0)
217
+ net-ssh-gateway (2.0.0)
218
+ net-ssh (>= 4.0.0)
219
+ net-ssh-multi (1.2.1)
220
+ net-ssh (>= 2.6.5)
221
+ net-ssh-gateway (>= 1.2.0)
222
+ net-telnet (0.1.1)
223
+ netrc (0.11.0)
224
+ nokogiri (1.9.1)
225
+ mini_portile2 (~> 2.4.0)
226
+ octokit (4.15.0)
227
+ faraday (>= 0.9)
228
+ sawyer (~> 0.8.0, >= 0.5.3)
229
+ ohai (8.26.1)
230
+ chef-config (>= 12.5.0.alpha.1, < 14)
231
+ ffi (~> 1.9)
232
+ ffi-yajl (~> 2.2)
233
+ ipaddress
234
+ mixlib-cli
235
+ mixlib-config (~> 2.0)
236
+ mixlib-log (>= 1.7.1, < 2.0)
237
+ mixlib-shellout (~> 2.0)
238
+ plist (~> 3.1)
239
+ systemu (~> 2.6.4)
240
+ wmi-lite (~> 1.0)
241
+ oj (3.9.0)
242
+ oj_mimic_json (1.0.1)
243
+ optionally (0.0.3)
244
+ packagecloud-ruby (1.0.8)
245
+ excon (~> 0.40)
246
+ json_pure (~> 1)
247
+ mime (~> 0.4)
248
+ multi_json (~> 1.0)
249
+ pathspec (0.2.1)
250
+ plist (3.5.0)
251
+ proxifier (1.0.3)
252
+ pry (0.12.2)
253
+ coderay (~> 1.1.0)
254
+ method_source (~> 0.9.0)
255
+ public_suffix (3.0.3)
256
+ puppet (5.5.16)
257
+ facter (> 2.0.1, < 4)
258
+ fast_gettext (~> 1.1.2)
259
+ hiera (>= 3.2.1, < 4)
260
+ locale (~> 2.1)
261
+ multi_json (~> 1.10)
262
+ puppet-blacksmith (3.3.1)
263
+ puppet (>= 2.7.16)
264
+ rest-client
265
+ rack (2.0.7)
266
+ rake (12.3.3)
267
+ regstry (1.0.15)
268
+ rendezvous (0.1.3)
269
+ rest-client (2.0.2)
270
+ http-cookie (>= 1.0.2, < 2.0)
271
+ mime-types (>= 1.16, < 4.0)
272
+ netrc (~> 0.8)
273
+ rspec (3.8.0)
274
+ rspec-core (~> 3.8.0)
275
+ rspec-expectations (~> 3.8.0)
276
+ rspec-mocks (~> 3.8.0)
277
+ rspec-core (3.8.2)
278
+ rspec-support (~> 3.8.0)
279
+ rspec-expectations (3.8.4)
280
+ diff-lcs (>= 1.2.0, < 2.0)
281
+ rspec-support (~> 3.8.0)
282
+ rspec-its (1.3.0)
283
+ rspec-core (>= 3.0.0)
284
+ rspec-expectations (>= 3.0.0)
285
+ rspec-mocks (3.8.1)
286
+ diff-lcs (>= 1.2.0, < 2.0)
287
+ rspec-support (~> 3.8.0)
288
+ rspec-support (3.8.2)
289
+ rspec_junit_formatter (0.2.3)
290
+ builder (< 4)
291
+ rspec-core (>= 2, < 4, != 2.12.0)
292
+ rubyzip (1.2.3)
293
+ safe_yaml (1.0.5)
294
+ sawyer (0.8.2)
295
+ addressable (>= 2.3.5)
296
+ faraday (> 0.8, < 2.0)
297
+ serverspec (2.41.5)
298
+ multi_json
299
+ rspec (~> 3.0)
300
+ rspec-its
301
+ specinfra (~> 2.72)
302
+ sfl (2.3)
303
+ simplecov (0.16.1)
304
+ docile (~> 1.1)
305
+ json (>= 1.8, < 3)
306
+ simplecov-html (~> 0.10.0)
307
+ simplecov-html (0.10.2)
308
+ specinfra (2.81.0)
309
+ net-scp
310
+ net-ssh (>= 2.7)
311
+ net-telnet (= 0.1.1)
312
+ sfl
313
+ sshkey (1.9.0)
314
+ syslog-logger (1.6.8)
315
+ systemu (2.6.5)
316
+ table_print (1.5.6)
317
+ term-ansicolor (1.7.1)
318
+ tins (~> 1.0)
319
+ thor (0.20.3)
320
+ tins (1.21.1)
321
+ tomlrb (1.2.8)
322
+ unf (0.1.4)
323
+ unf_ext
324
+ unf_ext (0.0.7.6)
325
+ uuidtools (2.1.5)
326
+ webmock (3.6.2)
327
+ addressable (>= 2.3.6)
328
+ crack (>= 0.3.2)
329
+ hashdiff (>= 0.4.0, < 2.0.0)
330
+ websocket-driver (0.7.1)
331
+ websocket-extensions (>= 0.1.0)
332
+ websocket-extensions (0.1.4)
333
+ wmi-lite (1.0.2)
334
+ wrapomatic (0.3.0)
335
+
336
+ PLATFORMS
337
+ ruby
338
+
339
+ DEPENDENCIES
340
+ aws-sdk-cloudformation (~> 1.0)
341
+ aws-sdk-codedeploy (~> 1.0)
342
+ aws-sdk-elasticbeanstalk (~> 1.0)
343
+ aws-sdk-lambda (~> 1.0)
344
+ aws-sdk-opsworks (~> 1.0)
345
+ aws-sdk-s3 (~> 1.0)
346
+ chef (~> 12.0)
347
+ coveralls
348
+ dpl!
349
+ ey-core (~> 3.5)
350
+ faraday (~> 0.9.2)
351
+ fog-core (= 2.1.0)
352
+ fog-rackspace (~> 0.1.6)
353
+ gems (~> 1.1.1)
354
+ gleis (~> 0.6.0)
355
+ json
356
+ mime-types (~> 3.2.2)
357
+ multipart-post (~> 2.0.0)
358
+ netrc (~> 0.11.0)
359
+ nokogiri (< 1.10)
360
+ octokit (~> 4.15.0)
361
+ packagecloud-ruby (~> 1.0.8)
362
+ pathspec (~> 0.2.1)
363
+ public_suffix (~> 3.0.3)
364
+ puppet (~> 5.5.14)
365
+ puppet-blacksmith (~> 3.3.1)
366
+ rack
367
+ rake (~> 12.3)
368
+ rendezvous (~> 0.1.3)
369
+ rspec
370
+ rubyzip (~> 1.2.2)
371
+ webmock
372
+
373
+ RUBY VERSION
374
+ ruby 2.4.1p111
375
+
376
+ BUNDLED WITH
377
+ 2.0.2
@@ -0,0 +1,197 @@
1
+ x add `opts required: [:api_key, [:user, :password]]`
2
+ x add opt '--foo', requires: :other
3
+ x add opt '--foo', alias: :other
4
+ x add opt '--foo', format: /.+/
5
+ x add opt '--foo', deprecated: true
6
+ x add opt '--foo', alias: :other, deprecated: :other
7
+ x add opt '--foo', max: 10, type: :integer
8
+ x add opt '--foo', enum: ['one', 'two']
9
+ x consider automatically adding `[no-]` to booleans
10
+ x make it so that Cl::Cmd parses the args, not Runner. only that way sub cmd specific opts can sit on the sub command
11
+ x cleanup and move matchers
12
+ x add lookup and interpolation to assert
13
+ x revisit using MSGS and CMDS everywhere
14
+ x add something like :keep for automatically moving things out of the way before cleanup
15
+ x make specs validate that cmds have run in the correct order
16
+ x revisit what's up with `needs_key`
17
+ x revisit what's up with `git_http_user_agent false`
18
+ x revisit the run stages in Provider
19
+ x implement folds
20
+ x port on-demand installation of sub gems
21
+ x make MSGS etc class methods, so they can inherit from base classes (for Heroku)
22
+ x move sub cmd opts etc to sub classes for Heroku
23
+ x look into using FakeFS, MemFS sucks
24
+ x make a list of strategies/tools providers use
25
+ x revisit which providers need an ssh key, git, etc.
26
+ x should have run in order matcher does not work
27
+ x write bin/readme
28
+ x test Cl against all Ruby versions >= 2.0
29
+ x test Ctx
30
+ x go through all providers, remove fakefs, use chdir 'tmp/dpl'
31
+ x make sure all provider fs write operations go through ctx
32
+ x what is `options[:no_deploy]` for? (it's for testing. added it back as `--stages`)
33
+ x make sure dasherized options are accepted and normalized
34
+ x add opt internal: true to Cl
35
+ x write comments on the most important classes, so we can generate some api docs
36
+ x install gems with sudo if Process::UID.eid is 0
37
+ x document Provider.env
38
+ x add retry to Ctx#script
39
+ x try installing all gems at once
40
+ x run apt-get update before apt-get install, once
41
+ x make sure failed dependency installation fails the command
42
+ x fix dependency installation for various providers
43
+ x look into making `--app` and `--key_name` attr readers, rather than options
44
+ x make it so that options are being overwritten if specified by both base and sub classes
45
+ x test that `bin/dpl --stage install` runs as expected for various providers
46
+ x on Travis CI add a stage that tests `bin/dpl --stage install` for various providers on various ruby versions
47
+ x try using bundler/inline for gem dependencies
48
+ x write a proper readme for Cl
49
+ x add yard docs to Cl
50
+ x autogenerate examples
51
+ x update .github/CONTRIBUTING.md
52
+ x consider adding `note: 'some comment` to Cl opts (e.g. see Lambda tracing mode)
53
+ x bundle/inline seems to pick up an existing Gemfile.lock (which might be incompatible)
54
+ x figure out how to deal with python tooling on non-python images etc (just die for now)
55
+ x unit test netlfiy
56
+ x move ./.dpl to ~/.dpl (clutters the working dir)
57
+ x add a DSL for adding paths to PATH, e.g. gcs
58
+ x make sure all error messages are actually being displayed
59
+ x remove the fold for finishing the deployment, it's confusing. Maybe do not fold the deployment itself? or somehow keep the last fold open if there is an error?
60
+ x BitBalloon is now Netlify Drop https://app.netlify.com/drop. time to rename it?
61
+ x make `--skip_cleanup` the default
62
+ x make sure all main shell scripts use assert: true, echo: true
63
+ x make sure all asserts have an err msg (can we test this?), or add a generic error message
64
+ x add secure: true, in order to tell Cl to filter log output for a given option
65
+ x refactor Provider by splitting out a Cmd class for shell commands
66
+ x document Cmd methods
67
+ x revisit README and CONTRIBUTING
68
+ x Make sure failed deployments always fail the build starting with dpl 2.0
69
+ x PR sf-datapipeline
70
+ x add a DSL for moving files out of the way, and moving them back later, e.g. gcs /etc/boto.cfg
71
+ x start a CHANGELOG.md?
72
+
73
+ - EY docs do not explain where to obtain the api key
74
+
75
+ Future improvements
76
+
77
+ - https://www.freecodecamp.org/news/how-to-deploy-your-cloud-foundry-app-with-almost-zero-fear-using-travis-ci-926697fff8f6/
78
+
79
+
80
+ - https://github.com/travis-ci/travis-api/pull/980
81
+ - https://github.com/travis-ci/travis-web/pull/2214
82
+ - PR hub/sf-fix-fast-finish
83
+
84
+
85
+ Dependencies:
86
+
87
+ ```
88
+ chef_supermarket
89
+ # the cli cli is a gem, too. would be easier to test though, and maybe more robust?
90
+ # https://docs.chef.io/ctl_chef.html
91
+ chef
92
+
93
+ cloud_files
94
+ # rackspace's cli is written in go
95
+ # https://developer.rackspace.com/docs/rack-cli/configuration/#installation-and-configuration
96
+ fog-rackspace
97
+
98
+ code_deploy
99
+ aws-sdk
100
+
101
+ elastic_beanstalk
102
+ aws-sdk
103
+ zip
104
+
105
+ engine_yard
106
+ # the engineyard cli is a gem, too. would be easier to test though, and maybe more robust?
107
+ # https://support.cloud.engineyard.com/hc/en-us/articles/205406968-Deploy-from-the-CLI-Engine-Yard-CLI-User-Guide-
108
+ engineyard-cloud-client
109
+
110
+ gcs
111
+ # https://cloud.google.com/storage/docs/gsutil
112
+ # the GCS cli is a python thing which can be installed via curl/bash:
113
+ # curl https://sdk.cloud.google.com | bash
114
+ gstore
115
+ mime-types
116
+
117
+ heroku
118
+ faraday
119
+
120
+ open_shift
121
+ # red hat seems to have a cli, but the instructions are quite opaque, and want
122
+ # to log in to their portal
123
+ # https://docs.openshift.com/container-platform/3.9/cli_reference/get_started_cli.html#installing-the-cli
124
+ rhc
125
+
126
+ packagecloud
127
+ # has a cli that is a rubygem (with a different name though, has an underscore)
128
+ # https://packagecloud.io/l/cli
129
+ packagecloud
130
+
131
+ pages
132
+ octokit
133
+
134
+ puppet_forge
135
+ # not sure if there's actually no cli?
136
+ puppet
137
+ puppet_blacksmith
138
+
139
+ rubygems
140
+ gems
141
+
142
+ s3
143
+ aws-sdk
144
+ mime-types
145
+
146
+ testfairy
147
+ # they have a minimal cli in bash, not sure that's worth it though, also
148
+ # not sure about the quality of this thing
149
+ # https://github.com/testfairy/command-line-uploader
150
+ multipart-post
151
+ ```
152
+
153
+ ```
154
+ | provider | tooling | auth | ssh-keygen | git-ssh |
155
+ | ----------------- | -------------------------------------------------- | -------------- | ---------- | ------- |
156
+ | Anynines | cf cli (manual download) | user/pass | no | no |
157
+ | Atlas | atlas-upload cli (go get install) | token (env) | no | no |
158
+ | Azure Web Apps | Git only | user/pass | no | no |
159
+ | Bitballoon | bitballoon cli (installed how??) | token | no | no |
160
+ | Bluemix CF | cf cli (manual download) | user/pass | no | no |
161
+ | Boxfuse | boxfuse cli (manual download) | user/pass | no? | no? |
162
+ | Cargo | cargo cli (preinstalled?) | token | no | no |
163
+ | Catalyze | Git only | ? | no | no |
164
+ | Chef Supermarket | gem chef | api key | no | no |
165
+ | Cloud66 | Net::HTTP | ? | no | no |
166
+ | Cloud Files | gem fog (rackspace) | user/key | no | no |
167
+ | Cloud Foundry | cf cli (manual download) | user/pass | no | no |
168
+ | Code Deploy | gem aws-sdk (v2) | key/secret | no | no |
169
+ | Deis | deis cli (manual download) | user/pass | yes | yes? |
170
+ | Elastic Beanstalk | gem aws-sdk (v2) | key/secret | no | no |
171
+ | EngineYard | gem engineyard-cloud-client | api key | no | no |
172
+ | Firebase | NPM firebase-tools | token | no | no |
173
+ | GAE | google-cloud-sdk (manual download) | keyfile | no | no |
174
+ | GCS | gem gstore (archived) | key/secret | no | no |
175
+ | Hackage | cabal (apt-get install) | user/pass | no | no |
176
+ | Hephy | `deis` cli (manual download) | user/pass | yes | yes? |
177
+ | Heroku API | gem faraday | api key | no | no |
178
+ | Heroku Git | gem faraday and Git | both?? | no | no |
179
+ | Lambda | gem aws-sdk (v2) | key/secret | no | no |
180
+ | Launchpad | Net:HTTP | token/secret | no | no |
181
+ | NPM | npm (preinstall) | api key | no | no |
182
+ | Open Shift | gem rhc (archived) and Git | user/pass | yes | yes? |
183
+ | Ops Works | gem aws-sdk (v2) | key/secret | no | no |
184
+ | Packagecloud | gem packagecloud | user/token | no | no |
185
+ | Pages | gem octokit | token | no | no |
186
+ | Puppet Forge | gems puppet, puppet_blacksmith | user/pass | no | no |
187
+ | PyPI | pip/twine (manual download) | user/pass | no | no |
188
+ | Releases | gem octokit | token | no | no |
189
+ | Rubygems | gem gems | api key | no | no |
190
+ | S3 | gem aws-sdk (v2) | key/secret | no | no |
191
+ | Scalingo | scalingo (manual download) | u/p or api key | yes | no? |
192
+ | Script | - | - | no | no |
193
+ | Snap | snap (apt-get) | token | no | no |
194
+ | Surge | surge (npm install) | login/token | no | no |
195
+ | Testfairy | gem multipart-post | api key | no | no |
196
+ | Transifex | tx (pip install) | user/pass | no | no |
197
+ ```