txgh-server 1.0.0.beta1

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 (51) hide show
  1. checksums.yaml +7 -0
  2. data/lib/txgh-server/application.rb +141 -0
  3. data/lib/txgh-server/download_handler.rb +85 -0
  4. data/lib/txgh-server/github_request_auth.rb +28 -0
  5. data/lib/txgh-server/response.rb +15 -0
  6. data/lib/txgh-server/response_helpers.rb +26 -0
  7. data/lib/txgh-server/stream_response.rb +37 -0
  8. data/lib/txgh-server/tgz_stream_response.rb +39 -0
  9. data/lib/txgh-server/transifex_request_auth.rb +53 -0
  10. data/lib/txgh-server/triggers/handler.rb +50 -0
  11. data/lib/txgh-server/triggers/pull_handler.rb +18 -0
  12. data/lib/txgh-server/triggers/push_handler.rb +18 -0
  13. data/lib/txgh-server/triggers.rb +7 -0
  14. data/lib/txgh-server/version.rb +3 -0
  15. data/lib/txgh-server/webhooks/github/delete_handler.rb +37 -0
  16. data/lib/txgh-server/webhooks/github/handler.rb +20 -0
  17. data/lib/txgh-server/webhooks/github/ping_handler.rb +18 -0
  18. data/lib/txgh-server/webhooks/github/push_handler.rb +124 -0
  19. data/lib/txgh-server/webhooks/github/request_handler.rb +113 -0
  20. data/lib/txgh-server/webhooks/github.rb +11 -0
  21. data/lib/txgh-server/webhooks/transifex/hook_handler.rb +94 -0
  22. data/lib/txgh-server/webhooks/transifex/request_handler.rb +78 -0
  23. data/lib/txgh-server/webhooks/transifex.rb +8 -0
  24. data/lib/txgh-server/webhooks.rb +6 -0
  25. data/lib/txgh-server/zip_stream_response.rb +19 -0
  26. data/lib/txgh-server.rb +23 -0
  27. data/spec/application_spec.rb +347 -0
  28. data/spec/download_handler_spec.rb +91 -0
  29. data/spec/github_request_auth_spec.rb +39 -0
  30. data/spec/helpers/github_payload_builder.rb +141 -0
  31. data/spec/helpers/integration_setup.rb +47 -0
  32. data/spec/integration/cassettes/github_l10n_hook_endpoint.yml +536 -0
  33. data/spec/integration/cassettes/pull.yml +47 -0
  34. data/spec/integration/cassettes/push.yml +544 -0
  35. data/spec/integration/cassettes/transifex_hook_endpoint.yml +221 -0
  36. data/spec/integration/config/tx.config +10 -0
  37. data/spec/integration/hooks_spec.rb +159 -0
  38. data/spec/integration/payloads/github_postbody.json +161 -0
  39. data/spec/integration/payloads/github_postbody_l10n.json +136 -0
  40. data/spec/integration/payloads/github_postbody_release.json +136 -0
  41. data/spec/integration/triggers_spec.rb +45 -0
  42. data/spec/spec_helper.rb +26 -0
  43. data/spec/tgz_stream_response_spec.rb +59 -0
  44. data/spec/transifex_request_auth_spec.rb +39 -0
  45. data/spec/webhooks/github/delete_handler_spec.rb +38 -0
  46. data/spec/webhooks/github/ping_handler_spec.rb +16 -0
  47. data/spec/webhooks/github/push_handler_spec.rb +106 -0
  48. data/spec/webhooks/transifex/hook_handler_spec.rb +136 -0
  49. data/spec/zip_stream_response_spec.rb +58 -0
  50. data/txgh-server.gemspec +24 -0
  51. metadata +170 -0
@@ -0,0 +1,536 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/git/refs
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"ref":"refs/heads/L10N","sha":"6eebc3eee49e8d46f6dbec16fe3360961bfdd8ed"}'
9
+ headers:
10
+ Accept:
11
+ - application/vnd.github.v3+json
12
+ User-Agent:
13
+ - Octokit Ruby Gem 4.2.0
14
+ Content-Type:
15
+ - application/json
16
+ Authorization:
17
+ - token <GITHUB_TOKEN>
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ response:
21
+ status:
22
+ code: 422
23
+ message: Unprocessable Entity
24
+ headers:
25
+ Server:
26
+ - GitHub.com
27
+ Date:
28
+ - Fri, 12 Feb 2016 19:48:54 GMT
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Content-Length:
32
+ - '121'
33
+ Status:
34
+ - 422 Unprocessable Entity
35
+ X-Ratelimit-Limit:
36
+ - '5000'
37
+ X-Ratelimit-Remaining:
38
+ - '4993'
39
+ X-Ratelimit-Reset:
40
+ - '1455310132'
41
+ X-Oauth-Scopes:
42
+ - public_repo
43
+ X-Accepted-Oauth-Scopes:
44
+ - ''
45
+ X-Github-Media-Type:
46
+ - github.v3; format=json
47
+ Access-Control-Allow-Credentials:
48
+ - 'true'
49
+ Access-Control-Expose-Headers:
50
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
51
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
52
+ Access-Control-Allow-Origin:
53
+ - "*"
54
+ Content-Security-Policy:
55
+ - default-src 'none'
56
+ Strict-Transport-Security:
57
+ - max-age=31536000; includeSubdomains; preload
58
+ X-Content-Type-Options:
59
+ - nosniff
60
+ X-Frame-Options:
61
+ - deny
62
+ X-Xss-Protection:
63
+ - 1; mode=block
64
+ X-Github-Request-Id:
65
+ - 04358C36:14593:B89F3A4:56BE3726
66
+ body:
67
+ encoding: UTF-8
68
+ string: '{"message":"Reference already exists","documentation_url":"https://developer.github.com/v3/git/refs/#create-a-reference"}'
69
+ http_version:
70
+ recorded_at: Fri, 12 Feb 2016 19:48:54 GMT
71
+ - request:
72
+ method: get
73
+ uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/6eebc3eee49e8d46f6dbec16fe3360961bfdd8ed
74
+ body:
75
+ encoding: US-ASCII
76
+ string: ''
77
+ headers:
78
+ Accept:
79
+ - application/vnd.github.v3+json
80
+ User-Agent:
81
+ - Octokit Ruby Gem 4.2.0
82
+ Content-Type:
83
+ - application/json
84
+ Authorization:
85
+ - token <GITHUB_TOKEN>
86
+ Accept-Encoding:
87
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
88
+ response:
89
+ status:
90
+ code: 200
91
+ message: OK
92
+ headers:
93
+ Server:
94
+ - GitHub.com
95
+ Date:
96
+ - Fri, 12 Feb 2016 19:48:55 GMT
97
+ Content-Type:
98
+ - application/json; charset=utf-8
99
+ Transfer-Encoding:
100
+ - chunked
101
+ Status:
102
+ - 200 OK
103
+ X-Ratelimit-Limit:
104
+ - '5000'
105
+ X-Ratelimit-Remaining:
106
+ - '4992'
107
+ X-Ratelimit-Reset:
108
+ - '1455310132'
109
+ Cache-Control:
110
+ - private, max-age=60, s-maxage=60
111
+ Last-Modified:
112
+ - Thu, 19 Nov 2015 20:56:33 GMT
113
+ Etag:
114
+ - W/"7bfdb9dfafc4d11bf47411ec7fee1f31"
115
+ X-Oauth-Scopes:
116
+ - public_repo
117
+ X-Accepted-Oauth-Scopes:
118
+ - ''
119
+ Vary:
120
+ - Accept, Authorization, Cookie, X-GitHub-OTP
121
+ - Accept-Encoding
122
+ X-Github-Media-Type:
123
+ - github.v3; format=json
124
+ Access-Control-Allow-Credentials:
125
+ - 'true'
126
+ Access-Control-Expose-Headers:
127
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
128
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
129
+ Access-Control-Allow-Origin:
130
+ - "*"
131
+ Content-Security-Policy:
132
+ - default-src 'none'
133
+ Strict-Transport-Security:
134
+ - max-age=31536000; includeSubdomains; preload
135
+ X-Content-Type-Options:
136
+ - nosniff
137
+ X-Frame-Options:
138
+ - deny
139
+ X-Xss-Protection:
140
+ - 1; mode=block
141
+ X-Served-By:
142
+ - a51acaae89a7607fd7ee967627be18e4
143
+ X-Github-Request-Id:
144
+ - 04358C36:14592:880AC63:56BE3727
145
+ body:
146
+ encoding: UTF-8
147
+ string: '{"sha":"6eebc3eee49e8d46f6dbec16fe3360961bfdd8ed","commit":{"author":{"name":"Matthew
148
+ Jackowski","email":"mattjjacko@gmail.com","date":"2015-11-19T20:56:33Z"},"committer":{"name":"Matthew
149
+ Jackowski","email":"mattjjacko@gmail.com","date":"2015-11-19T20:56:33Z"},"message":"10","tree":{"sha":"572b0507c4109703788333808a0b0019c0000f50","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/572b0507c4109703788333808a0b0019c0000f50"},"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/commits/6eebc3eee49e8d46f6dbec16fe3360961bfdd8ed","comment_count":0},"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/6eebc3eee49e8d46f6dbec16fe3360961bfdd8ed","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/6eebc3eee49e8d46f6dbec16fe3360961bfdd8ed","comments_url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/6eebc3eee49e8d46f6dbec16fe3360961bfdd8ed/comments","author":{"login":"matthewjackowski","id":974299,"avatar_url":"https://avatars.githubusercontent.com/u/974299?v=3","gravatar_id":"","url":"https://api.github.com/users/matthewjackowski","html_url":"https://github.com/matthewjackowski","followers_url":"https://api.github.com/users/matthewjackowski/followers","following_url":"https://api.github.com/users/matthewjackowski/following{/other_user}","gists_url":"https://api.github.com/users/matthewjackowski/gists{/gist_id}","starred_url":"https://api.github.com/users/matthewjackowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthewjackowski/subscriptions","organizations_url":"https://api.github.com/users/matthewjackowski/orgs","repos_url":"https://api.github.com/users/matthewjackowski/repos","events_url":"https://api.github.com/users/matthewjackowski/events{/privacy}","received_events_url":"https://api.github.com/users/matthewjackowski/received_events","type":"User","site_admin":false},"committer":{"login":"matthewjackowski","id":974299,"avatar_url":"https://avatars.githubusercontent.com/u/974299?v=3","gravatar_id":"","url":"https://api.github.com/users/matthewjackowski","html_url":"https://github.com/matthewjackowski","followers_url":"https://api.github.com/users/matthewjackowski/followers","following_url":"https://api.github.com/users/matthewjackowski/following{/other_user}","gists_url":"https://api.github.com/users/matthewjackowski/gists{/gist_id}","starred_url":"https://api.github.com/users/matthewjackowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthewjackowski/subscriptions","organizations_url":"https://api.github.com/users/matthewjackowski/orgs","repos_url":"https://api.github.com/users/matthewjackowski/repos","events_url":"https://api.github.com/users/matthewjackowski/events{/privacy}","received_events_url":"https://api.github.com/users/matthewjackowski/received_events","type":"User","site_admin":false},"parents":[{"sha":"61e01fc7270052ac327c8938e63d1f1942a44372","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/61e01fc7270052ac327c8938e63d1f1942a44372","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/61e01fc7270052ac327c8938e63d1f1942a44372"}],"stats":{"total":2,"additions":2,"deletions":0},"files":[{"sha":"a93e31a00137e0bd23db5bc7720568f8e908b2b6","filename":"sample.po","status":"modified","additions":2,"deletions":0,"changes":2,"blob_url":"https://github.com/txgh-bot/txgh-test-resources/blob/6eebc3eee49e8d46f6dbec16fe3360961bfdd8ed/sample.po","raw_url":"https://github.com/txgh-bot/txgh-test-resources/raw/6eebc3eee49e8d46f6dbec16fe3360961bfdd8ed/sample.po","contents_url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/contents/sample.po?ref=6eebc3eee49e8d46f6dbec16fe3360961bfdd8ed","patch":"@@
150
+ -34,3 +34,5 @@ msgid \"Eight\"\n msgstr \"Eight\"\n msgid \"Nine\"\n msgstr
151
+ \"Nine\"\n+msgid \"Ten\"\n+msgstr \"Ten\""}]}'
152
+ http_version:
153
+ recorded_at: Fri, 12 Feb 2016 19:48:55 GMT
154
+ - request:
155
+ method: get
156
+ uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/572b0507c4109703788333808a0b0019c0000f50?recursive=1
157
+ body:
158
+ encoding: US-ASCII
159
+ string: ''
160
+ headers:
161
+ Accept:
162
+ - application/vnd.github.v3+json
163
+ User-Agent:
164
+ - Octokit Ruby Gem 4.2.0
165
+ Content-Type:
166
+ - application/json
167
+ Authorization:
168
+ - token <GITHUB_TOKEN>
169
+ Accept-Encoding:
170
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
171
+ response:
172
+ status:
173
+ code: 200
174
+ message: OK
175
+ headers:
176
+ Server:
177
+ - GitHub.com
178
+ Date:
179
+ - Fri, 12 Feb 2016 19:48:55 GMT
180
+ Content-Type:
181
+ - application/json; charset=utf-8
182
+ Transfer-Encoding:
183
+ - chunked
184
+ Status:
185
+ - 200 OK
186
+ X-Ratelimit-Limit:
187
+ - '5000'
188
+ X-Ratelimit-Remaining:
189
+ - '4991'
190
+ X-Ratelimit-Reset:
191
+ - '1455310132'
192
+ Cache-Control:
193
+ - private, max-age=60, s-maxage=60
194
+ Last-Modified:
195
+ - Mon, 11 Jan 2016 23:45:43 GMT
196
+ Etag:
197
+ - W/"07cd463077f05587402e4f0815c49053"
198
+ X-Oauth-Scopes:
199
+ - public_repo
200
+ X-Accepted-Oauth-Scopes:
201
+ - ''
202
+ Vary:
203
+ - Accept, Authorization, Cookie, X-GitHub-OTP
204
+ - Accept-Encoding
205
+ X-Github-Media-Type:
206
+ - github.v3; format=json
207
+ Access-Control-Allow-Credentials:
208
+ - 'true'
209
+ Access-Control-Expose-Headers:
210
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
211
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
212
+ Access-Control-Allow-Origin:
213
+ - "*"
214
+ Content-Security-Policy:
215
+ - default-src 'none'
216
+ Strict-Transport-Security:
217
+ - max-age=31536000; includeSubdomains; preload
218
+ X-Content-Type-Options:
219
+ - nosniff
220
+ X-Frame-Options:
221
+ - deny
222
+ X-Xss-Protection:
223
+ - 1; mode=block
224
+ X-Served-By:
225
+ - 065b43cd9674091fec48a221b420fbb3
226
+ X-Github-Request-Id:
227
+ - 04358C36:14594:ED05BBF:56BE3727
228
+ body:
229
+ encoding: UTF-8
230
+ string: '{"sha":"572b0507c4109703788333808a0b0019c0000f50","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/572b0507c4109703788333808a0b0019c0000f50","tree":[{"path":"README.md","mode":"100644","type":"blob","sha":"cee445fa5bceaeb83c8d443b28f1647c2feff565","size":53,"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/cee445fa5bceaeb83c8d443b28f1647c2feff565"},{"path":"sample.po","mode":"100644","type":"blob","sha":"a93e31a00137e0bd23db5bc7720568f8e908b2b6","size":855,"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/a93e31a00137e0bd23db5bc7720568f8e908b2b6"},{"path":"translations","mode":"040000","type":"tree","sha":"5b5d383f4f107ff4d53c8fa4ce1166b63d1a4458","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/5b5d383f4f107ff4d53c8fa4ce1166b63d1a4458"},{"path":"translations/el_GR","mode":"040000","type":"tree","sha":"396520f008766ce17de7b254cdfd3d7b4eda6b44","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/396520f008766ce17de7b254cdfd3d7b4eda6b44"},{"path":"translations/el_GR/sample.po","mode":"100644","type":"blob","sha":"98f5f909182137fd6416b4e672a85c013fef7a3a","size":1181,"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/98f5f909182137fd6416b4e672a85c013fef7a3a"},{"path":"translations/el_GR/test.txt","mode":"100644","type":"blob","sha":"f16628a67170414c9d346279f2595e77a1c3cf0f","size":28,"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/f16628a67170414c9d346279f2595e77a1c3cf0f"},{"path":"translations/test.txt","mode":"100644","type":"blob","sha":"f16628a67170414c9d346279f2595e77a1c3cf0f","size":28,"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/f16628a67170414c9d346279f2595e77a1c3cf0f"}],"truncated":false}'
231
+ http_version:
232
+ recorded_at: Fri, 12 Feb 2016 19:48:55 GMT
233
+ - request:
234
+ method: get
235
+ uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/a93e31a00137e0bd23db5bc7720568f8e908b2b6
236
+ body:
237
+ encoding: US-ASCII
238
+ string: ''
239
+ headers:
240
+ Accept:
241
+ - application/vnd.github.v3+json
242
+ User-Agent:
243
+ - Octokit Ruby Gem 4.2.0
244
+ Content-Type:
245
+ - application/json
246
+ Authorization:
247
+ - token <GITHUB_TOKEN>
248
+ Accept-Encoding:
249
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
250
+ response:
251
+ status:
252
+ code: 200
253
+ message: OK
254
+ headers:
255
+ Server:
256
+ - GitHub.com
257
+ Date:
258
+ - Fri, 12 Feb 2016 19:48:56 GMT
259
+ Content-Type:
260
+ - application/json; charset=utf-8
261
+ Transfer-Encoding:
262
+ - chunked
263
+ Status:
264
+ - 200 OK
265
+ X-Ratelimit-Limit:
266
+ - '5000'
267
+ X-Ratelimit-Remaining:
268
+ - '4990'
269
+ X-Ratelimit-Reset:
270
+ - '1455310132'
271
+ Cache-Control:
272
+ - private, max-age=60, s-maxage=60
273
+ Etag:
274
+ - W/"dbb7c82142b789308c5d1aae70171c46"
275
+ X-Oauth-Scopes:
276
+ - public_repo
277
+ X-Accepted-Oauth-Scopes:
278
+ - ''
279
+ Vary:
280
+ - Accept, Authorization, Cookie, X-GitHub-OTP
281
+ - Accept-Encoding
282
+ X-Github-Media-Type:
283
+ - github.v3; format=json
284
+ Access-Control-Allow-Credentials:
285
+ - 'true'
286
+ Access-Control-Expose-Headers:
287
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
288
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
289
+ Access-Control-Allow-Origin:
290
+ - "*"
291
+ Content-Security-Policy:
292
+ - default-src 'none'
293
+ Strict-Transport-Security:
294
+ - max-age=31536000; includeSubdomains; preload
295
+ X-Content-Type-Options:
296
+ - nosniff
297
+ X-Frame-Options:
298
+ - deny
299
+ X-Xss-Protection:
300
+ - 1; mode=block
301
+ X-Served-By:
302
+ - a51acaae89a7607fd7ee967627be18e4
303
+ X-Github-Request-Id:
304
+ - 04358C36:14595:117D11BE:56BE3727
305
+ body:
306
+ encoding: UTF-8
307
+ string: '{"sha":"a93e31a00137e0bd23db5bc7720568f8e908b2b6","size":855,"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/a93e31a00137e0bd23db5bc7720568f8e908b2b6","content":"IyBUcmFuc2xhdGlvbiBmaWxlIGZvciBUcmFuc2lmZXguCiMgQ29weXJpZ2h0\nIChDKSAyMDA3LTIwMTAgSW5kaWZleCBMdGQuCiMgVGhpcyBmaWxlIGlzIGRp\nc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIFRyYW5z\naWZleCBwYWNrYWdlLgojCiMgVHJhbnNsYXRvcnM6Cm1zZ2lkICIiCm1zZ3N0\nciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBUcmFuc2lmZXhcbiIKIlJlcG9y\ndC1Nc2dpZC1CdWdzLVRvOiBcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDE1\nLTAyLTE3IDIwOjEwKzAwMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMTMt\nMTAtMjIgMTA6NTcrMDAwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBJbGlhcy1E\naW1pdHJpb3MgVnJhY2huaXNcbiIKIkxhbmd1YWdlLVRlYW06IExBTkdVQUdF\nIDxMTEBsaS5vcmc+XG4iCiJMYW5ndWFnZTogZW5cbiIKIk1JTUUtVmVyc2lv\nbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9\nVVRGLThcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIK\nIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xu\nIgptc2dpZCAiT25lIgptc2dzdHIgIk9uZSIKbXNnaWQgIlR3byIKbXNnc3Ry\nICJUd28iCm1zZ2lkICJUaHJlZSIKbXNnc3RyICJUaHJlZSIKbXNnaWQgIkZv\ndXIiCm1zZ3N0ciAiRm91ciIKbXNnaWQgIkZpdmUiCm1zZ3N0ciAiRml2ZSIK\nbXNnaWQgIlNpeCIKbXNnc3RyICJTaXgiCm1zZ2lkICJTZXZlbiIKbXNnc3Ry\nICJTZXZlbiIKbXNnaWQgIkVpZ2h0Igptc2dzdHIgIkVpZ2h0Igptc2dpZCAi\nTmluZSIKbXNnc3RyICJOaW5lIgptc2dpZCAiVGVuIgptc2dzdHIgIlRlbiIK\n","encoding":"base64"}'
308
+ http_version:
309
+ recorded_at: Fri, 12 Feb 2016 19:48:56 GMT
310
+ - request:
311
+ method: get
312
+ uri: https://txgh.bot:<TRANSIFEX_PASSWORD>@www.transifex.com/api/2/project/test-project-88/resource/samplepo/
313
+ body:
314
+ encoding: US-ASCII
315
+ string: ''
316
+ headers:
317
+ User-Agent:
318
+ - Faraday v0.9.2
319
+ Accept:
320
+ - application/json
321
+ Accept-Encoding:
322
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
323
+ response:
324
+ status:
325
+ code: 200
326
+ message: OK
327
+ headers:
328
+ Server:
329
+ - nginx
330
+ Vary:
331
+ - Accept-Encoding
332
+ - Authorization, Host, Accept-Language, Cookie
333
+ Cache-Control:
334
+ - max-age=0
335
+ Content-Type:
336
+ - application/json; charset=utf-8
337
+ Date:
338
+ - Fri, 12 Feb 2016 19:48:56 GMT
339
+ Expires:
340
+ - Fri, 12 Feb 2016 19:48:56 GMT
341
+ Transfer-Encoding:
342
+ - chunked
343
+ Content-Language:
344
+ - en
345
+ X-Content-Type-Options:
346
+ - nosniff
347
+ Connection:
348
+ - keep-alive
349
+ Set-Cookie:
350
+ - X-Mapping-fjhppofk=7BA9C65DD9CD0F1A96194A82BFB61D00; path=/
351
+ Last-Modified:
352
+ - Fri, 12 Feb 2016 19:48:56 GMT
353
+ X-Frame-Options:
354
+ - SAMEORIGIN
355
+ body:
356
+ encoding: UTF-8
357
+ string: "{\n \"source_language_code\": \"en\", \n \"name\": \"sample.po\",
358
+ \n \"i18n_type\": \"PO\", \n \"priority\": \"0\", \n \"slug\": \"samplepo\",
359
+ \n \"categories\": [\n \"branch:refs/tags/L10N\", \n \"author:Txgh
360
+ Bot\"\n ]\n}"
361
+ http_version:
362
+ recorded_at: Fri, 12 Feb 2016 19:48:56 GMT
363
+ - request:
364
+ method: get
365
+ uri: https://txgh.bot:<TRANSIFEX_PASSWORD>@www.transifex.com/api/2/project/test-project-88/resource/samplepo/
366
+ body:
367
+ encoding: US-ASCII
368
+ string: ''
369
+ headers:
370
+ User-Agent:
371
+ - Faraday v0.9.2
372
+ Accept:
373
+ - application/json
374
+ Accept-Encoding:
375
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
376
+ response:
377
+ status:
378
+ code: 200
379
+ message: OK
380
+ headers:
381
+ Server:
382
+ - nginx
383
+ Vary:
384
+ - Accept-Encoding
385
+ - Authorization, Host, Accept-Language, Cookie
386
+ Cache-Control:
387
+ - max-age=0
388
+ Content-Type:
389
+ - application/json; charset=utf-8
390
+ Date:
391
+ - Fri, 12 Feb 2016 19:48:57 GMT
392
+ Expires:
393
+ - Fri, 12 Feb 2016 19:48:57 GMT
394
+ Transfer-Encoding:
395
+ - chunked
396
+ Content-Language:
397
+ - en
398
+ X-Content-Type-Options:
399
+ - nosniff
400
+ Connection:
401
+ - keep-alive
402
+ Set-Cookie:
403
+ - X-Mapping-fjhppofk=C7ADAD16FC9FAF25B589211B926C5FF5; path=/
404
+ Last-Modified:
405
+ - Fri, 12 Feb 2016 19:48:57 GMT
406
+ X-Frame-Options:
407
+ - SAMEORIGIN
408
+ body:
409
+ encoding: UTF-8
410
+ string: "{\n \"source_language_code\": \"en\", \n \"name\": \"sample.po\",
411
+ \n \"i18n_type\": \"PO\", \n \"priority\": \"0\", \n \"slug\": \"samplepo\",
412
+ \n \"categories\": [\n \"branch:refs/tags/L10N\", \n \"author:Txgh
413
+ Bot\"\n ]\n}"
414
+ http_version:
415
+ recorded_at: Fri, 12 Feb 2016 19:48:57 GMT
416
+ - request:
417
+ method: put
418
+ uri: https://txgh.bot:<TRANSIFEX_PASSWORD>@www.transifex.com/api/2/project/test-project-88/resource/samplepo/
419
+ body:
420
+ encoding: UTF-8
421
+ string: '{"categories":["branch:refs/tags/L10N","author:Txgh Bot"]}'
422
+ headers:
423
+ User-Agent:
424
+ - Faraday v0.9.2
425
+ Accept:
426
+ - application/json
427
+ Content-Type:
428
+ - application/json
429
+ Accept-Encoding:
430
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
431
+ response:
432
+ status:
433
+ code: 200
434
+ message: OK
435
+ headers:
436
+ Server:
437
+ - nginx
438
+ Vary:
439
+ - Accept-Encoding
440
+ - Authorization, Host, Accept-Language, Cookie
441
+ Cache-Control:
442
+ - max-age=0
443
+ Content-Type:
444
+ - text/plain
445
+ Date:
446
+ - Fri, 12 Feb 2016 19:48:57 GMT
447
+ Expires:
448
+ - Fri, 12 Feb 2016 19:48:57 GMT
449
+ Transfer-Encoding:
450
+ - chunked
451
+ Content-Language:
452
+ - en
453
+ X-Content-Type-Options:
454
+ - nosniff
455
+ Connection:
456
+ - keep-alive
457
+ Set-Cookie:
458
+ - X-Mapping-fjhppofk=EB51E54611BEFDE531C59D8E5F7EF32B; path=/
459
+ Last-Modified:
460
+ - Fri, 12 Feb 2016 19:48:57 GMT
461
+ X-Frame-Options:
462
+ - SAMEORIGIN
463
+ body:
464
+ encoding: UTF-8
465
+ string: OK
466
+ http_version:
467
+ recorded_at: Fri, 12 Feb 2016 19:48:58 GMT
468
+ - request:
469
+ method: put
470
+ uri: https://txgh.bot:<TRANSIFEX_PASSWORD>@www.transifex.com/api/2/project/test-project-88/resource/samplepo/content/
471
+ body:
472
+ encoding: UTF-8
473
+ string: "-------------RubyMultipartPost\r\nContent-Disposition: form-data; name=\"content\";
474
+ filename=\"sample.po\"\r\nContent-Length: 855\r\nContent-Type: application/octet-stream\r\nContent-Transfer-Encoding:
475
+ binary\r\n\r\n# Translation file for Transifex.\n# Copyright (C) 2007-2010
476
+ Indifex Ltd.\n# This file is distributed under the same license as the Transifex
477
+ package.\n#\n# Translators:\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version:
478
+ Transifex\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2015-02-17
479
+ 20:10+0000\\n\"\n\"PO-Revision-Date: 2013-10-22 10:57+0000\\n\"\n\"Last-Translator:
480
+ Ilias-Dimitrios Vrachnis\\n\"\n\"Language-Team: LANGUAGE <LL@li.org>\\n\"\n\"Language:
481
+ en\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding:
482
+ 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\nmsgid \"One\"\nmsgstr
483
+ \"One\"\nmsgid \"Two\"\nmsgstr \"Two\"\nmsgid \"Three\"\nmsgstr \"Three\"\nmsgid
484
+ \"Four\"\nmsgstr \"Four\"\nmsgid \"Five\"\nmsgstr \"Five\"\nmsgid \"Six\"\nmsgstr
485
+ \"Six\"\nmsgid \"Seven\"\nmsgstr \"Seven\"\nmsgid \"Eight\"\nmsgstr \"Eight\"\nmsgid
486
+ \"Nine\"\nmsgstr \"Nine\"\nmsgid \"Ten\"\nmsgstr \"Ten\"\n\r\n-------------RubyMultipartPost--\r\n\r\n"
487
+ headers:
488
+ User-Agent:
489
+ - Faraday v0.9.2
490
+ Accept:
491
+ - application/json
492
+ Content-Type:
493
+ - multipart/form-data; boundary=-----------RubyMultipartPost
494
+ Content-Length:
495
+ - '1093'
496
+ Accept-Encoding:
497
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
498
+ response:
499
+ status:
500
+ code: 200
501
+ message: OK
502
+ headers:
503
+ Server:
504
+ - nginx
505
+ Vary:
506
+ - Accept-Encoding
507
+ - Authorization, Host, Accept-Language, Cookie
508
+ Cache-Control:
509
+ - max-age=0
510
+ Content-Type:
511
+ - application/json; charset=utf-8
512
+ Date:
513
+ - Fri, 12 Feb 2016 19:48:58 GMT
514
+ Expires:
515
+ - Fri, 12 Feb 2016 19:48:58 GMT
516
+ Transfer-Encoding:
517
+ - chunked
518
+ Content-Language:
519
+ - en
520
+ X-Content-Type-Options:
521
+ - nosniff
522
+ Connection:
523
+ - keep-alive
524
+ Set-Cookie:
525
+ - X-Mapping-fjhppofk=B8558B7BB369B761FC4CE03884ACF0F5; path=/
526
+ Last-Modified:
527
+ - Fri, 12 Feb 2016 19:48:58 GMT
528
+ X-Frame-Options:
529
+ - SAMEORIGIN
530
+ body:
531
+ encoding: UTF-8
532
+ string: "{\n \"strings_added\": 0, \n \"strings_updated\": 0, \n \"strings_delete\":
533
+ 0, \n \"redirect\": \"/txgh-test/test-project-88/samplepo/\"\n}"
534
+ http_version:
535
+ recorded_at: Fri, 12 Feb 2016 19:48:59 GMT
536
+ recorded_with: VCR 3.0.1
@@ -0,0 +1,47 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://txgh.bot:<TRANSIFEX_PASSWORD>@www.transifex.com/api/2/project/test-project-88/languages/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.2
12
+ Accept:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Vary:
24
+ - Accept-Encoding
25
+ - Authorization, Host, Accept-Language, Cookie
26
+ Content-Type:
27
+ - application/json; charset=utf-8
28
+ Date:
29
+ - Fri, 12 Feb 2016 19:48:59 GMT
30
+ Transfer-Encoding:
31
+ - chunked
32
+ Content-Language:
33
+ - en
34
+ X-Content-Type-Options:
35
+ - nosniff
36
+ Connection:
37
+ - keep-alive
38
+ Set-Cookie:
39
+ - X-Mapping-fjhppofk=B8558B7BB369B761FC4CE03884ACF0F5; path=/
40
+ X-Frame-Options:
41
+ - SAMEORIGIN
42
+ body:
43
+ encoding: UTF-8
44
+ string: "[]"
45
+ http_version:
46
+ recorded_at: Fri, 12 Feb 2016 19:48:59 GMT
47
+ recorded_with: VCR 3.0.1