txgh 7.0.2 → 7.0.3.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.
- checksums.yaml +4 -4
- data/lib/txgh/git_status.rb +1 -1
- data/lib/txgh/gitlab_api.rb +3 -3
- data/lib/txgh/utils.rb +4 -0
- data/lib/txgh/version.rb +1 -1
- data/spec/gitlab_api_spec.rb +75 -23
- data/spec/utils_spec.rb +14 -0
- data/txgh.gemspec +1 -1
- metadata +13 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c3a11b6e9eb48bcfe3241f743860dbb03ca79feabcc1fdd71003b0d63c5422e3
|
|
4
|
+
data.tar.gz: e242240afb44fcfaf2e02126a49e1289375ad70a2c86bdc3a90a4a1863c3e318
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bfb8768d65b42a633ae33941535267b6efac5efad04088768d53202ffb1b6d8cce2d00a5652639073e07a3768e30a85c96fb4aa4e3ee1db1a0205bc429f1919d
|
|
7
|
+
data.tar.gz: 1894bfaab37dea410cc31b6994e8d1a5ebeb1f0a1944db50d1990fe54d0fa8bd9c32cffe3470983912d3572bae0ca8bbb09f96f4a416b8128987842102819b7c
|
data/lib/txgh/git_status.rb
CHANGED
data/lib/txgh/gitlab_api.rb
CHANGED
|
@@ -16,7 +16,7 @@ module Txgh
|
|
|
16
16
|
content_list.each do |file_params|
|
|
17
17
|
path = file_params.fetch(:path)
|
|
18
18
|
new_contents = file_params.fetch(:contents)
|
|
19
|
-
branch = Utils.
|
|
19
|
+
branch = Utils.url_safe_relative_branch(branch)
|
|
20
20
|
|
|
21
21
|
file_sha = file_params.fetch(:sha) do
|
|
22
22
|
begin
|
|
@@ -42,13 +42,13 @@ module Txgh
|
|
|
42
42
|
# mock github response
|
|
43
43
|
{
|
|
44
44
|
object: {
|
|
45
|
-
sha: client.commit(repo_name,
|
|
45
|
+
sha: client.commit(repo_name, Utils.url_safe_relative_branch(ref)).short_id
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
def download(path, branch)
|
|
51
|
-
file = client.get_file(repo_name, path,
|
|
51
|
+
file = client.get_file(repo_name, path, Utils.url_safe_relative_branch(branch))
|
|
52
52
|
|
|
53
53
|
# mock github response
|
|
54
54
|
{
|
data/lib/txgh/utils.rb
CHANGED
data/lib/txgh/version.rb
CHANGED
data/spec/gitlab_api_spec.rb
CHANGED
|
@@ -5,7 +5,6 @@ describe Txgh::GitlabApi do
|
|
|
5
5
|
let(:client) { double(:client) }
|
|
6
6
|
let(:api) { described_class.create_from_client(client, repo) }
|
|
7
7
|
let(:repo) { 'my_org/my_repo' }
|
|
8
|
-
let(:branch) { 'master' }
|
|
9
8
|
let(:sha) { 'abc123' }
|
|
10
9
|
let(:gitlab_response) do
|
|
11
10
|
OpenStruct.new({
|
|
@@ -18,23 +17,19 @@ describe Txgh::GitlabApi do
|
|
|
18
17
|
})
|
|
19
18
|
end
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
let(:path) { 'path/to/file.txt' }
|
|
23
|
-
let(:old_contents) { 'abc123' }
|
|
24
|
-
let(:old_sha) { Txgh::Utils.git_hash_blob(old_contents) }
|
|
25
|
-
|
|
20
|
+
shared_examples 'an update_contents flow' do
|
|
26
21
|
it 'updates the given file contents' do
|
|
27
22
|
new_contents = 'def456'
|
|
28
23
|
|
|
29
24
|
expect(client).to(
|
|
30
25
|
receive(:get_file)
|
|
31
|
-
.with(repo, path,
|
|
26
|
+
.with(repo, path, url_safe_branch)
|
|
32
27
|
.and_return(double(blob_id: old_sha))
|
|
33
28
|
)
|
|
34
29
|
|
|
35
30
|
expect(client).to(
|
|
36
31
|
receive(:edit_file)
|
|
37
|
-
.with(repo, path,
|
|
32
|
+
.with(repo, path, url_safe_branch, new_contents, 'message')
|
|
38
33
|
)
|
|
39
34
|
|
|
40
35
|
api.update_contents(branch, [{ path: path, contents: new_contents }], 'message')
|
|
@@ -43,7 +38,7 @@ describe Txgh::GitlabApi do
|
|
|
43
38
|
it "doesn't update the file contents if the file hasn't changed" do
|
|
44
39
|
expect(client).to(
|
|
45
40
|
receive(:get_file)
|
|
46
|
-
.with(repo, path,
|
|
41
|
+
.with(repo, path, url_safe_branch)
|
|
47
42
|
.and_return(double(blob_id: old_sha))
|
|
48
43
|
)
|
|
49
44
|
|
|
@@ -58,27 +53,18 @@ describe Txgh::GitlabApi do
|
|
|
58
53
|
|
|
59
54
|
expect(client).to(
|
|
60
55
|
receive(:edit_file)
|
|
61
|
-
.with(repo, path,
|
|
56
|
+
.with(repo, path, url_safe_branch, new_contents, 'message')
|
|
62
57
|
)
|
|
63
58
|
|
|
64
59
|
api.update_contents(branch, [{ path: path, contents: new_contents }], 'message')
|
|
65
60
|
end
|
|
66
61
|
end
|
|
67
62
|
|
|
68
|
-
|
|
69
|
-
it 'retrieves the given ref (i.e. branch) using the client' do
|
|
70
|
-
expect(client).to receive(:commit).with(repo, sha) { double(short_id: '0') }
|
|
71
|
-
api.get_ref(sha)
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
describe '#download' do
|
|
76
|
-
let(:path) { 'path/to/file.xyz' }
|
|
77
|
-
|
|
63
|
+
shared_examples 'a download flow' do
|
|
78
64
|
it 'downloads the file from the given branch' do
|
|
79
65
|
expect(client).to(
|
|
80
66
|
receive(:get_file)
|
|
81
|
-
.with(repo, path,
|
|
67
|
+
.with(repo, path, url_safe_branch)
|
|
82
68
|
.and_return(double(content: 'content', encoding: 'utf-8'))
|
|
83
69
|
)
|
|
84
70
|
|
|
@@ -90,7 +76,7 @@ describe Txgh::GitlabApi do
|
|
|
90
76
|
|
|
91
77
|
expect(client).to(
|
|
92
78
|
receive(:get_file)
|
|
93
|
-
.with(repo, path,
|
|
79
|
+
.with(repo, path, url_safe_branch)
|
|
94
80
|
.and_return(double(content: content, encoding: 'utf-16'))
|
|
95
81
|
)
|
|
96
82
|
|
|
@@ -102,7 +88,7 @@ describe Txgh::GitlabApi do
|
|
|
102
88
|
it 'automatically decodes base64-encoded content' do
|
|
103
89
|
expect(client).to(
|
|
104
90
|
receive(:get_file)
|
|
105
|
-
.with(repo, path,
|
|
91
|
+
.with(repo, path, url_safe_branch)
|
|
106
92
|
.and_return(double(content: Base64.encode64('content'), encoding: 'base64'))
|
|
107
93
|
)
|
|
108
94
|
|
|
@@ -110,6 +96,72 @@ describe Txgh::GitlabApi do
|
|
|
110
96
|
end
|
|
111
97
|
end
|
|
112
98
|
|
|
99
|
+
describe '#update_contents' do
|
|
100
|
+
let(:path) { 'path/to/file.txt' }
|
|
101
|
+
let(:old_contents) { 'abc123' }
|
|
102
|
+
let(:old_sha) { Txgh::Utils.git_hash_blob(old_contents) }
|
|
103
|
+
|
|
104
|
+
context 'when master branch' do
|
|
105
|
+
let(:branch) { 'master' }
|
|
106
|
+
let(:url_safe_branch) { 'master' }
|
|
107
|
+
|
|
108
|
+
it_behaves_like 'an update_contents flow'
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
context 'when feature branch' do
|
|
112
|
+
let(:branch) { 'feature/foo-ticket' }
|
|
113
|
+
let(:url_safe_branch) { 'feature%2Ffoo-ticket' }
|
|
114
|
+
|
|
115
|
+
it_behaves_like 'an update_contents flow'
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
describe '#get_ref' do
|
|
120
|
+
context 'when ref is a sha' do
|
|
121
|
+
it 'retrieves the given ref (i.e. branch) using the client' do
|
|
122
|
+
expect(client).to receive(:commit).with(repo, sha) { double(short_id: '0') }
|
|
123
|
+
api.get_ref(sha)
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
context 'when ref is a master branch' do
|
|
128
|
+
let(:sha) { 'master' }
|
|
129
|
+
|
|
130
|
+
it 'retrieves the given ref (i.e. branch) using the client' do
|
|
131
|
+
expect(client).to receive(:commit).with(repo, sha) { double(short_id: '0') }
|
|
132
|
+
api.get_ref(sha)
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
context 'when ref is a feature branch' do
|
|
137
|
+
let(:sha) { 'feature/foo-ticket' }
|
|
138
|
+
let(:url_safe_sha) { 'feature%2Ffoo-ticket' }
|
|
139
|
+
|
|
140
|
+
it 'retrieves the given ref (i.e. branch) using the client' do
|
|
141
|
+
expect(client).to receive(:commit).with(repo, url_safe_sha) { double(short_id: '0') }
|
|
142
|
+
api.get_ref(sha)
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
describe '#download' do
|
|
148
|
+
let(:path) { 'path/to/file.xyz' }
|
|
149
|
+
|
|
150
|
+
context 'when master branch' do
|
|
151
|
+
let(:branch) { 'master' }
|
|
152
|
+
let(:url_safe_branch) { 'master' }
|
|
153
|
+
|
|
154
|
+
it_behaves_like 'a download flow'
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
context 'when feature branch' do
|
|
158
|
+
let(:branch) { 'feature/foo-ticket' }
|
|
159
|
+
let(:url_safe_branch) { 'feature%2Ffoo-ticket' }
|
|
160
|
+
|
|
161
|
+
it_behaves_like 'a download flow'
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
113
165
|
describe '#create_status' do
|
|
114
166
|
let(:gitlab_response) do
|
|
115
167
|
OpenStruct.new({
|
data/spec/utils_spec.rb
CHANGED
|
@@ -47,6 +47,20 @@ describe Txgh::Utils do
|
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
+
describe '.url_safe_relative_branch' do
|
|
51
|
+
it 'removes tags/ if present' do
|
|
52
|
+
expect(described_class.url_safe_relative_branch('tags/feature/foobar')).to eq('feature%2Ffoobar')
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it 'removes heads/ if present' do
|
|
56
|
+
expect(described_class.url_safe_relative_branch('heads/foobar')).to eq('foobar')
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it 'does nothing if no prefix can be removed' do
|
|
60
|
+
expect(described_class.url_safe_relative_branch('feature/foo-ticket')).to eq('feature%2Ffoo-ticket')
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
50
64
|
describe '.is_tag?' do
|
|
51
65
|
it 'returns true if given a tag' do
|
|
52
66
|
expect(described_class.is_tag?('tags/foo')).to eq(true)
|
data/txgh.gemspec
CHANGED
|
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
|
|
|
13
13
|
s.platform = Gem::Platform::RUBY
|
|
14
14
|
|
|
15
15
|
s.add_dependency 'abroad', '~> 4.6'
|
|
16
|
-
s.add_dependency 'celluloid'
|
|
16
|
+
s.add_dependency 'celluloid', '~> 0.18.0'
|
|
17
17
|
s.add_dependency 'faraday', '0.17.3'
|
|
18
18
|
s.add_dependency 'faraday_middleware', '0.14.0'
|
|
19
19
|
s.add_dependency 'json', '~> 1.8'
|
metadata
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: txgh
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.0.
|
|
4
|
+
version: 7.0.3.beta1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matthew Jackowski
|
|
8
8
|
- Cameron Dutro
|
|
9
|
-
autorequire:
|
|
9
|
+
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2020-
|
|
12
|
+
date: 2020-12-08 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: abroad
|
|
@@ -29,16 +29,16 @@ dependencies:
|
|
|
29
29
|
name: celluloid
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
31
31
|
requirements:
|
|
32
|
-
- - "
|
|
32
|
+
- - "~>"
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
|
-
version:
|
|
34
|
+
version: 0.18.0
|
|
35
35
|
type: :runtime
|
|
36
36
|
prerelease: false
|
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
38
|
requirements:
|
|
39
|
-
- - "
|
|
39
|
+
- - "~>"
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
|
-
version:
|
|
41
|
+
version: 0.18.0
|
|
42
42
|
- !ruby/object:Gem::Dependency
|
|
43
43
|
name: faraday
|
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -213,7 +213,7 @@ files:
|
|
|
213
213
|
homepage: https://github.com/lumoslabs/txgh
|
|
214
214
|
licenses: []
|
|
215
215
|
metadata: {}
|
|
216
|
-
post_install_message:
|
|
216
|
+
post_install_message:
|
|
217
217
|
rdoc_options: []
|
|
218
218
|
require_paths:
|
|
219
219
|
- lib
|
|
@@ -224,12 +224,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
224
224
|
version: '0'
|
|
225
225
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
226
226
|
requirements:
|
|
227
|
-
- - "
|
|
227
|
+
- - ">"
|
|
228
228
|
- !ruby/object:Gem::Version
|
|
229
|
-
version:
|
|
229
|
+
version: 1.3.1
|
|
230
230
|
requirements: []
|
|
231
|
-
|
|
232
|
-
|
|
231
|
+
rubyforge_project:
|
|
232
|
+
rubygems_version: 2.7.6
|
|
233
|
+
signing_key:
|
|
233
234
|
specification_version: 4
|
|
234
235
|
summary: A library for syncing translation resources between Github and Transifex.
|
|
235
236
|
test_files: []
|