travis-akerl 1.8.9

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 (185) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +22 -0
  3. data/README.md +2512 -0
  4. data/Rakefile +64 -0
  5. data/assets/cacert.pem +69 -0
  6. data/assets/init/c.yml +4 -0
  7. data/assets/init/clojure.yml +1 -0
  8. data/assets/init/cpp.yml +4 -0
  9. data/assets/init/erlang.yml +3 -0
  10. data/assets/init/go.yml +4 -0
  11. data/assets/init/groovy.yml +1 -0
  12. data/assets/init/haskell.yml +1 -0
  13. data/assets/init/java.yml +4 -0
  14. data/assets/init/node_js.yml +5 -0
  15. data/assets/init/objective-c.yml +1 -0
  16. data/assets/init/perl.yml +4 -0
  17. data/assets/init/php.yml +4 -0
  18. data/assets/init/python.yml +5 -0
  19. data/assets/init/ruby.yml +6 -0
  20. data/assets/init/scala.yml +4 -0
  21. data/assets/notifications/Travis CI.app/Contents/Info.plist +52 -0
  22. data/assets/notifications/Travis CI.app/Contents/MacOS/Travis CI +0 -0
  23. data/assets/notifications/Travis CI.app/Contents/PkgInfo +1 -0
  24. data/assets/notifications/Travis CI.app/Contents/Resources/Travis CI.icns +0 -0
  25. data/assets/notifications/Travis CI.app/Contents/Resources/en.lproj/Credits.rtf +29 -0
  26. data/assets/notifications/Travis CI.app/Contents/Resources/en.lproj/InfoPlist.strings +0 -0
  27. data/assets/notifications/Travis CI.app/Contents/Resources/en.lproj/MainMenu.nib +0 -0
  28. data/assets/notifications/Travis CI.app/Contents/_CodeSignature/CodeResources +173 -0
  29. data/assets/notifications/Travis CI.app/Contents/embedded.provisionprofile +0 -0
  30. data/assets/notifications/icon.png +0 -0
  31. data/assets/travis.sh +163 -0
  32. data/assets/travis.sh.erb +64 -0
  33. data/bin/travis +18 -0
  34. data/examples/org_overview.rb +3 -0
  35. data/examples/pro_auth.rb +23 -0
  36. data/examples/stream.rb +6 -0
  37. data/lib/travis/auto_login.rb +3 -0
  38. data/lib/travis/cli/accounts.rb +31 -0
  39. data/lib/travis/cli/api_command.rb +182 -0
  40. data/lib/travis/cli/branches.rb +25 -0
  41. data/lib/travis/cli/cache.rb +76 -0
  42. data/lib/travis/cli/cancel.rb +18 -0
  43. data/lib/travis/cli/command.rb +422 -0
  44. data/lib/travis/cli/console.rb +33 -0
  45. data/lib/travis/cli/disable.rb +15 -0
  46. data/lib/travis/cli/enable.rb +31 -0
  47. data/lib/travis/cli/encrypt.rb +115 -0
  48. data/lib/travis/cli/encrypt_file.rb +140 -0
  49. data/lib/travis/cli/endpoint.rb +35 -0
  50. data/lib/travis/cli/env.rb +66 -0
  51. data/lib/travis/cli/help.rb +23 -0
  52. data/lib/travis/cli/history.rb +49 -0
  53. data/lib/travis/cli/init.rb +82 -0
  54. data/lib/travis/cli/lint.rb +49 -0
  55. data/lib/travis/cli/login.rb +76 -0
  56. data/lib/travis/cli/logout.rb +14 -0
  57. data/lib/travis/cli/logs.rb +65 -0
  58. data/lib/travis/cli/monitor.rb +111 -0
  59. data/lib/travis/cli/open.rb +39 -0
  60. data/lib/travis/cli/parser.rb +43 -0
  61. data/lib/travis/cli/pubkey.rb +30 -0
  62. data/lib/travis/cli/raw.rb +20 -0
  63. data/lib/travis/cli/repo_command.rb +154 -0
  64. data/lib/travis/cli/report.rb +101 -0
  65. data/lib/travis/cli/repos.rb +53 -0
  66. data/lib/travis/cli/requests.rb +47 -0
  67. data/lib/travis/cli/restart.rb +18 -0
  68. data/lib/travis/cli/settings.rb +79 -0
  69. data/lib/travis/cli/setup/anynines.rb +21 -0
  70. data/lib/travis/cli/setup/appfog.rb +19 -0
  71. data/lib/travis/cli/setup/artifacts.rb +23 -0
  72. data/lib/travis/cli/setup/biicode.rb +19 -0
  73. data/lib/travis/cli/setup/cloud_66.rb +20 -0
  74. data/lib/travis/cli/setup/cloud_control.rb +21 -0
  75. data/lib/travis/cli/setup/cloud_files.rb +20 -0
  76. data/lib/travis/cli/setup/cloud_foundry.rb +23 -0
  77. data/lib/travis/cli/setup/code_deploy.rb +55 -0
  78. data/lib/travis/cli/setup/deis.rb +20 -0
  79. data/lib/travis/cli/setup/divshot.rb +18 -0
  80. data/lib/travis/cli/setup/elastic_beanstalk.rb +23 -0
  81. data/lib/travis/cli/setup/engine_yard.rb +24 -0
  82. data/lib/travis/cli/setup/gcs.rb +22 -0
  83. data/lib/travis/cli/setup/hackage.rb +18 -0
  84. data/lib/travis/cli/setup/heroku.rb +20 -0
  85. data/lib/travis/cli/setup/modulus.rb +18 -0
  86. data/lib/travis/cli/setup/ninefold.rb +20 -0
  87. data/lib/travis/cli/setup/nodejitsu.rb +27 -0
  88. data/lib/travis/cli/setup/npm.rb +20 -0
  89. data/lib/travis/cli/setup/open_shift.rb +20 -0
  90. data/lib/travis/cli/setup/opsworks.rb +22 -0
  91. data/lib/travis/cli/setup/pypi.rb +22 -0
  92. data/lib/travis/cli/setup/releases.rb +35 -0
  93. data/lib/travis/cli/setup/ruby_gems.rb +25 -0
  94. data/lib/travis/cli/setup/s3.rb +25 -0
  95. data/lib/travis/cli/setup/sauce_connect.rb +21 -0
  96. data/lib/travis/cli/setup/service.rb +73 -0
  97. data/lib/travis/cli/setup.rb +66 -0
  98. data/lib/travis/cli/show.rb +57 -0
  99. data/lib/travis/cli/sshkey.rb +118 -0
  100. data/lib/travis/cli/status.rb +19 -0
  101. data/lib/travis/cli/sync.rb +30 -0
  102. data/lib/travis/cli/token.rb +14 -0
  103. data/lib/travis/cli/version.rb +17 -0
  104. data/lib/travis/cli/whatsup.rb +30 -0
  105. data/lib/travis/cli/whoami.rb +15 -0
  106. data/lib/travis/cli.rb +126 -0
  107. data/lib/travis/client/account.rb +56 -0
  108. data/lib/travis/client/artifact.rb +88 -0
  109. data/lib/travis/client/auto_login.rb +45 -0
  110. data/lib/travis/client/broadcast.rb +14 -0
  111. data/lib/travis/client/build.rb +47 -0
  112. data/lib/travis/client/cache.rb +25 -0
  113. data/lib/travis/client/commit.rb +28 -0
  114. data/lib/travis/client/entity.rb +238 -0
  115. data/lib/travis/client/env_var.rb +102 -0
  116. data/lib/travis/client/error.rb +38 -0
  117. data/lib/travis/client/has_uuid.rb +13 -0
  118. data/lib/travis/client/job.rb +61 -0
  119. data/lib/travis/client/lint_result.rb +25 -0
  120. data/lib/travis/client/listener.rb +183 -0
  121. data/lib/travis/client/methods.rb +104 -0
  122. data/lib/travis/client/namespace.rb +85 -0
  123. data/lib/travis/client/not_loadable.rb +13 -0
  124. data/lib/travis/client/repository.rb +224 -0
  125. data/lib/travis/client/request.rb +36 -0
  126. data/lib/travis/client/restartable.rb +23 -0
  127. data/lib/travis/client/session.rb +339 -0
  128. data/lib/travis/client/settings.rb +25 -0
  129. data/lib/travis/client/singleton_setting.rb +36 -0
  130. data/lib/travis/client/ssh_key.rb +11 -0
  131. data/lib/travis/client/states.rb +98 -0
  132. data/lib/travis/client/user.rb +67 -0
  133. data/lib/travis/client/weak_entity.rb +26 -0
  134. data/lib/travis/client.rb +38 -0
  135. data/lib/travis/pro/auto_login.rb +3 -0
  136. data/lib/travis/pro.rb +5 -0
  137. data/lib/travis/tools/assets.rb +21 -0
  138. data/lib/travis/tools/completion.rb +54 -0
  139. data/lib/travis/tools/formatter.rb +50 -0
  140. data/lib/travis/tools/github.rb +293 -0
  141. data/lib/travis/tools/notification.rb +69 -0
  142. data/lib/travis/tools/safe_string.rb +22 -0
  143. data/lib/travis/tools/ssl_key.rb +48 -0
  144. data/lib/travis/tools/system.rb +88 -0
  145. data/lib/travis/version.rb +3 -0
  146. data/lib/travis.rb +8 -0
  147. data/spec/cli/api_command_spec.rb +38 -0
  148. data/spec/cli/cancel_spec.rb +15 -0
  149. data/spec/cli/encrypt_spec.rb +49 -0
  150. data/spec/cli/endpoint_spec.rb +39 -0
  151. data/spec/cli/help_spec.rb +33 -0
  152. data/spec/cli/history_spec.rb +38 -0
  153. data/spec/cli/init_spec.rb +227 -0
  154. data/spec/cli/login_spec.rb +13 -0
  155. data/spec/cli/logs_spec.rb +8 -0
  156. data/spec/cli/open_spec.rb +33 -0
  157. data/spec/cli/repo_command_spec.rb +25 -0
  158. data/spec/cli/restart_spec.rb +15 -0
  159. data/spec/cli/setup_spec.rb +5 -0
  160. data/spec/cli/show_spec.rb +9 -0
  161. data/spec/cli/status_spec.rb +28 -0
  162. data/spec/cli/token_spec.rb +22 -0
  163. data/spec/cli/version_spec.rb +18 -0
  164. data/spec/cli/whoami_spec.rb +34 -0
  165. data/spec/client/account_spec.rb +32 -0
  166. data/spec/client/auto_login_spec.rb +25 -0
  167. data/spec/client/broadcast_spec.rb +10 -0
  168. data/spec/client/build_spec.rb +31 -0
  169. data/spec/client/commit_spec.rb +22 -0
  170. data/spec/client/job_spec.rb +30 -0
  171. data/spec/client/methods_spec.rb +15 -0
  172. data/spec/client/namespace_spec.rb +19 -0
  173. data/spec/client/repository_spec.rb +39 -0
  174. data/spec/client/session_spec.rb +165 -0
  175. data/spec/client/user_spec.rb +16 -0
  176. data/spec/client_spec.rb +17 -0
  177. data/spec/pro_spec.rb +10 -0
  178. data/spec/spec_helper.rb +29 -0
  179. data/spec/support/fake_api.rb +731 -0
  180. data/spec/support/fake_github.rb +24 -0
  181. data/spec/support/fake_travis_config.yml +14 -0
  182. data/spec/support/helpers.rb +45 -0
  183. data/spec/travis_spec.rb +10 -0
  184. data/travis.gemspec +371 -0
  185. metadata +534 -0
@@ -0,0 +1,731 @@
1
+ require 'sinatra/base'
2
+ require 'travis/client/session'
3
+
4
+ RAILS_KEY = "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnOGqjSJGeWIlTFLm5qjEIs/7l\nEx4v0LMGld6+7RwaFjIptr/slaJXPsE8gJxxaDs5aqpD2wT0IXLYw4RDhlwOYnHI\nXjlPwak+sJycfVolhY9QAJJbADD+kwjlnnDAe5QzQg1xVLusUr9QXzZ93nftb0m7\n+Lntq91SxE1r8F/+zQIDAQAB\n-----END PUBLIC KEY-----\n"
5
+
6
+ module Travis
7
+ module Client
8
+ class Session
9
+ class FakeAPI < Sinatra::Base
10
+ disable :protection
11
+ enable :raise_errors
12
+ set :rails_description, "Ruby on Rails"
13
+
14
+ before do
15
+ content_type :json
16
+ end
17
+
18
+ def authorized?
19
+ env['HTTP_AUTHORIZATION'] == 'token token'
20
+ end
21
+
22
+ get '/' do
23
+ "{}"
24
+ end
25
+
26
+ get '/users/' do
27
+ halt(403, 'wrong token') unless authorized?
28
+ {"user"=>
29
+ {"id"=>267,
30
+ "name"=>"Konstantin Haase",
31
+ "login"=>"rkh",
32
+ "email"=>"konstantin.haase@gmail.com",
33
+ "gravatar_id"=>"5c2b452f6eea4a6d84c105ebd971d2a4",
34
+ "locale"=>"en",
35
+ "is_syncing"=>false,
36
+ "synced_at"=>"2012-10-27T12:52:25Z",
37
+ "correct_scopes"=>true}}.to_json
38
+ end
39
+
40
+ get '/jobs/4125097' do
41
+ {"job"=>
42
+ {"id"=>4125097,
43
+ "repository_id"=>891,
44
+ "repository_slug"=>"rails/rails",
45
+ "build_id"=>4125095,
46
+ "commit_id"=>1201631,
47
+ "log_id"=>3168319,
48
+ "number"=>"6180.2",
49
+ "config"=>
50
+ {"script"=>"ci/travis.rb",
51
+ "before_install"=>["gem install bundler"],
52
+ "rvm"=>"1.9.3",
53
+ "env"=>"GEM=ap,am,amo,as",
54
+ "notifications"=>
55
+ {"email"=>false,
56
+ "irc"=>
57
+ {"on_success"=>"change",
58
+ "on_failure"=>"always",
59
+ "channels"=>["irc.freenode.org#rails-contrib"]},
60
+ "campfire"=>
61
+ {"on_success"=>"change",
62
+ "on_failure"=>"always",
63
+ "rooms"=>
64
+ [{"secure"=>
65
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
66
+ "bundler_args"=>"--path vendor/bundle",
67
+ ".result"=>"configured"},
68
+ "state"=>"passed",
69
+ "started_at"=>"2013-01-13T15:55:59Z",
70
+ "finished_at"=>"2013-01-13T16:11:04Z",
71
+ "queue"=>"builds.rails",
72
+ "allow_failure"=>false,
73
+ "tags"=>""},
74
+ "commit"=>
75
+ {"id"=>1201631,
76
+ "sha"=>"a0265b98f16c6e33be32aa3f57231d1189302400",
77
+ "branch"=>"master",
78
+ "message"=>"Associaton -> Association",
79
+ "committed_at"=>"2013-01-13T15:43:24Z",
80
+ "author_name"=>"Steve Klabnik",
81
+ "author_email"=>"steve@steveklabnik.com",
82
+ "committer_name"=>"Steve Klabnik",
83
+ "committer_email"=>"steve@steveklabnik.com",
84
+ "compare_url"=>
85
+ "https://github.com/rails/rails/compare/6581d798e830...a0265b98f16c"},
86
+ }.to_json
87
+ end
88
+
89
+ get '/builds/4125095' do
90
+ {"build"=>
91
+ {"id"=>4125095,
92
+ "repository_id"=>891,
93
+ "commit_id"=>1201631,
94
+ "number"=>"6180",
95
+ "pull_request"=>false,
96
+ "config"=>
97
+ {"script"=>"ci/travis.rb",
98
+ "before_install"=>["gem install bundler"],
99
+ "rvm"=>["1.9.3", "2.0.0"],
100
+ "env"=>
101
+ ["GEM=railties",
102
+ "GEM=ap,am,amo,as",
103
+ "GEM=ar:mysql",
104
+ "GEM=ar:mysql2",
105
+ "GEM=ar:sqlite3",
106
+ "GEM=ar:postgresql"],
107
+ "notifications"=>
108
+ {"email"=>false,
109
+ "irc"=>
110
+ {"on_success"=>"change",
111
+ "on_failure"=>"always",
112
+ "channels"=>["irc.freenode.org#rails-contrib"]},
113
+ "campfire"=>
114
+ {"on_success"=>"change",
115
+ "on_failure"=>"always",
116
+ "rooms"=>
117
+ [{"secure"=>
118
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
119
+ "bundler_args"=>"--path vendor/bundle",
120
+ ".result"=>"configured"},
121
+ "state"=>"failed",
122
+ "started_at"=>"2013-01-13T15:55:17Z",
123
+ "finished_at"=>nil,
124
+ "duration"=>5019,
125
+ "job_ids"=>
126
+ [4125096,
127
+ 4125097,
128
+ 4125098,
129
+ 4125099,
130
+ 4125100,
131
+ 4125101,
132
+ 4125102,
133
+ 4125103,
134
+ 4125104,
135
+ 4125105,
136
+ 4125106,
137
+ 4125107]},
138
+ "commit"=>
139
+ {"id"=>1201631,
140
+ "sha"=>"a0265b98f16c6e33be32aa3f57231d1189302400",
141
+ "branch"=>"master",
142
+ "message"=>"Associaton -> Association",
143
+ "committed_at"=>"2013-01-13T15:43:24Z",
144
+ "author_name"=>"Steve Klabnik",
145
+ "author_email"=>"steve@steveklabnik.com",
146
+ "committer_name"=>"Steve Klabnik",
147
+ "committer_email"=>"steve@steveklabnik.com",
148
+ "compare_url"=>
149
+ "https://github.com/rails/rails/compare/6581d798e830...a0265b98f16c"},
150
+ "jobs"=>
151
+ [{"id"=>4125096,
152
+ "repository_id"=>891,
153
+ "build_id"=>4125095,
154
+ "commit_id"=>1201631,
155
+ "log_id"=>3168318,
156
+ "state"=>"failed",
157
+ "number"=>"6180.1",
158
+ "config"=>
159
+ {"script"=>"ci/travis.rb",
160
+ "before_install"=>["gem install bundler"],
161
+ "rvm"=>"1.9.3",
162
+ "env"=>"GEM=railties",
163
+ "notifications"=>
164
+ {"email"=>false,
165
+ "irc"=>
166
+ {"on_success"=>"change",
167
+ "on_failure"=>"always",
168
+ "channels"=>["irc.freenode.org#rails-contrib"]},
169
+ "campfire"=>
170
+ {"on_success"=>"change",
171
+ "on_failure"=>"always",
172
+ "rooms"=>
173
+ [{"secure"=>
174
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
175
+ "bundler_args"=>"--path vendor/bundle",
176
+ ".result"=>"configured"},
177
+ "started_at"=>"2013-01-13T15:55:59Z",
178
+ "finished_at"=>"2013-01-13T16:10:15Z",
179
+ "queue"=>"builds.rails",
180
+ "allow_failure"=>false,
181
+ "tags"=>""},
182
+ {"id"=>4125097,
183
+ "repository_id"=>891,
184
+ "build_id"=>4125095,
185
+ "commit_id"=>1201631,
186
+ "log_id"=>3168319,
187
+ "state"=>"passed",
188
+ "number"=>"6180.2",
189
+ "config"=>
190
+ {"script"=>"ci/travis.rb",
191
+ "before_install"=>["gem install bundler"],
192
+ "rvm"=>"1.9.3",
193
+ "env"=>"GEM=ap,am,amo,as",
194
+ "notifications"=>
195
+ {"email"=>false,
196
+ "irc"=>
197
+ {"on_success"=>"change",
198
+ "on_failure"=>"always",
199
+ "channels"=>["irc.freenode.org#rails-contrib"]},
200
+ "campfire"=>
201
+ {"on_success"=>"change",
202
+ "on_failure"=>"always",
203
+ "rooms"=>
204
+ [{"secure"=>
205
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
206
+ "bundler_args"=>"--path vendor/bundle",
207
+ ".result"=>"configured"},
208
+ "started_at"=>"2013-01-13T15:55:59Z",
209
+ "finished_at"=>"2013-01-13T16:11:04Z",
210
+ "queue"=>"builds.rails",
211
+ "allow_failure"=>false,
212
+ "tags"=>""},
213
+ {"id"=>4125098,
214
+ "repository_id"=>891,
215
+ "build_id"=>4125095,
216
+ "commit_id"=>1201631,
217
+ "log_id"=>3168320,
218
+ "state"=>"passed",
219
+ "number"=>"6180.3",
220
+ "config"=>
221
+ {"script"=>"ci/travis.rb",
222
+ "before_install"=>["gem install bundler"],
223
+ "rvm"=>"1.9.3",
224
+ "env"=>"GEM=ar:mysql",
225
+ "notifications"=>
226
+ {"email"=>false,
227
+ "irc"=>
228
+ {"on_success"=>"change",
229
+ "on_failure"=>"always",
230
+ "channels"=>["irc.freenode.org#rails-contrib"]},
231
+ "campfire"=>
232
+ {"on_success"=>"change",
233
+ "on_failure"=>"always",
234
+ "rooms"=>
235
+ [{"secure"=>
236
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
237
+ "bundler_args"=>"--path vendor/bundle",
238
+ ".result"=>"configured"},
239
+ "started_at"=>"2013-01-13T15:55:59Z",
240
+ "finished_at"=>"2013-01-13T16:08:14Z",
241
+ "queue"=>"builds.rails",
242
+ "allow_failure"=>false,
243
+ "tags"=>""},
244
+ {"id"=>4125099,
245
+ "repository_id"=>891,
246
+ "build_id"=>4125095,
247
+ "commit_id"=>1201631,
248
+ "log_id"=>3168321,
249
+ "state"=>"passed",
250
+ "number"=>"6180.4",
251
+ "config"=>
252
+ {"script"=>"ci/travis.rb",
253
+ "before_install"=>["gem install bundler"],
254
+ "rvm"=>"1.9.3",
255
+ "env"=>"GEM=ar:mysql2",
256
+ "notifications"=>
257
+ {"email"=>false,
258
+ "irc"=>
259
+ {"on_success"=>"change",
260
+ "on_failure"=>"always",
261
+ "channels"=>["irc.freenode.org#rails-contrib"]},
262
+ "campfire"=>
263
+ {"on_success"=>"change",
264
+ "on_failure"=>"always",
265
+ "rooms"=>
266
+ [{"secure"=>
267
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
268
+ "bundler_args"=>"--path vendor/bundle",
269
+ ".result"=>"configured"},
270
+ "started_at"=>"2013-01-13T15:55:17Z",
271
+ "finished_at"=>"2013-01-13T16:06:15Z",
272
+ "queue"=>"builds.rails",
273
+ "allow_failure"=>false,
274
+ "tags"=>""},
275
+ {"id"=>4125100,
276
+ "repository_id"=>891,
277
+ "build_id"=>4125095,
278
+ "commit_id"=>1201631,
279
+ "log_id"=>3168322,
280
+ "state"=>"passed",
281
+ "number"=>"6180.5",
282
+ "config"=>
283
+ {"script"=>"ci/travis.rb",
284
+ "before_install"=>["gem install bundler"],
285
+ "rvm"=>"1.9.3",
286
+ "env"=>"GEM=ar:sqlite3",
287
+ "notifications"=>
288
+ {"email"=>false,
289
+ "irc"=>
290
+ {"on_success"=>"change",
291
+ "on_failure"=>"always",
292
+ "channels"=>["irc.freenode.org#rails-contrib"]},
293
+ "campfire"=>
294
+ {"on_success"=>"change",
295
+ "on_failure"=>"always",
296
+ "rooms"=>
297
+ [{"secure"=>
298
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
299
+ "bundler_args"=>"--path vendor/bundle",
300
+ ".result"=>"configured"},
301
+ "started_at"=>"2013-01-13T15:55:58Z",
302
+ "finished_at"=>"2013-01-13T16:08:07Z",
303
+ "queue"=>"builds.rails",
304
+ "allow_failure"=>false,
305
+ "tags"=>""},
306
+ {"id"=>4125101,
307
+ "repository_id"=>891,
308
+ "build_id"=>4125095,
309
+ "commit_id"=>1201631,
310
+ "log_id"=>3168323,
311
+ "state"=>"passed",
312
+ "number"=>"6180.6",
313
+ "config"=>
314
+ {"script"=>"ci/travis.rb",
315
+ "before_install"=>["gem install bundler"],
316
+ "rvm"=>"1.9.3",
317
+ "env"=>"GEM=ar:postgresql",
318
+ "notifications"=>
319
+ {"email"=>false,
320
+ "irc"=>
321
+ {"on_success"=>"change",
322
+ "on_failure"=>"always",
323
+ "channels"=>["irc.freenode.org#rails-contrib"]},
324
+ "campfire"=>
325
+ {"on_success"=>"change",
326
+ "on_failure"=>"always",
327
+ "rooms"=>
328
+ [{"secure"=>
329
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
330
+ "bundler_args"=>"--path vendor/bundle",
331
+ ".result"=>"configured"},
332
+ "started_at"=>"2013-01-13T15:55:28Z",
333
+ "finished_at"=>"2013-01-13T16:08:41Z",
334
+ "queue"=>"builds.rails",
335
+ "allow_failure"=>false,
336
+ "tags"=>""},
337
+ {"id"=>4125102,
338
+ "repository_id"=>891,
339
+ "build_id"=>4125095,
340
+ "commit_id"=>1201631,
341
+ "log_id"=>3168324,
342
+ "state"=>"failed",
343
+ "number"=>"6180.7",
344
+ "config"=>
345
+ {"script"=>"ci/travis.rb",
346
+ "before_install"=>["gem install bundler"],
347
+ "rvm"=>"2.0.0",
348
+ "env"=>"GEM=railties",
349
+ "notifications"=>
350
+ {"email"=>false,
351
+ "irc"=>
352
+ {"on_success"=>"change",
353
+ "on_failure"=>"always",
354
+ "channels"=>["irc.freenode.org#rails-contrib"]},
355
+ "campfire"=>
356
+ {"on_success"=>"change",
357
+ "on_failure"=>"always",
358
+ "rooms"=>
359
+ [{"secure"=>
360
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
361
+ "bundler_args"=>"--path vendor/bundle",
362
+ ".result"=>"configured"},
363
+ "started_at"=>"2013-01-13T15:55:17Z",
364
+ "finished_at"=>"2013-01-13T15:56:16Z",
365
+ "queue"=>"builds.rails",
366
+ "allow_failure"=>false,
367
+ "tags"=>""},
368
+ {"id"=>4125103,
369
+ "repository_id"=>891,
370
+ "build_id"=>4125095,
371
+ "commit_id"=>1201631,
372
+ "log_id"=>3168325,
373
+ "state"=>"failed",
374
+ "number"=>"6180.8",
375
+ "config"=>
376
+ {"script"=>"ci/travis.rb",
377
+ "before_install"=>["gem install bundler"],
378
+ "rvm"=>"2.0.0",
379
+ "env"=>"GEM=ap,am,amo,as",
380
+ "notifications"=>
381
+ {"email"=>false,
382
+ "irc"=>
383
+ {"on_success"=>"change",
384
+ "on_failure"=>"always",
385
+ "channels"=>["irc.freenode.org#rails-contrib"]},
386
+ "campfire"=>
387
+ {"on_success"=>"change",
388
+ "on_failure"=>"always",
389
+ "rooms"=>
390
+ [{"secure"=>
391
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
392
+ "bundler_args"=>"--path vendor/bundle",
393
+ ".result"=>"configured"},
394
+ "started_at"=>"2013-01-13T15:55:58Z",
395
+ "finished_at"=>"2013-01-13T15:56:57Z",
396
+ "queue"=>"builds.rails",
397
+ "allow_failure"=>false,
398
+ "tags"=>""},
399
+ {"id"=>4125104,
400
+ "repository_id"=>891,
401
+ "build_id"=>4125095,
402
+ "commit_id"=>1201631,
403
+ "log_id"=>3168326,
404
+ "state"=>"failed",
405
+ "number"=>"6180.9",
406
+ "config"=>
407
+ {"script"=>"ci/travis.rb",
408
+ "before_install"=>["gem install bundler"],
409
+ "rvm"=>"2.0.0",
410
+ "env"=>"GEM=ar:mysql",
411
+ "notifications"=>
412
+ {"email"=>false,
413
+ "irc"=>
414
+ {"on_success"=>"change",
415
+ "on_failure"=>"always",
416
+ "channels"=>["irc.freenode.org#rails-contrib"]},
417
+ "campfire"=>
418
+ {"on_success"=>"change",
419
+ "on_failure"=>"always",
420
+ "rooms"=>
421
+ [{"secure"=>
422
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
423
+ "bundler_args"=>"--path vendor/bundle",
424
+ ".result"=>"configured"},
425
+ "started_at"=>"2013-01-13T15:55:18Z",
426
+ "finished_at"=>"2013-01-13T15:56:16Z",
427
+ "queue"=>"builds.rails",
428
+ "allow_failure"=>false,
429
+ "tags"=>""},
430
+ {"id"=>4125105,
431
+ "repository_id"=>891,
432
+ "build_id"=>4125095,
433
+ "commit_id"=>1201631,
434
+ "log_id"=>3168327,
435
+ "state"=>"failed",
436
+ "number"=>"6180.10",
437
+ "config"=>
438
+ {"script"=>"ci/travis.rb",
439
+ "before_install"=>["gem install bundler"],
440
+ "rvm"=>"2.0.0",
441
+ "env"=>"GEM=ar:mysql2",
442
+ "notifications"=>
443
+ {"email"=>false,
444
+ "irc"=>
445
+ {"on_success"=>"change",
446
+ "on_failure"=>"always",
447
+ "channels"=>["irc.freenode.org#rails-contrib"]},
448
+ "campfire"=>
449
+ {"on_success"=>"change",
450
+ "on_failure"=>"always",
451
+ "rooms"=>
452
+ [{"secure"=>
453
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
454
+ "bundler_args"=>"--path vendor/bundle",
455
+ ".result"=>"configured"},
456
+ "started_at"=>"2013-01-13T15:55:27Z",
457
+ "finished_at"=>"2013-01-13T15:56:23Z",
458
+ "queue"=>"builds.rails",
459
+ "allow_failure"=>false,
460
+ "tags"=>""},
461
+ {"id"=>4125106,
462
+ "repository_id"=>891,
463
+ "build_id"=>4125095,
464
+ "commit_id"=>1201631,
465
+ "log_id"=>3168328,
466
+ "state"=>"failed",
467
+ "number"=>"6180.11",
468
+ "config"=>
469
+ {"script"=>"ci/travis.rb",
470
+ "before_install"=>["gem install bundler"],
471
+ "rvm"=>"2.0.0",
472
+ "env"=>"GEM=ar:sqlite3",
473
+ "notifications"=>
474
+ {"email"=>false,
475
+ "irc"=>
476
+ {"on_success"=>"change",
477
+ "on_failure"=>"always",
478
+ "channels"=>["irc.freenode.org#rails-contrib"]},
479
+ "campfire"=>
480
+ {"on_success"=>"change",
481
+ "on_failure"=>"always",
482
+ "rooms"=>
483
+ [{"secure"=>
484
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
485
+ "bundler_args"=>"--path vendor/bundle",
486
+ ".result"=>"configured"},
487
+ "started_at"=>"2013-01-13T15:56:47Z",
488
+ "finished_at"=>"2013-01-13T15:57:43Z",
489
+ "queue"=>"builds.rails",
490
+ "allow_failure"=>false,
491
+ "tags"=>""},
492
+ {"id"=>4125107,
493
+ "repository_id"=>891,
494
+ "build_id"=>4125095,
495
+ "commit_id"=>1201631,
496
+ "log_id"=>3168329,
497
+ "state"=>"failed",
498
+ "number"=>"6180.12",
499
+ "config"=>
500
+ {"script"=>"ci/travis.rb",
501
+ "before_install"=>["gem install bundler"],
502
+ "rvm"=>"2.0.0",
503
+ "env"=>"GEM=ar:postgresql",
504
+ "notifications"=>
505
+ {"email"=>false,
506
+ "irc"=>
507
+ {"on_success"=>"change",
508
+ "on_failure"=>"always",
509
+ "channels"=>["irc.freenode.org#rails-contrib"]},
510
+ "campfire"=>
511
+ {"on_success"=>"change",
512
+ "on_failure"=>"always",
513
+ "rooms"=>
514
+ [{"secure"=>
515
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
516
+ "bundler_args"=>"--path vendor/bundle",
517
+ ".result"=>"configured"},
518
+ "started_at"=>"2013-01-13T15:56:54Z",
519
+ "finished_at"=>"2013-01-13T15:57:49Z",
520
+ "queue"=>"builds.rails",
521
+ "allow_failure"=>false,
522
+ "tags"=>""}]}.to_json
523
+ end
524
+
525
+ get '/builds/' do
526
+ return {"builds"=>[]}.to_json if params[:after_number]
527
+ {"builds"=>
528
+ [{"id"=>4125095,
529
+ "repository_id"=>891,
530
+ "commit_id"=>1201631,
531
+ "number"=>"6180",
532
+ "pull_request"=>false,
533
+ "config"=>
534
+ {"script"=>"ci/travis.rb",
535
+ "before_install"=>["gem install bundler"],
536
+ "rvm"=>["1.9.3", "2.0.0"],
537
+ "env"=>
538
+ ["GEM=railties",
539
+ "GEM=ap,am,amo,as",
540
+ "GEM=ar:mysql",
541
+ "GEM=ar:mysql2",
542
+ "GEM=ar:sqlite3",
543
+ "GEM=ar:postgresql"],
544
+ "notifications"=>
545
+ {"email"=>false,
546
+ "irc"=>
547
+ {"on_success"=>"change",
548
+ "on_failure"=>"always",
549
+ "channels"=>["irc.freenode.org#rails-contrib"]},
550
+ "campfire"=>
551
+ {"on_success"=>"change",
552
+ "on_failure"=>"always",
553
+ "rooms"=>
554
+ [{"secure"=>
555
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
556
+ "bundler_args"=>"--path vendor/bundle",
557
+ ".result"=>"configured"},
558
+ "state"=>"failed",
559
+ "started_at"=>"2013-01-13T15:55:17Z",
560
+ "finished_at"=>nil,
561
+ "duration"=>5019,
562
+ "job_ids"=>
563
+ [4125096,
564
+ 4125097,
565
+ 4125098,
566
+ 4125099,
567
+ 4125100,
568
+ 4125101,
569
+ 4125102,
570
+ 4125103,
571
+ 4125104,
572
+ 4125105,
573
+ 4125106,
574
+ 4125107]}],
575
+ "commits"=>
576
+ [{"id"=>1201631,
577
+ "sha"=>"a0265b98f16c6e33be32aa3f57231d1189302400",
578
+ "branch"=>"master",
579
+ "message"=>"Associaton -> Association",
580
+ "committed_at"=>"2013-01-13T15:43:24Z",
581
+ "author_name"=>"Steve Klabnik",
582
+ "author_email"=>"steve@steveklabnik.com",
583
+ "committer_name"=>"Steve Klabnik",
584
+ "committer_email"=>"steve@steveklabnik.com",
585
+ "compare_url"=>
586
+ "https://github.com/rails/rails/compare/6581d798e830...a0265b98f16c"}]}.to_json
587
+ end
588
+
589
+ get '/jobs/4125096' do
590
+ {"job"=>
591
+ {"id"=>4125096,
592
+ "repository_id"=>891,
593
+ "repository_slug"=>"rails/rails",
594
+ "build_id"=>4125095,
595
+ "commit_id"=>1201631,
596
+ "log_id"=>3168318,
597
+ "number"=>"6180.1",
598
+ "config"=>
599
+ {"script"=>"ci/travis.rb",
600
+ "before_install"=>["gem install bundler"],
601
+ "rvm"=>"1.9.3",
602
+ "env"=>"GEM=railties",
603
+ "notifications"=>
604
+ {"email"=>false,
605
+ "irc"=>
606
+ {"on_success"=>"change",
607
+ "on_failure"=>"always",
608
+ "channels"=>["irc.freenode.org#rails-contrib"]},
609
+ "campfire"=>
610
+ {"on_success"=>"change",
611
+ "on_failure"=>"always",
612
+ "rooms"=>
613
+ [{"secure"=>
614
+ "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="}]}},
615
+ "bundler_args"=>"--path vendor/bundle",
616
+ ".result"=>"configured"},
617
+ "state"=>"failed",
618
+ "started_at"=>"2013-01-13T15:55:59Z",
619
+ "finished_at"=>"2013-01-13T16:10:15Z",
620
+ "queue"=>"builds.rails",
621
+ "allow_failure"=>false,
622
+ "tags"=>""},
623
+ "commit"=>
624
+ {"id"=>1201631,
625
+ "sha"=>"a0265b98f16c6e33be32aa3f57231d1189302400",
626
+ "branch"=>"master",
627
+ "message"=>"Associaton -> Association",
628
+ "committed_at"=>"2013-01-13T15:43:24Z",
629
+ "author_name"=>"Steve Klabnik",
630
+ "author_email"=>"steve@steveklabnik.com",
631
+ "committer_name"=>"Steve Klabnik",
632
+ "committer_email"=>"steve@steveklabnik.com",
633
+ "compare_url"=>
634
+ "https://github.com/rails/rails/compare/6581d798e830...a0265b98f16c"}}.to_json
635
+ end
636
+
637
+ get '/repos/' do
638
+ {"repos"=>
639
+ [{"id"=>107495,
640
+ "slug"=>"pypug/django-mango",
641
+ "description"=>"More Mango, less Django!",
642
+ "last_build_id"=>4125823,
643
+ "last_build_number"=>"39",
644
+ "last_build_state"=>"failed",
645
+ "last_build_duration"=>31,
646
+ "last_build_language"=>nil,
647
+ "last_build_started_at"=>"2013-01-13T16:58:43Z",
648
+ "last_build_finished_at"=>"2013-01-13T16:55:08Z"}]}.to_json
649
+ end
650
+
651
+ get '/config' do
652
+ {"config" => {"host" => "travis-ci.org"}}.to_json
653
+ end
654
+
655
+ get '/logs/3168318' do
656
+ {"log"=>
657
+ {"id"=>3168318,
658
+ "job_id"=>4125096,
659
+ "type"=>"Log",
660
+ "body"=>
661
+ "$ export GEM=railties\n"}}.to_json
662
+ end
663
+
664
+ get '/repos/*/travis.rb' do
665
+ # hack hack
666
+ request.path_info = '/repos/rails/rails'
667
+ pass
668
+ end
669
+
670
+ get '/repos/891' do
671
+ request.path_info = '/repos/rails/rails'
672
+ pass
673
+ end
674
+
675
+ get '/repos/rails/rails' do
676
+ {"repo"=>
677
+ {"id"=>891,
678
+ "slug"=>"rails/rails",
679
+ "description"=>settings.rails_description,
680
+ "last_build_id"=>4125095,
681
+ "last_build_number"=>"6180",
682
+ "last_build_state"=>"failed",
683
+ "last_build_duration"=>5019,
684
+ "last_build_language"=>nil,
685
+ "last_build_started_at"=>"2013-01-13T15:55:17Z",
686
+ "last_build_finished_at"=>nil,
687
+ "github_language"=>"Ruby"}}.to_json
688
+ end
689
+
690
+ get '/repos/891/key' do
691
+ {"key"=>RAILS_KEY, "fingerprint"=>"foobar"}.to_json
692
+ end
693
+
694
+ get '/accounts/' do
695
+ {"accounts"=>
696
+ [{'name' => "Konstantin Haase",
697
+ 'login' => 'rkh',
698
+ 'type' => 'user',
699
+ 'repos_count' => 200
700
+ }]}.to_json
701
+ end
702
+
703
+ get '/broadcasts/' do
704
+ {"broadcasts"=>
705
+ [{'id' => 1,
706
+ 'message' => 'Hello!'
707
+ }]}.to_json
708
+ end
709
+
710
+ post '/requests' do
711
+ $params = params
712
+ "{}"
713
+ end
714
+
715
+ post '/:entity/:id/cancel' do
716
+ $params = params
717
+ {}
718
+ end
719
+
720
+ post '/auth/github' do
721
+ halt(403) unless params[:github_token] == 'github_token'
722
+ { 'access_token' => 'token' }.to_json
723
+ end
724
+ end
725
+
726
+ def faraday_adapter
727
+ [:rack, FakeAPI.new]
728
+ end
729
+ end
730
+ end
731
+ end