txgh 5.2.2 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d86b85d3a0e6b469f3bc95cdef1466411fdc47b3
4
- data.tar.gz: 242943f98c86f024b50def7e63f4629bec4be820
3
+ metadata.gz: da73a2ba9cb72597e6abc0367c6e50368239ac1f
4
+ data.tar.gz: 5b1bff59f2805f6d26175895d9343c3a036e2808
5
5
  SHA512:
6
- metadata.gz: 817e48e025cffdfbe5e8c0e17eb1a8fa3f3c12b50b9b77b58fabf14475d9794e9ed4920ca996b053b74b122056a436b67dfef515c68ca235336c934efaab431f
7
- data.tar.gz: d12f65ae2de2435a914bba9b70844f9204d54759b32aa3f753031a4667ec5160b68667c812c4c30eef6016533217b410cbd585d211aa6c386c04a74929a6e64a
6
+ metadata.gz: ccc0c69d5cd08cb77f624bd8f8457277461dd4033be38667621dcaacc606023cb3f743c1b6ed6b641f532e51ae1ae40bccd6d278acd73a35f6f6bb369a4c3778
7
+ data.tar.gz: af15bf78523dbe2719ad3412993b84aa7529bd4f1c30e222fd564f6bba742725cb1d20e9958004153869a3ad8f8b24e3106ffbbf96f78a89d841bd732c5bed35
@@ -33,6 +33,24 @@ module Txgh
33
33
  client.create_ref(repo, branch, sha) rescue false
34
34
  end
35
35
 
36
+ def update_contents(repo, branch, content_map, message)
37
+ content_map.each do |path, new_contents|
38
+ branch = Utils.relative_branch(branch)
39
+ file = client.contents(repo, { path: path, ref: branch})
40
+ current_contents = Base64.decode64(file[:content])
41
+ current_sha = file[:sha]
42
+
43
+ new_sha = Utils.git_hash_blob(new_contents)
44
+ options = { branch: branch }
45
+
46
+ if current_sha != new_sha
47
+ client.update_contents(
48
+ repo, path, message, current_sha, new_contents, options
49
+ )
50
+ end
51
+ end
52
+ end
53
+
36
54
  def commit(repo, branch, content_map, message, allow_empty = false)
37
55
  parent = client.ref(repo, branch)
38
56
  base_commit = get_commit(repo, parent[:object][:sha])
@@ -18,7 +18,10 @@ module Txgh
18
18
  message = commit_message_for(language, file_name)
19
19
 
20
20
  if translations
21
- repo.api.commit(repo.name, branch, { file_name => translations }, message)
21
+ repo.api.update_contents(
22
+ repo.name, branch, { file_name => translations }, message
23
+ )
24
+
22
25
  fire_event_for(tx_resource, branch, language)
23
26
  end
24
27
  end
data/lib/txgh/utils.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'digest'
2
+
1
3
  module Txgh
2
4
  module Utils
3
5
  def slugify(text)
@@ -18,6 +20,10 @@ module Txgh
18
20
  end
19
21
  end
20
22
 
23
+ def relative_branch(branch)
24
+ branch.strip.sub(/\A(heads|tags)\//, '')
25
+ end
26
+
21
27
  def branches_equal?(first, second)
22
28
  absolute_branch(first) == absolute_branch(second)
23
29
  end
@@ -26,6 +32,10 @@ module Txgh
26
32
  ref.include?('tags/')
27
33
  end
28
34
 
35
+ def git_hash_blob(str)
36
+ Digest::SHA1.hexdigest("blob #{str.bytesize}\0#{str}")
37
+ end
38
+
29
39
  # Builds a hash from an array of hashes using a common key present in all
30
40
  # the elements. For example, consider this array of hashes:
31
41
  #
data/lib/txgh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Txgh
2
- VERSION = '5.2.2'
2
+ VERSION = '5.3.0'
3
3
  end
@@ -35,6 +35,41 @@ describe GithubApi do
35
35
  end
36
36
  end
37
37
 
38
+ describe '#update_contents' do
39
+ let(:path) { 'path/to/file.txt' }
40
+ let(:old_contents) { 'abc123' }
41
+ let(:old_sha) { Utils.git_hash_blob(old_contents) }
42
+
43
+ it 'updates the given file contents' do
44
+ new_contents = 'def456'
45
+
46
+ expect(client).to(
47
+ receive(:contents)
48
+ .with(repo, { ref: branch, path: path })
49
+ .and_return({ sha: old_sha, content: Base64.encode64(old_contents) })
50
+ )
51
+
52
+ expect(client).to(
53
+ receive(:update_contents)
54
+ .with(repo, path, 'message', old_sha, new_contents, { branch: branch })
55
+ )
56
+
57
+ api.update_contents(repo, branch, { path => new_contents }, 'message')
58
+ end
59
+
60
+ it "doesn't update the file contents if the file hasn't changed" do
61
+ expect(client).to(
62
+ receive(:contents)
63
+ .with(repo, { ref: branch, path: path })
64
+ .and_return({ sha: old_sha, content: Base64.encode64(old_contents) })
65
+ )
66
+
67
+ expect(client).to_not receive(:update_contents)
68
+
69
+ api.update_contents(repo, branch, { path => old_contents }, 'message')
70
+ end
71
+ end
72
+
38
73
  describe '#commit' do
39
74
  let(:path) { 'path/to/translations' }
40
75
  let(:other_path) { 'other/path/to/translations' }
@@ -43,7 +43,7 @@ describe HookHandler do
43
43
 
44
44
  it 'downloads translations and pushes them to the correct branch (head)' do
45
45
  expect(github_api).to(
46
- receive(:commit).with(
46
+ receive(:update_contents).with(
47
47
  repo_name, "heads/#{branch}",
48
48
  { "translations/#{language}/sample.yml" => translations },
49
49
  "Updating #{language} translations in #{file_name}"
@@ -90,7 +90,7 @@ describe HookHandler do
90
90
  end
91
91
 
92
92
  expect(github_api).to(
93
- receive(:commit).with(
93
+ receive(:update_contents).with(
94
94
  repo_name, ref,
95
95
  { "translations/#{language}/sample.yml" => translations },
96
96
  "Updating #{language} translations in #{file_name}"
@@ -108,7 +108,7 @@ describe HookHandler do
108
108
 
109
109
  it 'downloads translations and pushes them to the tag' do
110
110
  expect(github_api).to(
111
- receive(:commit).with(
111
+ receive(:update_contents).with(
112
112
  repo_name, "tags/my_tag",
113
113
  { "translations/#{language}/sample.yml" => translations },
114
114
  "Updating #{language} translations in #{file_name}"
@@ -126,7 +126,7 @@ describe HookHandler do
126
126
  let(:supported_languages) { ['ja'] }
127
127
 
128
128
  it "doesn't make a commit" do
129
- expect(github_api).to_not receive(:commit)
129
+ expect(github_api).to_not receive(:update_contents)
130
130
 
131
131
  response = handler.execute
132
132
  expect(response.status).to eq(304)
@@ -20,31 +20,29 @@ http_interactions:
20
20
  headers:
21
21
  Server:
22
22
  - nginx
23
- Vary:
24
- - Accept-Encoding
25
- - Authorization, Host, Accept-Language, Cookie
26
- Cache-Control:
27
- - max-age=0
23
+ Date:
24
+ - Tue, 28 Jun 2016 22:05:59 GMT
28
25
  Content-Type:
29
26
  - application/json; charset=utf-8
30
- Date:
31
- - Fri, 29 Apr 2016 16:06:38 GMT
32
- Expires:
33
- - Fri, 29 Apr 2016 16:06:38 GMT
34
27
  Transfer-Encoding:
35
28
  - chunked
36
- Content-Language:
37
- - en
38
- X-Content-Type-Options:
39
- - nosniff
40
29
  Connection:
41
30
  - keep-alive
42
- Set-Cookie:
43
- - X-Mapping-fjhppofk=D7F0B90A7FEFB2573FEF4C177EEBE6A8; path=/
31
+ Vary:
32
+ - Accept-Encoding
33
+ - Authorization, Host, Accept-Language, Cookie
34
+ Content-Language:
35
+ - en
36
+ Expires:
37
+ - Tue, 28 Jun 2016 22:05:59 GMT
44
38
  Last-Modified:
45
- - Fri, 29 Apr 2016 16:06:38 GMT
39
+ - Tue, 28 Jun 2016 22:05:59 GMT
40
+ Cache-Control:
41
+ - max-age=0
46
42
  X-Frame-Options:
47
43
  - SAMEORIGIN
44
+ X-Content-Type-Options:
45
+ - nosniff
48
46
  body:
49
47
  encoding: UTF-8
50
48
  string: "{\n \"content\": \"# Translation file for Transifex.\\n# Copyright
@@ -63,89 +61,10 @@ http_interactions:
63
61
  \\\"Eight\\\"\\nmsgstr \\\"\\\"\\n\\nmsgid \\\"Nine\\\"\\nmsgstr \\\"\\\"\\n\\nmsgid
64
62
  \\\"Ten\\\"\\nmsgstr \\\"\\\"\\n\", \n \"mimetype\": \"text/x-po\"\n}"
65
63
  http_version:
66
- recorded_at: Fri, 29 Apr 2016 16:06:41 GMT
67
- - request:
68
- method: get
69
- uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/git/refs/heads/master
70
- body:
71
- encoding: US-ASCII
72
- string: ''
73
- headers:
74
- Accept:
75
- - application/vnd.github.v3+json
76
- User-Agent:
77
- - Octokit Ruby Gem 4.3.0
78
- Content-Type:
79
- - application/json
80
- Authorization:
81
- - token <GITHUB_TOKEN>
82
- Accept-Encoding:
83
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
84
- response:
85
- status:
86
- code: 200
87
- message: OK
88
- headers:
89
- Server:
90
- - GitHub.com
91
- Date:
92
- - Fri, 29 Apr 2016 16:06:48 GMT
93
- Content-Type:
94
- - application/json; charset=utf-8
95
- Transfer-Encoding:
96
- - chunked
97
- Status:
98
- - 200 OK
99
- X-Ratelimit-Limit:
100
- - '5000'
101
- X-Ratelimit-Remaining:
102
- - '4988'
103
- X-Ratelimit-Reset:
104
- - '1461949570'
105
- Cache-Control:
106
- - private, max-age=60, s-maxage=60
107
- Vary:
108
- - Accept, Authorization, Cookie, X-GitHub-OTP
109
- - Accept-Encoding
110
- Etag:
111
- - W/"a5fe675407899fa4460005cce07b9fe2"
112
- Last-Modified:
113
- - Mon, 11 Jan 2016 23:45:43 GMT
114
- X-Poll-Interval:
115
- - '300'
116
- X-Oauth-Scopes:
117
- - public_repo
118
- X-Accepted-Oauth-Scopes:
119
- - ''
120
- X-Github-Media-Type:
121
- - github.v3; format=json
122
- Access-Control-Expose-Headers:
123
- - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
124
- X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
125
- Access-Control-Allow-Origin:
126
- - "*"
127
- Content-Security-Policy:
128
- - default-src 'none'
129
- Strict-Transport-Security:
130
- - max-age=31536000; includeSubdomains; preload
131
- X-Content-Type-Options:
132
- - nosniff
133
- X-Frame-Options:
134
- - deny
135
- X-Xss-Protection:
136
- - 1; mode=block
137
- X-Served-By:
138
- - d0b3c2c33a23690498aa8e70a435a259
139
- X-Github-Request-Id:
140
- - 438EEBFC:76D2:F87C5CA:57238694
141
- body:
142
- encoding: UTF-8
143
- string: '{"ref":"refs/heads/master","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/refs/heads/master","object":{"sha":"f3edb21f027b70974750649ba29b0090e410ecde","type":"commit","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/commits/f3edb21f027b70974750649ba29b0090e410ecde"}}'
144
- http_version:
145
- recorded_at: Fri, 29 Apr 2016 16:06:49 GMT
64
+ recorded_at: Tue, 28 Jun 2016 22:05:59 GMT
146
65
  - request:
147
66
  method: get
148
- uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/f3edb21f027b70974750649ba29b0090e410ecde
67
+ uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/contents/translations/el_GR/sample.po?ref=master
149
68
  body:
150
69
  encoding: US-ASCII
151
70
  string: ''
@@ -168,7 +87,7 @@ http_interactions:
168
87
  Server:
169
88
  - GitHub.com
170
89
  Date:
171
- - Fri, 29 Apr 2016 16:06:54 GMT
90
+ - Tue, 28 Jun 2016 22:05:59 GMT
172
91
  Content-Type:
173
92
  - application/json; charset=utf-8
174
93
  Transfer-Encoding:
@@ -178,16 +97,16 @@ http_interactions:
178
97
  X-Ratelimit-Limit:
179
98
  - '5000'
180
99
  X-Ratelimit-Remaining:
181
- - '4987'
100
+ - '4999'
182
101
  X-Ratelimit-Reset:
183
- - '1461949570'
102
+ - '1467155159'
184
103
  Cache-Control:
185
104
  - private, max-age=60, s-maxage=60
186
105
  Vary:
187
106
  - Accept, Authorization, Cookie, X-GitHub-OTP
188
107
  - Accept-Encoding
189
108
  Etag:
190
- - W/"825a857c42f7c79a3d43dfabbf7bd1b4"
109
+ - W/"0c4897447f15f3dad309a5e63b994f66"
191
110
  Last-Modified:
192
111
  - Wed, 27 Apr 2016 17:33:49 GMT
193
112
  X-Oauth-Scopes:
@@ -212,345 +131,14 @@ http_interactions:
212
131
  X-Xss-Protection:
213
132
  - 1; mode=block
214
133
  X-Served-By:
215
- - a7f8a126c9ed3f1c4715a34c0ddc7290
216
- X-Github-Request-Id:
217
- - 438EEBFC:76D4:1CED3E16:57238699
218
- body:
219
- encoding: UTF-8
220
- string: '{"sha":"f3edb21f027b70974750649ba29b0090e410ecde","commit":{"author":{"name":"txgh-bot","email":"txgh.bot@gmail.com","date":"2016-04-27T17:33:49Z"},"committer":{"name":"txgh-bot","email":"txgh.bot@gmail.com","date":"2016-04-27T17:33:49Z"},"message":"Updating
221
- translations for translations/el_GR/sample.po","tree":{"sha":"fb0bb964adae138921edd29647d100350a0a25d0","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/fb0bb964adae138921edd29647d100350a0a25d0"},"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/commits/f3edb21f027b70974750649ba29b0090e410ecde","comment_count":0},"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/f3edb21f027b70974750649ba29b0090e410ecde","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/f3edb21f027b70974750649ba29b0090e410ecde","comments_url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/f3edb21f027b70974750649ba29b0090e410ecde/comments","author":{"login":"txgh-bot","id":16723366,"avatar_url":"https://avatars.githubusercontent.com/u/16723366?v=3","gravatar_id":"","url":"https://api.github.com/users/txgh-bot","html_url":"https://github.com/txgh-bot","followers_url":"https://api.github.com/users/txgh-bot/followers","following_url":"https://api.github.com/users/txgh-bot/following{/other_user}","gists_url":"https://api.github.com/users/txgh-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/txgh-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/txgh-bot/subscriptions","organizations_url":"https://api.github.com/users/txgh-bot/orgs","repos_url":"https://api.github.com/users/txgh-bot/repos","events_url":"https://api.github.com/users/txgh-bot/events{/privacy}","received_events_url":"https://api.github.com/users/txgh-bot/received_events","type":"User","site_admin":false},"committer":{"login":"txgh-bot","id":16723366,"avatar_url":"https://avatars.githubusercontent.com/u/16723366?v=3","gravatar_id":"","url":"https://api.github.com/users/txgh-bot","html_url":"https://github.com/txgh-bot","followers_url":"https://api.github.com/users/txgh-bot/followers","following_url":"https://api.github.com/users/txgh-bot/following{/other_user}","gists_url":"https://api.github.com/users/txgh-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/txgh-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/txgh-bot/subscriptions","organizations_url":"https://api.github.com/users/txgh-bot/orgs","repos_url":"https://api.github.com/users/txgh-bot/repos","events_url":"https://api.github.com/users/txgh-bot/events{/privacy}","received_events_url":"https://api.github.com/users/txgh-bot/received_events","type":"User","site_admin":false},"parents":[{"sha":"89275cd4a7b4f36f00282689610cec9b2a970834","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/89275cd4a7b4f36f00282689610cec9b2a970834","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/89275cd4a7b4f36f00282689610cec9b2a970834"}],"stats":{"total":2,"additions":1,"deletions":1},"files":[{"sha":"540a3d944ac19f573e756de687c8c4f3f9847b53","filename":"translations/el_GR/sample.po","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/txgh-bot/txgh-test-resources/blob/f3edb21f027b70974750649ba29b0090e410ecde/translations/el_GR/sample.po","raw_url":"https://github.com/txgh-bot/txgh-test-resources/raw/f3edb21f027b70974750649ba29b0090e410ecde/translations/el_GR/sample.po","contents_url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/contents/translations/el_GR/sample.po?ref=f3edb21f027b70974750649ba29b0090e410ecde","patch":"@@
222
- -9,7 +9,7 @@ msgstr \"\"\n \"Project-Id-Version: test-project\\n\"\n \"Report-Msgid-Bugs-To:
223
- \\n\"\n \"POT-Creation-Date: 2015-02-17 20:10+0000\\n\"\n-\"PO-Revision-Date:
224
- 2016-02-05 23:57+0000\\n\"\n+\"PO-Revision-Date: 2016-01-19 19:08+0000\\n\"\n
225
- \"Last-Translator: Ilias-Dimitrios Vrachnis\\n\"\n \"Language-Team: Greek
226
- (Greece) (http://www.transifex.com/txgh-test/test-project-88/language/el_GR/)\\n\"\n
227
- \"MIME-Version: 1.0\\n\""}]}'
228
- http_version:
229
- recorded_at: Fri, 29 Apr 2016 16:06:57 GMT
230
- - request:
231
- method: post
232
- uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs
233
- body:
234
- encoding: UTF-8
235
- string: '{"content":"# Translation file for Transifex.\n# Copyright (C) 2007-2010
236
- Indifex Ltd.\n# This file is distributed under the same license as the Transifex
237
- package.\n# \n# Translators:\n# Translators:\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version:
238
- test-project\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2015-02-17
239
- 20:10+0000\\n\"\n\"PO-Revision-Date: 2016-01-19 19:08+0000\\n\"\n\"Last-Translator:
240
- Ilias-Dimitrios Vrachnis\\n\"\n\"Language-Team: Greek (Greece) (http://www.transifex.com/txgh-test/test-project-88/language/el_GR/)\\n\"\n\"MIME-Version:
241
- 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding:
242
- 8bit\\n\"\n\"Language: el_GR\\n\"\n\"Plural-Forms: nplurals=2; plural=(n !=
243
- 1);\\n\"\n\nmsgid \"One\"\nmsgstr \"\"\n\nmsgid \"Two\"\nmsgstr \"\"\n\nmsgid
244
- \"Three\"\nmsgstr \"\"\n\nmsgid \"Four\"\nmsgstr \"\"\n\nmsgid \"Five\"\nmsgstr
245
- \"\"\n\nmsgid \"Six\"\nmsgstr \"\"\n\nmsgid \"Seven\"\nmsgstr \"\"\n\nmsgid
246
- \"Eight\"\nmsgstr \"\"\n\nmsgid \"Nine\"\nmsgstr \"\"\n\nmsgid \"Ten\"\nmsgstr
247
- \"\"\n","encoding":"utf-8"}'
248
- headers:
249
- Accept:
250
- - application/vnd.github.v3+json
251
- User-Agent:
252
- - Octokit Ruby Gem 4.3.0
253
- Content-Type:
254
- - application/json
255
- Authorization:
256
- - token <GITHUB_TOKEN>
257
- Accept-Encoding:
258
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
259
- response:
260
- status:
261
- code: 201
262
- message: Created
263
- headers:
264
- Server:
265
- - GitHub.com
266
- Date:
267
- - Fri, 29 Apr 2016 16:07:00 GMT
268
- Content-Type:
269
- - application/json; charset=utf-8
270
- Content-Length:
271
- - '167'
272
- Status:
273
- - 201 Created
274
- X-Ratelimit-Limit:
275
- - '5000'
276
- X-Ratelimit-Remaining:
277
- - '4986'
278
- X-Ratelimit-Reset:
279
- - '1461949570'
280
- Cache-Control:
281
- - private, max-age=60, s-maxage=60
282
- Vary:
283
- - Accept, Authorization, Cookie, X-GitHub-OTP
284
- - Accept-Encoding
285
- Etag:
286
- - '"ed992de3605511d4d93bfd55ab933696"'
287
- X-Oauth-Scopes:
288
- - public_repo
289
- X-Accepted-Oauth-Scopes:
290
- - ''
291
- Location:
292
- - https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/540a3d944ac19f573e756de687c8c4f3f9847b53
293
- X-Github-Media-Type:
294
- - github.v3; format=json
295
- Access-Control-Expose-Headers:
296
- - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
297
- X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
298
- Access-Control-Allow-Origin:
299
- - "*"
300
- Content-Security-Policy:
301
- - default-src 'none'
302
- Strict-Transport-Security:
303
- - max-age=31536000; includeSubdomains; preload
304
- X-Content-Type-Options:
305
- - nosniff
306
- X-Frame-Options:
307
- - deny
308
- X-Xss-Protection:
309
- - 1; mode=block
310
- X-Served-By:
311
- - 7b641bda7ec2ca7cd9df72d2578baf75
312
- X-Github-Request-Id:
313
- - 438EEBFC:76D7:19A400E9:572386A1
314
- body:
315
- encoding: UTF-8
316
- string: '{"sha":"540a3d944ac19f573e756de687c8c4f3f9847b53","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/540a3d944ac19f573e756de687c8c4f3f9847b53"}'
317
- http_version:
318
- recorded_at: Fri, 29 Apr 2016 16:07:01 GMT
319
- - request:
320
- method: post
321
- uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees
322
- body:
323
- encoding: UTF-8
324
- string: '{"base_tree":"fb0bb964adae138921edd29647d100350a0a25d0","tree":[{"path":"translations/el_GR/sample.po","mode":"100644","type":"blob","sha":"540a3d944ac19f573e756de687c8c4f3f9847b53"}]}'
325
- headers:
326
- Accept:
327
- - application/vnd.github.v3+json
328
- User-Agent:
329
- - Octokit Ruby Gem 4.3.0
330
- Content-Type:
331
- - application/json
332
- Authorization:
333
- - token <GITHUB_TOKEN>
334
- Accept-Encoding:
335
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
336
- response:
337
- status:
338
- code: 201
339
- message: Created
340
- headers:
341
- Server:
342
- - GitHub.com
343
- Date:
344
- - Fri, 29 Apr 2016 16:07:05 GMT
345
- Content-Type:
346
- - application/json; charset=utf-8
347
- Content-Length:
348
- - '1323'
349
- Status:
350
- - 201 Created
351
- X-Ratelimit-Limit:
352
- - '5000'
353
- X-Ratelimit-Remaining:
354
- - '4985'
355
- X-Ratelimit-Reset:
356
- - '1461949570'
357
- Cache-Control:
358
- - private, max-age=60, s-maxage=60
359
- Vary:
360
- - Accept, Authorization, Cookie, X-GitHub-OTP
361
- - Accept-Encoding
362
- Etag:
363
- - '"ee25b6150834713923850d7c815c3c39"'
364
- X-Oauth-Scopes:
365
- - public_repo
366
- X-Accepted-Oauth-Scopes:
367
- - ''
368
- Location:
369
- - https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/fb0bb964adae138921edd29647d100350a0a25d0
370
- X-Github-Media-Type:
371
- - github.v3; format=json
372
- Access-Control-Expose-Headers:
373
- - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
374
- X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
375
- Access-Control-Allow-Origin:
376
- - "*"
377
- Content-Security-Policy:
378
- - default-src 'none'
379
- Strict-Transport-Security:
380
- - max-age=31536000; includeSubdomains; preload
381
- X-Content-Type-Options:
382
- - nosniff
383
- X-Frame-Options:
384
- - deny
385
- X-Xss-Protection:
386
- - 1; mode=block
387
- X-Served-By:
388
- - 07ff1c8a09e44b62e277fae50a1b1dc4
389
- X-Github-Request-Id:
390
- - 438EEBFC:76D5:248FA4A1:572386A5
391
- body:
392
- encoding: UTF-8
393
- string: '{"sha":"fb0bb964adae138921edd29647d100350a0a25d0","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/fb0bb964adae138921edd29647d100350a0a25d0","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":"test.yml","mode":"100644","type":"blob","sha":"7f2c77eec6692bc2ef95f7a7baede6e84179fe1d","size":44,"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/7f2c77eec6692bc2ef95f7a7baede6e84179fe1d"},{"path":"translations","mode":"040000","type":"tree","sha":"64881902c6515e26c22e022abc0bedeaa15eafdc","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/64881902c6515e26c22e022abc0bedeaa15eafdc"},{"path":"tx.config","mode":"100644","type":"blob","sha":"294be94dbb8d1d2ae6d30c51869912ff3a0d9e40","size":295,"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/294be94dbb8d1d2ae6d30c51869912ff3a0d9e40"}],"truncated":false}'
394
- http_version:
395
- recorded_at: Fri, 29 Apr 2016 16:07:06 GMT
396
- - request:
397
- method: post
398
- uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/git/commits
399
- body:
400
- encoding: UTF-8
401
- string: '{"message":"Updating translations for translations/el_GR/sample.po","tree":"fb0bb964adae138921edd29647d100350a0a25d0","parents":["f3edb21f027b70974750649ba29b0090e410ecde"]}'
402
- headers:
403
- Accept:
404
- - application/vnd.github.v3+json
405
- User-Agent:
406
- - Octokit Ruby Gem 4.3.0
407
- Content-Type:
408
- - application/json
409
- Authorization:
410
- - token <GITHUB_TOKEN>
411
- Accept-Encoding:
412
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
413
- response:
414
- status:
415
- code: 201
416
- message: Created
417
- headers:
418
- Server:
419
- - GitHub.com
420
- Date:
421
- - Fri, 29 Apr 2016 16:07:09 GMT
422
- Content-Type:
423
- - application/json; charset=utf-8
424
- Content-Length:
425
- - '990'
426
- Status:
427
- - 201 Created
428
- X-Ratelimit-Limit:
429
- - '5000'
430
- X-Ratelimit-Remaining:
431
- - '4984'
432
- X-Ratelimit-Reset:
433
- - '1461949570'
434
- Cache-Control:
435
- - private, max-age=60, s-maxage=60
436
- Vary:
437
- - Accept, Authorization, Cookie, X-GitHub-OTP
438
- - Accept-Encoding
439
- Etag:
440
- - '"2b5680dc5bfdac9282ee911424290f33"'
441
- X-Oauth-Scopes:
442
- - public_repo
443
- X-Accepted-Oauth-Scopes:
444
- - ''
445
- Location:
446
- - https://api.github.com/repos/txgh-bot/txgh-test-resources/git/commits/239f32750810ac8f366f0e81dc9f59e12e467dbd
447
- X-Github-Media-Type:
448
- - github.v3; format=json
449
- Access-Control-Expose-Headers:
450
- - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
451
- X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
452
- Access-Control-Allow-Origin:
453
- - "*"
454
- Content-Security-Policy:
455
- - default-src 'none'
456
- Strict-Transport-Security:
457
- - max-age=31536000; includeSubdomains; preload
458
- X-Content-Type-Options:
459
- - nosniff
460
- X-Frame-Options:
461
- - deny
462
- X-Xss-Protection:
463
- - 1; mode=block
464
- X-Served-By:
465
- - a474937f3b2fa272558fa6dc951018ad
466
- X-Github-Request-Id:
467
- - 438EEBFC:76D0:74E0358:572386AB
468
- body:
469
- encoding: UTF-8
470
- string: '{"sha":"239f32750810ac8f366f0e81dc9f59e12e467dbd","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/commits/239f32750810ac8f366f0e81dc9f59e12e467dbd","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/239f32750810ac8f366f0e81dc9f59e12e467dbd","author":{"name":"txgh-bot","email":"txgh.bot@gmail.com","date":"2016-04-29T16:07:09Z"},"committer":{"name":"txgh-bot","email":"txgh.bot@gmail.com","date":"2016-04-29T16:07:09Z"},"tree":{"sha":"fb0bb964adae138921edd29647d100350a0a25d0","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/fb0bb964adae138921edd29647d100350a0a25d0"},"message":"Updating
471
- translations for translations/el_GR/sample.po","parents":[{"sha":"f3edb21f027b70974750649ba29b0090e410ecde","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/commits/f3edb21f027b70974750649ba29b0090e410ecde","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/f3edb21f027b70974750649ba29b0090e410ecde"}]}'
472
- http_version:
473
- recorded_at: Fri, 29 Apr 2016 16:07:10 GMT
474
- - request:
475
- method: get
476
- uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/compare/f3edb21f027b70974750649ba29b0090e410ecde...239f32750810ac8f366f0e81dc9f59e12e467dbd
477
- body:
478
- encoding: US-ASCII
479
- string: ''
480
- headers:
481
- Accept:
482
- - application/vnd.github.v3+json
483
- User-Agent:
484
- - Octokit Ruby Gem 4.3.0
485
- Content-Type:
486
- - application/json
487
- Authorization:
488
- - token <GITHUB_TOKEN>
489
- Accept-Encoding:
490
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
491
- response:
492
- status:
493
- code: 200
494
- message: OK
495
- headers:
496
- Server:
497
- - GitHub.com
498
- Date:
499
- - Fri, 29 Apr 2016 16:07:13 GMT
500
- Content-Type:
501
- - application/json; charset=utf-8
502
- Transfer-Encoding:
503
- - chunked
504
- Status:
505
- - 200 OK
506
- X-Ratelimit-Limit:
507
- - '5000'
508
- X-Ratelimit-Remaining:
509
- - '4983'
510
- X-Ratelimit-Reset:
511
- - '1461949570'
512
- Cache-Control:
513
- - private, max-age=60, s-maxage=60
514
- Vary:
515
- - Accept, Authorization, Cookie, X-GitHub-OTP
516
- - Accept-Encoding
517
- Etag:
518
- - W/"f26d4497b0d6852e8df96aacb42ed451"
519
- Last-Modified:
520
- - Fri, 29 Apr 2016 16:07:09 GMT
521
- X-Oauth-Scopes:
522
- - public_repo
523
- X-Accepted-Oauth-Scopes:
524
- - ''
525
- X-Github-Media-Type:
526
- - github.v3; format=json
527
- Access-Control-Expose-Headers:
528
- - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
529
- X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
530
- Access-Control-Allow-Origin:
531
- - "*"
532
- Content-Security-Policy:
533
- - default-src 'none'
534
- Strict-Transport-Security:
535
- - max-age=31536000; includeSubdomains; preload
536
- X-Content-Type-Options:
537
- - nosniff
538
- X-Frame-Options:
539
- - deny
540
- X-Xss-Protection:
541
- - 1; mode=block
542
- X-Served-By:
543
- - 07ff1c8a09e44b62e277fae50a1b1dc4
134
+ - 593010132f82159af0ded24b4932e109
544
135
  X-Github-Request-Id:
545
- - 438EEBFC:76D6:29C55EF8:572386AE
136
+ - 6171B7B3:3981:20641D9:5772F4C7
546
137
  body:
547
138
  encoding: UTF-8
548
- string: '{"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/compare/f3edb21f027b70974750649ba29b0090e410ecde...239f32750810ac8f366f0e81dc9f59e12e467dbd","html_url":"https://github.com/txgh-bot/txgh-test-resources/compare/f3edb21f027b70974750649ba29b0090e410ecde...239f32750810ac8f366f0e81dc9f59e12e467dbd","permalink_url":"https://github.com/txgh-bot/txgh-test-resources/compare/txgh-bot:f3edb21...txgh-bot:239f327","diff_url":"https://github.com/txgh-bot/txgh-test-resources/compare/f3edb21f027b70974750649ba29b0090e410ecde...239f32750810ac8f366f0e81dc9f59e12e467dbd.diff","patch_url":"https://github.com/txgh-bot/txgh-test-resources/compare/f3edb21f027b70974750649ba29b0090e410ecde...239f32750810ac8f366f0e81dc9f59e12e467dbd.patch","base_commit":{"sha":"f3edb21f027b70974750649ba29b0090e410ecde","commit":{"author":{"name":"txgh-bot","email":"txgh.bot@gmail.com","date":"2016-04-27T17:33:49Z"},"committer":{"name":"txgh-bot","email":"txgh.bot@gmail.com","date":"2016-04-27T17:33:49Z"},"message":"Updating
549
- translations for translations/el_GR/sample.po","tree":{"sha":"fb0bb964adae138921edd29647d100350a0a25d0","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/fb0bb964adae138921edd29647d100350a0a25d0"},"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/commits/f3edb21f027b70974750649ba29b0090e410ecde","comment_count":0},"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/f3edb21f027b70974750649ba29b0090e410ecde","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/f3edb21f027b70974750649ba29b0090e410ecde","comments_url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/f3edb21f027b70974750649ba29b0090e410ecde/comments","author":{"login":"txgh-bot","id":16723366,"avatar_url":"https://avatars.githubusercontent.com/u/16723366?v=3","gravatar_id":"","url":"https://api.github.com/users/txgh-bot","html_url":"https://github.com/txgh-bot","followers_url":"https://api.github.com/users/txgh-bot/followers","following_url":"https://api.github.com/users/txgh-bot/following{/other_user}","gists_url":"https://api.github.com/users/txgh-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/txgh-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/txgh-bot/subscriptions","organizations_url":"https://api.github.com/users/txgh-bot/orgs","repos_url":"https://api.github.com/users/txgh-bot/repos","events_url":"https://api.github.com/users/txgh-bot/events{/privacy}","received_events_url":"https://api.github.com/users/txgh-bot/received_events","type":"User","site_admin":false},"committer":{"login":"txgh-bot","id":16723366,"avatar_url":"https://avatars.githubusercontent.com/u/16723366?v=3","gravatar_id":"","url":"https://api.github.com/users/txgh-bot","html_url":"https://github.com/txgh-bot","followers_url":"https://api.github.com/users/txgh-bot/followers","following_url":"https://api.github.com/users/txgh-bot/following{/other_user}","gists_url":"https://api.github.com/users/txgh-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/txgh-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/txgh-bot/subscriptions","organizations_url":"https://api.github.com/users/txgh-bot/orgs","repos_url":"https://api.github.com/users/txgh-bot/repos","events_url":"https://api.github.com/users/txgh-bot/events{/privacy}","received_events_url":"https://api.github.com/users/txgh-bot/received_events","type":"User","site_admin":false},"parents":[{"sha":"89275cd4a7b4f36f00282689610cec9b2a970834","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/89275cd4a7b4f36f00282689610cec9b2a970834","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/89275cd4a7b4f36f00282689610cec9b2a970834"}]},"merge_base_commit":{"sha":"f3edb21f027b70974750649ba29b0090e410ecde","commit":{"author":{"name":"txgh-bot","email":"txgh.bot@gmail.com","date":"2016-04-27T17:33:49Z"},"committer":{"name":"txgh-bot","email":"txgh.bot@gmail.com","date":"2016-04-27T17:33:49Z"},"message":"Updating
550
- translations for translations/el_GR/sample.po","tree":{"sha":"fb0bb964adae138921edd29647d100350a0a25d0","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/fb0bb964adae138921edd29647d100350a0a25d0"},"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/commits/f3edb21f027b70974750649ba29b0090e410ecde","comment_count":0},"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/f3edb21f027b70974750649ba29b0090e410ecde","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/f3edb21f027b70974750649ba29b0090e410ecde","comments_url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/f3edb21f027b70974750649ba29b0090e410ecde/comments","author":{"login":"txgh-bot","id":16723366,"avatar_url":"https://avatars.githubusercontent.com/u/16723366?v=3","gravatar_id":"","url":"https://api.github.com/users/txgh-bot","html_url":"https://github.com/txgh-bot","followers_url":"https://api.github.com/users/txgh-bot/followers","following_url":"https://api.github.com/users/txgh-bot/following{/other_user}","gists_url":"https://api.github.com/users/txgh-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/txgh-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/txgh-bot/subscriptions","organizations_url":"https://api.github.com/users/txgh-bot/orgs","repos_url":"https://api.github.com/users/txgh-bot/repos","events_url":"https://api.github.com/users/txgh-bot/events{/privacy}","received_events_url":"https://api.github.com/users/txgh-bot/received_events","type":"User","site_admin":false},"committer":{"login":"txgh-bot","id":16723366,"avatar_url":"https://avatars.githubusercontent.com/u/16723366?v=3","gravatar_id":"","url":"https://api.github.com/users/txgh-bot","html_url":"https://github.com/txgh-bot","followers_url":"https://api.github.com/users/txgh-bot/followers","following_url":"https://api.github.com/users/txgh-bot/following{/other_user}","gists_url":"https://api.github.com/users/txgh-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/txgh-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/txgh-bot/subscriptions","organizations_url":"https://api.github.com/users/txgh-bot/orgs","repos_url":"https://api.github.com/users/txgh-bot/repos","events_url":"https://api.github.com/users/txgh-bot/events{/privacy}","received_events_url":"https://api.github.com/users/txgh-bot/received_events","type":"User","site_admin":false},"parents":[{"sha":"89275cd4a7b4f36f00282689610cec9b2a970834","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/89275cd4a7b4f36f00282689610cec9b2a970834","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/89275cd4a7b4f36f00282689610cec9b2a970834"}]},"status":"ahead","ahead_by":1,"behind_by":0,"total_commits":1,"commits":[{"sha":"239f32750810ac8f366f0e81dc9f59e12e467dbd","commit":{"author":{"name":"txgh-bot","email":"txgh.bot@gmail.com","date":"2016-04-29T16:07:09Z"},"committer":{"name":"txgh-bot","email":"txgh.bot@gmail.com","date":"2016-04-29T16:07:09Z"},"message":"Updating
551
- translations for translations/el_GR/sample.po","tree":{"sha":"fb0bb964adae138921edd29647d100350a0a25d0","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/trees/fb0bb964adae138921edd29647d100350a0a25d0"},"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/commits/239f32750810ac8f366f0e81dc9f59e12e467dbd","comment_count":0},"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/239f32750810ac8f366f0e81dc9f59e12e467dbd","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/239f32750810ac8f366f0e81dc9f59e12e467dbd","comments_url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/239f32750810ac8f366f0e81dc9f59e12e467dbd/comments","author":{"login":"txgh-bot","id":16723366,"avatar_url":"https://avatars.githubusercontent.com/u/16723366?v=3","gravatar_id":"","url":"https://api.github.com/users/txgh-bot","html_url":"https://github.com/txgh-bot","followers_url":"https://api.github.com/users/txgh-bot/followers","following_url":"https://api.github.com/users/txgh-bot/following{/other_user}","gists_url":"https://api.github.com/users/txgh-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/txgh-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/txgh-bot/subscriptions","organizations_url":"https://api.github.com/users/txgh-bot/orgs","repos_url":"https://api.github.com/users/txgh-bot/repos","events_url":"https://api.github.com/users/txgh-bot/events{/privacy}","received_events_url":"https://api.github.com/users/txgh-bot/received_events","type":"User","site_admin":false},"committer":{"login":"txgh-bot","id":16723366,"avatar_url":"https://avatars.githubusercontent.com/u/16723366?v=3","gravatar_id":"","url":"https://api.github.com/users/txgh-bot","html_url":"https://github.com/txgh-bot","followers_url":"https://api.github.com/users/txgh-bot/followers","following_url":"https://api.github.com/users/txgh-bot/following{/other_user}","gists_url":"https://api.github.com/users/txgh-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/txgh-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/txgh-bot/subscriptions","organizations_url":"https://api.github.com/users/txgh-bot/orgs","repos_url":"https://api.github.com/users/txgh-bot/repos","events_url":"https://api.github.com/users/txgh-bot/events{/privacy}","received_events_url":"https://api.github.com/users/txgh-bot/received_events","type":"User","site_admin":false},"parents":[{"sha":"f3edb21f027b70974750649ba29b0090e410ecde","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/commits/f3edb21f027b70974750649ba29b0090e410ecde","html_url":"https://github.com/txgh-bot/txgh-test-resources/commit/f3edb21f027b70974750649ba29b0090e410ecde"}]}],"files":[]}'
139
+ string: '{"name":"sample.po","path":"translations/el_GR/sample.po","sha":"540a3d944ac19f573e756de687c8c4f3f9847b53","size":911,"url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/contents/translations/el_GR/sample.po?ref=master","html_url":"https://github.com/txgh-bot/txgh-test-resources/blob/master/translations/el_GR/sample.po","git_url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/540a3d944ac19f573e756de687c8c4f3f9847b53","download_url":"https://raw.githubusercontent.com/txgh-bot/txgh-test-resources/master/translations/el_GR/sample.po","type":"file","content":"IyBUcmFuc2xhdGlvbiBmaWxlIGZvciBUcmFuc2lmZXguCiMgQ29weXJpZ2h0\nIChDKSAyMDA3LTIwMTAgSW5kaWZleCBMdGQuCiMgVGhpcyBmaWxlIGlzIGRp\nc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIFRyYW5z\naWZleCBwYWNrYWdlLgojIAojIFRyYW5zbGF0b3JzOgojIFRyYW5zbGF0b3Jz\nOgptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogdGVz\ndC1wcm9qZWN0XG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCiJQT1Qt\nQ3JlYXRpb24tRGF0ZTogMjAxNS0wMi0xNyAyMDoxMCswMDAwXG4iCiJQTy1S\nZXZpc2lvbi1EYXRlOiAyMDE2LTAxLTE5IDE5OjA4KzAwMDBcbiIKIkxhc3Qt\nVHJhbnNsYXRvcjogSWxpYXMtRGltaXRyaW9zIFZyYWNobmlzXG4iCiJMYW5n\ndWFnZS1UZWFtOiBHcmVlayAoR3JlZWNlKSAoaHR0cDovL3d3dy50cmFuc2lm\nZXguY29tL3R4Z2gtdGVzdC90ZXN0LXByb2plY3QtODgvbGFuZ3VhZ2UvZWxf\nR1IvKVxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTog\ndGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOFxuIgoiQ29udGVudC1UcmFuc2Zl\nci1FbmNvZGluZzogOGJpdFxuIgoiTGFuZ3VhZ2U6IGVsX0dSXG4iCiJQbHVy\nYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKCm1z\nZ2lkICJPbmUiCm1zZ3N0ciAiIgoKbXNnaWQgIlR3byIKbXNnc3RyICIiCgpt\nc2dpZCAiVGhyZWUiCm1zZ3N0ciAiIgoKbXNnaWQgIkZvdXIiCm1zZ3N0ciAi\nIgoKbXNnaWQgIkZpdmUiCm1zZ3N0ciAiIgoKbXNnaWQgIlNpeCIKbXNnc3Ry\nICIiCgptc2dpZCAiU2V2ZW4iCm1zZ3N0ciAiIgoKbXNnaWQgIkVpZ2h0Igpt\nc2dzdHIgIiIKCm1zZ2lkICJOaW5lIgptc2dzdHIgIiIKCm1zZ2lkICJUZW4i\nCm1zZ3N0ciAiIgo=\n","encoding":"base64","_links":{"self":"https://api.github.com/repos/txgh-bot/txgh-test-resources/contents/translations/el_GR/sample.po?ref=master","git":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/blobs/540a3d944ac19f573e756de687c8c4f3f9847b53","html":"https://github.com/txgh-bot/txgh-test-resources/blob/master/translations/el_GR/sample.po"}}'
552
140
  http_version:
553
- recorded_at: Fri, 29 Apr 2016 16:07:14 GMT
141
+ recorded_at: Tue, 28 Jun 2016 22:06:00 GMT
554
142
  - request:
555
143
  method: get
556
144
  uri: https://api.github.com/repos/txgh-bot/txgh-test-resources/git/refs/heads/master
@@ -576,7 +164,7 @@ http_interactions:
576
164
  Server:
577
165
  - GitHub.com
578
166
  Date:
579
- - Fri, 29 Apr 2016 16:07:17 GMT
167
+ - Tue, 28 Jun 2016 22:06:00 GMT
580
168
  Content-Type:
581
169
  - application/json; charset=utf-8
582
170
  Transfer-Encoding:
@@ -586,9 +174,9 @@ http_interactions:
586
174
  X-Ratelimit-Limit:
587
175
  - '5000'
588
176
  X-Ratelimit-Remaining:
589
- - '4982'
177
+ - '4998'
590
178
  X-Ratelimit-Reset:
591
- - '1461949570'
179
+ - '1467155159'
592
180
  Cache-Control:
593
181
  - private, max-age=60, s-maxage=60
594
182
  Vary:
@@ -622,12 +210,12 @@ http_interactions:
622
210
  X-Xss-Protection:
623
211
  - 1; mode=block
624
212
  X-Served-By:
625
- - 8a5c38021a5cd7cef7b8f49a296fee40
213
+ - a30e6f9aa7cf5731b87dfb3b9992202d
626
214
  X-Github-Request-Id:
627
- - 438EEBFC:DA3E:27043083:572386B3
215
+ - 6171B7B3:3986:319BFEC:5772F4C8
628
216
  body:
629
217
  encoding: UTF-8
630
218
  string: '{"ref":"refs/heads/master","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/refs/heads/master","object":{"sha":"f3edb21f027b70974750649ba29b0090e410ecde","type":"commit","url":"https://api.github.com/repos/txgh-bot/txgh-test-resources/git/commits/f3edb21f027b70974750649ba29b0090e410ecde"}}'
631
219
  http_version:
632
- recorded_at: Fri, 29 Apr 2016 16:07:18 GMT
220
+ recorded_at: Tue, 28 Jun 2016 22:06:00 GMT
633
221
  recorded_with: VCR 3.0.1
@@ -31,7 +31,7 @@ describe ResourceCommitter do
31
31
  expect(downloader).to receive(:first).and_return([file_name, :translations])
32
32
 
33
33
  expect(github_api).to(
34
- receive(:commit).with(
34
+ receive(:update_contents).with(
35
35
  repo_name, branch, { file_name => :translations }, commit_message
36
36
  )
37
37
  )
data/spec/utils_spec.rb CHANGED
@@ -35,6 +35,20 @@ describe Utils do
35
35
  end
36
36
  end
37
37
 
38
+ describe '.relative_branch' do
39
+ it 'removes tags/ if present' do
40
+ expect(Utils.relative_branch('tags/foobar')).to eq('foobar')
41
+ end
42
+
43
+ it 'removes heads/ if present' do
44
+ expect(Utils.relative_branch('heads/foobar')).to eq('foobar')
45
+ end
46
+
47
+ it 'does nothing if no prefix can be removed' do
48
+ expect(Utils.relative_branch('abcdef')).to eq('abcdef')
49
+ end
50
+ end
51
+
38
52
  describe '.is_tag?' do
39
53
  it 'returns true if given a tag' do
40
54
  expect(Utils.is_tag?('tags/foo')).to eq(true)
@@ -46,6 +60,14 @@ describe Utils do
46
60
  end
47
61
  end
48
62
 
63
+ describe '.git_hash_blob' do
64
+ it 'calculates the git blob hash for the given string' do
65
+ expect(Utils.git_hash_blob('foobarbaz')).to eq(
66
+ '31e446dbb4751d2157c673a88826b3541ae073ea'
67
+ )
68
+ end
69
+ end
70
+
49
71
  describe '.index_on' do
50
72
  it 'correctly converts an array of hashes' do
51
73
  arr = [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: txgh
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.2
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Jackowski
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-06-27 00:00:00.000000000 Z
12
+ date: 2016-07-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: abroad