txgh-server 4.0.0.beta → 4.0.0.beta2

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
2
  SHA256:
3
- metadata.gz: 624a1efbe56943dcd522f2f2c9bc580cc5669e3098a14df6f9d55df17fe878d9
4
- data.tar.gz: e017f94f32be4224734a781c1b292c4bbde84543ed52ff12f3eda220071cff7f
3
+ metadata.gz: b75bee8da3b944c3ac42c25e6222b834f1d3045d421259322ec96f2983ac1202
4
+ data.tar.gz: 746b67747dbda0cee30ea11702b9d39c8d74de63d58618a6e5fa5f774e8658c4
5
5
  SHA512:
6
- metadata.gz: 4f577c8c66c7492acd7754cc4f320559fa4397d5bcc190ae822c36042d4c16f37e7a696e7e1ab1e72af52dfeb159e50efbac4857aa220097fff33b1d7fdcb8a2
7
- data.tar.gz: 4e4123765f6c42a35b57e8de274c106c571bf9255ec5e254db32c0c349afcde73024d31009cf6ab8a307abc14af0cae27027d931f3be62bbad4702d96ec44776
6
+ metadata.gz: 3b3bbf21430a0440970e081104dd25c1ce8dc5da12fe2c2b635117de6fdac16d3188905d51f4c2e9bce6282b079230ec79b6fe7094e6b426f8eed92cac1b7df1
7
+ data.tar.gz: 9debdbd596ef53db7b9af7a8cf2df9746518fde6bfdeef78f53a41c9d1ed29159cfac04a3f446c683c1dbcf8452e7de9318beb7815f0bab0ba5680b832043dfc
@@ -1,3 +1,3 @@
1
1
  module TxghServer
2
- VERSION = '4.0.0.beta'
2
+ VERSION = '4.0.0.beta2'
3
3
  end
@@ -30,7 +30,7 @@ describe TxghServer::DownloadHandler do
30
30
  it 'responds with a streaming zip and has the project name as the attachment' do
31
31
  response = described_class.handle_request(request)
32
32
  expect(response).to be_streaming
33
- expect(response).to be_a(ZipStreamResponse)
33
+ expect(response).to be_a(TxghServer::ZipStreamResponse)
34
34
  expect(response.attachment).to eq(project_name)
35
35
  end
36
36
 
@@ -40,7 +40,7 @@ describe TxghServer::DownloadHandler do
40
40
  it 'responds with a streaming tgz download' do
41
41
  response = described_class.handle_request(request)
42
42
  expect(response).to be_streaming
43
- expect(response).to be_a(TgzStreamResponse)
43
+ expect(response).to be_a(TxghServer::TgzStreamResponse)
44
44
  end
45
45
  end
46
46
 
@@ -60,7 +60,7 @@ describe TxghServer::DownloadHandler do
60
60
  end
61
61
 
62
62
  it 'responds with a streaming zip download' do
63
- expect(handler.execute).to be_a(ZipStreamResponse)
63
+ expect(handler.execute).to be_a(TxghServer::ZipStreamResponse)
64
64
  end
65
65
 
66
66
  it 'responds with the project name as the attachment' do
@@ -72,7 +72,7 @@ describe TxghServer::DownloadHandler do
72
72
  let(:format) { '.tgz' }
73
73
 
74
74
  it 'responds with a streaming tgz download' do
75
- expect(handler.execute).to be_a(TgzStreamResponse)
75
+ expect(handler.execute).to be_a(TxghServer::TgzStreamResponse)
76
76
  end
77
77
  end
78
78
 
@@ -1,40 +1,75 @@
1
1
  module IntegrationSetup
2
2
  extend RSpec::SharedContext
3
3
 
4
+ let(:git_source) { 'github' }
5
+ let(:project_name) { 'test-project-88' }
6
+ let(:repo_name) { 'txgh-bot/txgh-test-resources' }
7
+
4
8
  let(:base_config) do
5
- {
6
- 'github' => {
7
- 'repos' => {
8
- 'txgh-bot/txgh-test-resources' => {
9
- 'api_username' => 'txgh-bot',
10
- # github will auto-revoke a token if they notice it in one of your commits ;)
11
- 'api_token' => Base64.decode64('YjViYWY3Nzk5NTdkMzVlMmI0OGZmYjk4YThlY2M1ZDY0NzAwNWRhZA=='),
12
- 'push_source_to' => 'test-project-88',
13
- 'branch' => 'master'
9
+ if git_source == 'github'
10
+ {
11
+ git_source => {
12
+ 'repos' => {
13
+ repo_name => {
14
+ 'api_username' => 'txgh-bot',
15
+ # github will auto-revoke a token if they notice it in one of your commits ;)
16
+ 'api_token' => Base64.decode64('YjViYWY3Nzk5NTdkMzVlMmI0OGZmYjk4YThlY2M1ZDY0NzAwNWRhZA=='),
17
+ 'push_source_to' => project_name,
18
+ 'branch' => 'master',
19
+ 'webhook_secret' => '18d3998f576dfe933357104b87abfd61'
20
+ }
21
+ }
22
+ },
23
+ 'transifex' => {
24
+ 'projects' => {
25
+ project_name => {
26
+ 'tx_config' => 'file://./config/tx.config',
27
+ 'api_username' => 'txgh.bot',
28
+ 'api_password' => '2aqFGW99fPRKWvXBPjbrxkdiR',
29
+ 'push_translations_to' => 'txgh-bot/txgh-test-resources',
30
+ 'webhook_secret' => 'fce95b1748fd638c22174d34200f10cf',
31
+ 'languages' => ['el_GR']
32
+ }
14
33
  }
15
34
  }
16
- },
17
- 'transifex' => {
18
- 'projects' => {
19
- 'test-project-88' => {
20
- 'tx_config' => 'file://./config/tx.config',
21
- 'api_username' => 'txgh.bot',
22
- 'api_password' => '2aqFGW99fPRKWvXBPjbrxkdiR',
23
- 'push_translations_to' => 'txgh-bot/txgh-test-resources'
35
+ }
36
+ else
37
+ {
38
+ git_source => {
39
+ 'repos' => {
40
+ repo_name => {
41
+ 'api_token' => Base64.decode64('a3M1LV85TmFTaUwtOU5TUVJhcjE='),
42
+ 'push_source_to' => project_name,
43
+ 'branch' => 'all',
44
+ 'webhook_secret' => '123456789'
45
+ }
46
+ }
47
+ },
48
+ 'transifex' => {
49
+ 'projects' => {
50
+ project_name => {
51
+ 'organization' => 'lumos-labs',
52
+ 'tx_config' => 'file://./config/tx_gitlab.config',
53
+ 'api_username' => 'txgh.bot',
54
+ 'api_password' => '2aqFGW99fPRKWvXBPjbrxkdiR',
55
+ 'push_translations_to' => 'idanci/txgl-test',
56
+ 'webhook_secret' => '123456789',
57
+ 'languages' => ['de']
58
+ }
24
59
  }
25
60
  }
26
61
  }
27
- }
62
+ end
28
63
  end
29
64
 
30
65
  before(:all) do
31
66
  VCR.configure do |config|
32
67
  config.filter_sensitive_data('<GITHUB_TOKEN>') do
33
- base_config['github']['repos']['txgh-bot/txgh-test-resources']['api_token']
68
+ base_config[git_source]['repos'][repo_name]['api_token']
34
69
  end
35
70
 
36
71
  config.filter_sensitive_data('<TRANSIFEX_PASSWORD>') do
37
- base_config['transifex']['projects']['test-project-88']['api_password']
72
+ base_config['transifex']['projects'][project_name]['api_password']
38
73
  end
39
74
  end
40
75
  end
@@ -0,0 +1,446 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://gitlab.com/api/v4/projects/idanci%2Ftxgl-test/repository/files/config%2Flocales%2Fen.yml?ref=test_hook
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/json
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ User-Agent:
15
+ - Gitlab Ruby Gem 4.14.1
16
+ Private-Token:
17
+ - GITLAB_TOKEN
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Thu, 26 Mar 2020 17:18:41 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Content-Length:
30
+ - '624'
31
+ Cache-Control:
32
+ - max-age=0, private, must-revalidate
33
+ Etag:
34
+ - W/"e1ac536e3864cf5aafd56c71c1b9b227"
35
+ Vary:
36
+ - Origin
37
+ X-Content-Type-Options:
38
+ - nosniff
39
+ X-Frame-Options:
40
+ - SAMEORIGIN
41
+ X-Gitlab-Blob-Id:
42
+ - 000fd9156a0f5c8518a34ab5117654d70ba01752
43
+ X-Gitlab-Commit-Id:
44
+ - 3cb2cae6db2f31fa91061a0e04cc2cbcc26502d6
45
+ X-Gitlab-Content-Sha256:
46
+ - f4c639c3d033e282387f0a2c2cdacad7c503ea74484735240fbd84198d48d6bc
47
+ X-Gitlab-Encoding:
48
+ - base64
49
+ X-Gitlab-File-Name:
50
+ - en.yml
51
+ X-Gitlab-File-Path:
52
+ - config/locales/en.yml
53
+ X-Gitlab-Last-Commit-Id:
54
+ - 3cb2cae6db2f31fa91061a0e04cc2cbcc26502d6
55
+ X-Gitlab-Ref:
56
+ - test_hook
57
+ X-Gitlab-Size:
58
+ - '188'
59
+ X-Request-Id:
60
+ - r1ybeUijJB4
61
+ X-Runtime:
62
+ - '0.049508'
63
+ Strict-Transport-Security:
64
+ - max-age=31536000
65
+ Referrer-Policy:
66
+ - strict-origin-when-cross-origin
67
+ Ratelimit-Limit:
68
+ - '600'
69
+ Ratelimit-Observed:
70
+ - '1'
71
+ Ratelimit-Remaining:
72
+ - '599'
73
+ Ratelimit-Reset:
74
+ - '1585243181'
75
+ Ratelimit-Resettime:
76
+ - Thu, 26 Mar 2020 17:19:41 GMT
77
+ Gitlab-Lb:
78
+ - fe-08-lb-gprd
79
+ Gitlab-Sv:
80
+ - localhost
81
+ body:
82
+ encoding: UTF-8
83
+ string: '{"file_name":"en.yml","file_path":"config/locales/en.yml","size":188,"encoding":"base64","content_sha256":"f4c639c3d033e282387f0a2c2cdacad7c503ea74484735240fbd84198d48d6bc","ref":"test_hook","blob_id":"000fd9156a0f5c8518a34ab5117654d70ba01752","commit_id":"3cb2cae6db2f31fa91061a0e04cc2cbcc26502d6","last_commit_id":"3cb2cae6db2f31fa91061a0e04cc2cbcc26502d6","content":"ZW46CiAgdGVzdDogdGVzdAogIHRlc3QyOiB0ZXN0MgogIHRlc3QzOiB0ZXN0MwogIHRlc3Q0OiB0ZXN0NAogIHRlc3Q1OiB0ZXN0NQogIHRlc3Q2OiB0ZXN0NgogIHRlc3Q3OiB0ZXN0NwogIHRlc3Q4OiB0ZXN0OAogIHRlc3Q5OiB0ZXN0OQogIHRlc3QxMDogdGVzdDEwCiAgdGVzdDExOiB0ZXN0MTEKICB0ZXN0MTI6IHRlc3QxMgo="}'
84
+ http_version:
85
+ recorded_at: Thu, 26 Mar 2020 17:18:42 GMT
86
+ - request:
87
+ method: get
88
+ uri: https://www.transifex.com/api/2/project/txgl-test/resource/enyml-heads_test_hook/
89
+ body:
90
+ encoding: US-ASCII
91
+ string: ''
92
+ headers:
93
+ User-Agent:
94
+ - Faraday v0.17.3
95
+ Authorization:
96
+ - Basic AUTH
97
+ Accept:
98
+ - application/json
99
+ Accept-Encoding:
100
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
101
+ response:
102
+ status:
103
+ code: 404
104
+ message: Not Found
105
+ headers:
106
+ Server:
107
+ - nginx
108
+ Vary:
109
+ - Authorization, Host, Accept-Language, Cookie
110
+ Cache-Control:
111
+ - no-cache, no-store, must-revalidate, max-age=0
112
+ Content-Type:
113
+ - text/plain
114
+ Date:
115
+ - Thu, 26 Mar 2020 17:18:42 GMT
116
+ Expires:
117
+ - Thu, 26 Mar 2020 17:18:42 GMT
118
+ Content-Language:
119
+ - en
120
+ Connection:
121
+ - keep-alive
122
+ Set-Cookie:
123
+ - X-Mapping-fjhppofk=371E5B112B2394FA3017E8BE0809059C; path=/
124
+ X-Frame-Options:
125
+ - SAMEORIGIN
126
+ Content-Length:
127
+ - '9'
128
+ body:
129
+ encoding: UTF-8
130
+ string: Not Found
131
+ http_version:
132
+ recorded_at: Thu, 26 Mar 2020 17:18:43 GMT
133
+ - request:
134
+ method: post
135
+ uri: https://www.transifex.com/api/2/project/txgl-test/resources/
136
+ body:
137
+ encoding: UTF-8
138
+ string: "-------------RubyMultipartPost-87145cb29ab8ab8b5cb748ea0ec95cdd\r\nContent-Disposition:
139
+ form-data; name=\"slug\"\r\n\r\nenyml-heads_test_hook\r\n-------------RubyMultipartPost-87145cb29ab8ab8b5cb748ea0ec95cdd\r\nContent-Disposition:
140
+ form-data; name=\"name\"\r\n\r\nconfig/locales/en.yml (heads/test_hook)\r\n-------------RubyMultipartPost-87145cb29ab8ab8b5cb748ea0ec95cdd\r\nContent-Disposition:
141
+ form-data; name=\"i18n_type\"\r\n\r\nYML\r\n-------------RubyMultipartPost-87145cb29ab8ab8b5cb748ea0ec95cdd\r\nContent-Disposition:
142
+ form-data; name=\"categories\"\r\n\r\nauthor:Ivan_Danci branch:heads/test_hook\r\n-------------RubyMultipartPost-87145cb29ab8ab8b5cb748ea0ec95cdd\r\nContent-Disposition:
143
+ form-data; name=\"content\"; filename=\"en.yml\"\r\nContent-Length: 188\r\nContent-Type:
144
+ application/octet-stream\r\nContent-Transfer-Encoding: binary\r\n\r\nen:\n
145
+ \ test: test\n test2: test2\n test3: test3\n test4: test4\n test5: test5\n
146
+ \ test6: test6\n test7: test7\n test8: test8\n test9: test9\n test10:
147
+ test10\n test11: test11\n test12: test12\n\r\n-------------RubyMultipartPost-87145cb29ab8ab8b5cb748ea0ec95cdd--\r\n"
148
+ headers:
149
+ User-Agent:
150
+ - Faraday v0.17.3
151
+ Authorization:
152
+ - Basic AUTH
153
+ Accept:
154
+ - application/json
155
+ Content-Type:
156
+ - multipart/form-data; boundary=-----------RubyMultipartPost-87145cb29ab8ab8b5cb748ea0ec95cdd
157
+ Content-Length:
158
+ - '1057'
159
+ Accept-Encoding:
160
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
161
+ response:
162
+ status:
163
+ code: 201
164
+ message: Created
165
+ headers:
166
+ Server:
167
+ - nginx
168
+ Vary:
169
+ - Authorization, Host, Accept-Language, Cookie
170
+ Cache-Control:
171
+ - no-cache, no-store, must-revalidate, max-age=0
172
+ Content-Type:
173
+ - application/json; charset=utf-8
174
+ Date:
175
+ - Thu, 26 Mar 2020 17:18:44 GMT
176
+ Expires:
177
+ - Thu, 26 Mar 2020 17:18:44 GMT
178
+ Content-Language:
179
+ - en
180
+ Connection:
181
+ - keep-alive
182
+ Set-Cookie:
183
+ - X-Mapping-fjhppofk=300CA58EE011BC6BC0E393EE4F2B31F6; path=/
184
+ X-Frame-Options:
185
+ - SAMEORIGIN
186
+ Content-Length:
187
+ - '10'
188
+ body:
189
+ encoding: UTF-8
190
+ string: "[12, 0, 0]"
191
+ http_version:
192
+ recorded_at: Thu, 26 Mar 2020 17:18:44 GMT
193
+ - request:
194
+ method: get
195
+ uri: https://www.transifex.com/api/2/project/txgl-test/resources/
196
+ body:
197
+ encoding: US-ASCII
198
+ string: ''
199
+ headers:
200
+ User-Agent:
201
+ - Faraday v0.17.3
202
+ Authorization:
203
+ - Basic AUTH
204
+ Accept:
205
+ - application/json
206
+ Accept-Encoding:
207
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
208
+ response:
209
+ status:
210
+ code: 200
211
+ message: OK
212
+ headers:
213
+ Server:
214
+ - nginx
215
+ Vary:
216
+ - Accept-Encoding
217
+ - Authorization, Host, Accept-Language, Cookie
218
+ Cache-Control:
219
+ - no-cache, no-store, must-revalidate, max-age=0
220
+ Content-Type:
221
+ - application/json; charset=utf-8
222
+ Date:
223
+ - Thu, 26 Mar 2020 17:18:45 GMT
224
+ Expires:
225
+ - Thu, 26 Mar 2020 17:18:45 GMT
226
+ Transfer-Encoding:
227
+ - chunked
228
+ Content-Language:
229
+ - en
230
+ X-Content-Type-Options:
231
+ - nosniff
232
+ Connection:
233
+ - keep-alive
234
+ Set-Cookie:
235
+ - X-Mapping-fjhppofk=371E5B112B2394FA3017E8BE0809059C; path=/
236
+ X-Frame-Options:
237
+ - SAMEORIGIN
238
+ body:
239
+ encoding: ASCII-8BIT
240
+ string: "[\n {\n \"source_language_code\": \"en\", \n \"name\":
241
+ \"config/locales/en.yml (heads/master)\", \n \"i18n_type\": \"YAML_GENERIC\",
242
+ \n \"priority\": \"0\", \n \"slug\": \"enyml-heads_master\",
243
+ \n \"categories\": [\n \"branch:heads/master\", \n \"author:Ivan_Danci\"\n
244
+ \ ], \n \"metadata\": []\n }, \n {\n \"source_language_code\":
245
+ \"en\", \n \"name\": \"config/locales/en.yml (heads/test_hook)\", \n
246
+ \ \"i18n_type\": \"YML\", \n \"priority\": \"1\", \n \"slug\":
247
+ \"enyml-heads_test_hook\", \n \"categories\": [\n \"author:Ivan_Danci
248
+ branch:heads/test_hook\"\n ], \n \"metadata\": []\n }\n]"
249
+ http_version:
250
+ recorded_at: Thu, 26 Mar 2020 17:18:45 GMT
251
+ - request:
252
+ method: get
253
+ uri: https://gitlab.com/api/v4/projects/idanci%2Ftxgl-test/repository/commits/test_hook
254
+ body:
255
+ encoding: US-ASCII
256
+ string: ''
257
+ headers:
258
+ Accept:
259
+ - application/json
260
+ Content-Type:
261
+ - application/x-www-form-urlencoded
262
+ User-Agent:
263
+ - Gitlab Ruby Gem 4.14.1
264
+ Private-Token:
265
+ - GITLAB_TOKEN
266
+ response:
267
+ status:
268
+ code: 200
269
+ message: OK
270
+ headers:
271
+ Server:
272
+ - nginx
273
+ Date:
274
+ - Thu, 26 Mar 2020 17:18:46 GMT
275
+ Content-Type:
276
+ - application/json
277
+ Content-Length:
278
+ - '636'
279
+ Cache-Control:
280
+ - max-age=0, private, must-revalidate
281
+ Etag:
282
+ - W/"e31b8cbd9e69b70652fc4d5ab91c71e9"
283
+ Vary:
284
+ - Origin
285
+ X-Content-Type-Options:
286
+ - nosniff
287
+ X-Frame-Options:
288
+ - SAMEORIGIN
289
+ X-Request-Id:
290
+ - kKqrmM19JN2
291
+ X-Runtime:
292
+ - '0.054249'
293
+ Strict-Transport-Security:
294
+ - max-age=31536000
295
+ Referrer-Policy:
296
+ - strict-origin-when-cross-origin
297
+ Ratelimit-Limit:
298
+ - '600'
299
+ Ratelimit-Observed:
300
+ - '2'
301
+ Ratelimit-Remaining:
302
+ - '598'
303
+ Ratelimit-Reset:
304
+ - '1585243186'
305
+ Ratelimit-Resettime:
306
+ - Thu, 26 Mar 2020 17:19:46 GMT
307
+ Gitlab-Lb:
308
+ - fe-03-lb-gprd
309
+ Gitlab-Sv:
310
+ - localhost
311
+ body:
312
+ encoding: UTF-8
313
+ string: '{"id":"3cb2cae6db2f31fa91061a0e04cc2cbcc26502d6","short_id":"3cb2cae6","created_at":"2020-03-26T18:39:57.000+02:00","parent_ids":["f5e0d6b6541e1fcded6b0a751b5a511523768109"],"title":"Test","message":"Test\n","author_name":"Ivan
314
+ Danci","author_email":"bah4uk@gmail.com","authored_date":"2020-03-26T18:39:57.000+02:00","committer_name":"Ivan
315
+ Danci","committer_email":"bah4uk@gmail.com","committed_date":"2020-03-26T18:39:57.000+02:00","web_url":"https://gitlab.com/idanci/txgl-test/-/commit/3cb2cae6db2f31fa91061a0e04cc2cbcc26502d6","stats":{"additions":1,"deletions":0,"total":1},"status":null,"project_id":17514841,"last_pipeline":null}'
316
+ http_version:
317
+ recorded_at: Thu, 26 Mar 2020 17:18:46 GMT
318
+ - request:
319
+ method: get
320
+ uri: https://www.transifex.com/api/2/project/txgl-test/resource/enyml-heads_test_hook/stats/
321
+ body:
322
+ encoding: US-ASCII
323
+ string: ''
324
+ headers:
325
+ User-Agent:
326
+ - Faraday v0.17.3
327
+ Authorization:
328
+ - Basic AUTH
329
+ Accept:
330
+ - application/json
331
+ Accept-Encoding:
332
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
333
+ response:
334
+ status:
335
+ code: 200
336
+ message: OK
337
+ headers:
338
+ Server:
339
+ - nginx
340
+ Vary:
341
+ - Accept-Encoding
342
+ - Authorization, Host, Accept-Language, Cookie
343
+ Cache-Control:
344
+ - no-cache, no-store, must-revalidate, max-age=0
345
+ Content-Type:
346
+ - application/json; charset=utf-8
347
+ Date:
348
+ - Thu, 26 Mar 2020 17:18:46 GMT
349
+ Expires:
350
+ - Thu, 26 Mar 2020 17:18:46 GMT
351
+ Transfer-Encoding:
352
+ - chunked
353
+ Content-Language:
354
+ - en
355
+ X-Content-Type-Options:
356
+ - nosniff
357
+ Connection:
358
+ - keep-alive
359
+ Set-Cookie:
360
+ - X-Mapping-fjhppofk=100E7CB61F7D5C274279F09EADF920A3; path=/
361
+ X-Frame-Options:
362
+ - SAMEORIGIN
363
+ body:
364
+ encoding: ASCII-8BIT
365
+ string: "{\n \"de\": {\n \"proofread\": 0, \n \"proofread_percentage\":
366
+ \"0%\", \n \"reviewed_percentage\": \"0%\", \n \"completed\":
367
+ \"0%\", \n \"untranslated_words\": 12, \n \"last_commiter\":
368
+ \"txgh.user\", \n \"reviewed\": 0, \n \"translated_entities\":
369
+ 0, \n \"translated_words\": 0, \n \"last_update\": \"2020-03-26
370
+ 17:18:43\", \n \"untranslated_entities\": 12\n }, \n \"en\":
371
+ {\n \"proofread\": 0, \n \"proofread_percentage\": \"0%\", \n
372
+ \ \"reviewed_percentage\": \"0%\", \n \"completed\": \"100%\",
373
+ \n \"untranslated_words\": 0, \n \"last_commiter\": \"txgh.user\",
374
+ \n \"reviewed\": 0, \n \"translated_entities\": 12, \n \"translated_words\":
375
+ 12, \n \"last_update\": \"2020-03-26 17:18:43\", \n \"untranslated_entities\":
376
+ 0\n }\n}"
377
+ http_version:
378
+ recorded_at: Thu, 26 Mar 2020 17:18:46 GMT
379
+ - request:
380
+ method: post
381
+ uri: https://gitlab.com/api/v4/projects/idanci%2Ftxgl-test/statuses/3cb2cae6?context=continuous-localization/txgh&description=12/24%20translations%20complete.&state=pending&target_url=https://www.transifex.com/lumos-labs/txgl-test/content
382
+ body:
383
+ encoding: UTF-8
384
+ string: ''
385
+ headers:
386
+ Accept:
387
+ - application/json
388
+ Content-Type:
389
+ - application/x-www-form-urlencoded
390
+ User-Agent:
391
+ - Gitlab Ruby Gem 4.14.1
392
+ Private-Token:
393
+ - GITLAB_TOKEN
394
+ response:
395
+ status:
396
+ code: 201
397
+ message: Created
398
+ headers:
399
+ Server:
400
+ - nginx
401
+ Date:
402
+ - Thu, 26 Mar 2020 17:18:48 GMT
403
+ Content-Type:
404
+ - application/json
405
+ Content-Length:
406
+ - '593'
407
+ Cache-Control:
408
+ - max-age=0, private, must-revalidate
409
+ Etag:
410
+ - W/"7afbf8aec65349a3c64cf3b78e44c03e"
411
+ Vary:
412
+ - Origin
413
+ X-Content-Type-Options:
414
+ - nosniff
415
+ X-Frame-Options:
416
+ - SAMEORIGIN
417
+ X-Request-Id:
418
+ - XxeNSIHmZ89
419
+ X-Runtime:
420
+ - '0.267418'
421
+ Strict-Transport-Security:
422
+ - max-age=31536000
423
+ Referrer-Policy:
424
+ - strict-origin-when-cross-origin
425
+ Ratelimit-Limit:
426
+ - '600'
427
+ Ratelimit-Observed:
428
+ - '2'
429
+ Ratelimit-Remaining:
430
+ - '598'
431
+ Ratelimit-Reset:
432
+ - '1585243188'
433
+ Ratelimit-Resettime:
434
+ - Thu, 26 Mar 2020 17:19:48 GMT
435
+ Gitlab-Lb:
436
+ - fe-21-lb-gprd
437
+ Gitlab-Sv:
438
+ - localhost
439
+ body:
440
+ encoding: UTF-8
441
+ string: '{"id":487202387,"sha":"3cb2cae6db2f31fa91061a0e04cc2cbcc26502d6","ref":"test_hook","status":"pending","name":"continuous-localization/txgh","target_url":"https://www.transifex.com/lumos-labs/txgl-test/content","description":"12/24
442
+ translations complete.","created_at":"2020-03-26T17:18:48.294Z","started_at":null,"finished_at":null,"allow_failure":false,"coverage":null,"author":{"id":745271,"name":"Ivan
443
+ Danci","username":"idanci","state":"active","avatar_url":"https://secure.gravatar.com/avatar/dbda838e9b7bca615829ac151e01f3c0?s=80\u0026d=identicon","web_url":"https://gitlab.com/idanci"}}'
444
+ http_version:
445
+ recorded_at: Thu, 26 Mar 2020 17:18:48 GMT
446
+ recorded_with: VCR 3.0.3