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

Sign up to get free protection for your applications and to get access to all the features.
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
+ ```