zci 0.6.1 → 0.7.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
  SHA256:
3
- metadata.gz: 335619ce8666e6f76384cf8a6cbdf58d528a29c25811e022a7136b6ae727809a
4
- data.tar.gz: 1b7db4ed8c41ec1b74d2269cfefce1c1b1cee53505918aafde01d4c4bbf284e3
3
+ metadata.gz: 288b8d33f051846608ed93e937598a6fdcae07058c92c27001c79d12dbe03fa5
4
+ data.tar.gz: 1aede6fa10bee8a04c5e3430430774260c21caed7b9533e4c826280df5df7fc9
5
5
  SHA512:
6
- metadata.gz: 93f042417010dd09c9da37dfea0a7ae1afc4f3524e27613ecc59197851017453976fbe28cd72264d77c7e9a23b3b93d94466505a4cfe93578855915720ecd742
7
- data.tar.gz: df37dc930fce92e2d7cd77b8963fcdb4377df55441780e6d65e7047e83bc10c684ae779686e8dc9a30c10c457dcfc4762426066d3370f0f32dd9552737c2ba3c
6
+ metadata.gz: 589dfda55c4d68b9c115279535bc0e292104521e8ccbcf337e1fef2b2a7968300c2788dcef12ce928eeda5e9af85ca3e8a550a87bae2a7f188fe2d753ee8760c
7
+ data.tar.gz: 53ae293ac3bf6683f701d80a6c8465f9536489c494c270213acc100ae8d8e6950f2b19a0a96207d1845010e47c9acb89d7cb28ee7aafedb2980758738d1ce8fa
data/Gemfile CHANGED
@@ -1,5 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
- # gem 'byebug'
5
4
  # gem 'zendesk_help_center_api', path: '../zendesk_help_center_api_client_rb'
data/README.md CHANGED
@@ -49,7 +49,7 @@ SYNOPSIS
49
49
  zci [global options] command [command options] [arguments...]
50
50
 
51
51
  VERSION
52
- 0.6.0
52
+ 0.6.1
53
53
 
54
54
  GLOBAL OPTIONS
55
55
  -c, --config=<s> - Project-specific configuration file (default: /home/crowdin/zci.yml)
@@ -88,21 +88,38 @@ categories:
88
88
  - zendesk_category: '<%zendesk-category-id%>'
89
89
  translations:
90
90
  -
91
- crowdin_language_code: '<%crowdin-two-letters-code%>'
92
- zendesk_locale: '<%zendesk-locale%>'
91
+ crowdin_language_code: '<%crowdin-language-code%>' #the full list of language codes: https://support.crowdin.com/api/language-codes/
92
+ zendesk_locale: '<%zendesk-locale%>' #the full list of language codes: https://support.zendesk.com/hc/en-us/articles/203761906-Language-codes-for-Zendesk-supported-languages
93
93
  -
94
- crowdin_language_code: '<%crowdin-two-letters-code%>'
94
+ crowdin_language_code: '<%crowdin-language-code%>'
95
95
  zendesk_locale: '<%zendesk-locale%>'
96
96
  - zendesk_category: '<%zendesk-category-id%>'
97
97
  translations:
98
98
  -
99
- crowdin_language_code: '<%crowdin-two-letters-code%>'
99
+ crowdin_language_code: '<%crowdin-language-code%>'
100
100
  zendesk_locale: '<%zendesk-locale%>'
101
101
  -
102
- crowdin_language_code: '<%crowdin-two-letters-code%>'
102
+ crowdin_language_code: '<%crowdin-language-code%>'
103
103
  zendesk_locale: '<%zendesk-locale%>'
104
104
  ```
105
105
 
106
+ ## Advance Usage
107
+
108
+ This section covers some of `zci` more advanced features.
109
+
110
+ ### Brands
111
+
112
+ To make changes and updates via the `Help Center API` in your branded `Help Centers` you will use the URL of the specific brand.
113
+
114
+ For more information, see [Managing multiple brands](https://support.zendesk.com/hc/en-us/articles/204577973-Managing-multiple-brands-Professional-Add-on-and-Enterprise-).
115
+
116
+ ```yaml
117
+ ---
118
+ categories:
119
+ - zendesk_category: '<%zendesk-category-id%>'
120
+ brand_url: '<%zendesk-brand-url%>/api/v2/'
121
+ ```
122
+
106
123
  ## Supported Rubies
107
124
 
108
125
  Tested with the following Ruby versions:
data/bin/zci CHANGED
@@ -47,18 +47,13 @@ pre do |global, command, options, args|
47
47
  EOS
48
48
  end
49
49
 
50
- @zendesk = ZendeskAPI::Client.new do |config|
51
- config.url = @cli_config['zendesk_base_url']
52
- config.username = @cli_config['zendesk_username']
53
- config.password = @cli_config['zendesk_password']
54
-
55
- if global[:verbose]
56
- require 'logger'
57
- config.logger = Logger.new(STDOUT)
58
- end
59
-
60
- config.client_options = {ssl: {verify: false}}
61
- end
50
+ # Global Zendesk Client
51
+ @zendesk = ZCI.initialize_zendesk_client(
52
+ @cli_config['zendesk_base_url'],
53
+ @cli_config['zendesk_username'],
54
+ @cli_config['zendesk_password'],
55
+ global[:verbose]
56
+ )
62
57
 
63
58
  if global[:verbose]
64
59
  Crowdin::API.log = Logger.new(STDOUT) if global[:verbose]
@@ -16,11 +16,20 @@ command :'import:sources' do |c|
16
16
  end
17
17
 
18
18
  @cli_config['categories'].each do |category|
19
+ zendesk_url = category.fetch('brand_url', @cli_config['zendesk_base_url'])
20
+
21
+ zendesk_client = ZCI.initialize_zendesk_client(
22
+ zendesk_url,
23
+ @cli_config['zendesk_username'],
24
+ @cli_config['zendesk_password'],
25
+ global_options[:verbose]
26
+ )
27
+
19
28
  # Source Category
20
29
  source_category_id = category['zendesk_category'].to_i
21
30
 
22
31
  # Check if Category exists in Zendesk
23
- source_category = @zendesk.hc_categories.find(id: source_category_id)
32
+ source_category = zendesk_client.hc_categories.find(id: source_category_id)
24
33
 
25
34
  if source_category.nil? || source_category.id != source_category_id
26
35
  puts "[Zendesk] No category with id #{source_category_id}"
@@ -19,13 +19,22 @@ command :'export:translations' do |c|
19
19
 
20
20
  crowdin_supported_languages = @crowdin.supported_languages
21
21
 
22
- if language == 'all'
23
- zendesk_locales = @zendesk.locales
24
- else
25
- zendesk_locales = @zendesk.locales.select { |locale| locale.locale == language }
26
- end
27
-
28
22
  @cli_config['categories'].each do |category_section|
23
+ zendesk_url = category.fetch('brand_url', @cli_config['zendesk_base_url'])
24
+
25
+ zendesk_client = ZCI.initialize_zendesk_client(
26
+ zendesk_url,
27
+ @cli_config['zendesk_username'],
28
+ @cli_config['zendesk_password'],
29
+ global_options[:verbose]
30
+ )
31
+
32
+ if language == 'all'
33
+ zendesk_locales = zendesk_client.locales
34
+ else
35
+ zendesk_locales = zendesk_client.locales.select { |locale| locale.locale == language }
36
+ end
37
+
29
38
  zendesk_locales.select { |locale| !locale.default? }.each do |locale|
30
39
  if lang = category_section['translations'].detect { |tr| tr['zendesk_locale'].casecmp(locale.locale) == 0 }
31
40
  crowdin_locale = crowdin_supported_languages.detect { |l| l['crowdin_code'] == lang['crowdin_language_code'] }['locale']
@@ -61,7 +70,7 @@ command :'export:translations' do |c|
61
70
 
62
71
  ### Categories
63
72
  #
64
- categories = @zendesk.hc_categories
73
+ categories = zendesk_client.hc_categories
65
74
  all_categories.each do |category_hash|
66
75
  if category = categories.find(id: category_hash[:id])
67
76
  if category_tr = category.translations.detect { |tr| tr.locale.casecmp(locale.locale) == 0 }
@@ -80,7 +89,7 @@ command :'export:translations' do |c|
80
89
 
81
90
  ### Sections
82
91
  #
83
- sections = @zendesk.sections
92
+ sections = zendesk_client.sections
84
93
  all_sections.each do |section_hash|
85
94
  if section = sections.find(id: section_hash[:id])
86
95
  if section_tr = section.translations.detect { |tr| tr.locale.casecmp(locale.locale) == 0 }
@@ -21,19 +21,35 @@ command :'project:info' do |c|
21
21
  # Zendesk
22
22
  if @zendesk.current_user.id
23
23
  puts "Zendesk: authentication successful."
24
- categories = @zendesk.hc_categories
24
+ brands = @zendesk.brands
25
25
 
26
- puts "Zendesk: available categories:"
27
- categories.each do |category|
28
- puts " - #{category.id}: #{category.name}"
29
- end
26
+ brands.each do |brand|
27
+ puts "Zendesk URL: #{brand.brand_url}"
28
+
29
+ zendesk_url = brand.brand_url + "/api/v2"
30
+
31
+ zendesk_client = ZCI.initialize_zendesk_client(
32
+ zendesk_url,
33
+ @cli_config['zendesk_username'],
34
+ @cli_config['zendesk_password'],
35
+ global_options[:verbose]
36
+ )
30
37
 
31
- locales = @zendesk.locales
38
+ locales = zendesk_client.locales
39
+ categories = zendesk_client.hc_categories
32
40
 
33
- puts "Zendesk: available locales:"
34
- locales.each do |locale|
35
- puts " - #{locale.locale}"
41
+ puts " available categories:"
42
+ categories.each do |category|
43
+ puts " - #{category.id}: #{category.name}"
44
+ end
45
+
46
+ puts " available locales:"
47
+ locales.each do |locale|
48
+ puts " - #{locale.locale}"
49
+ end
50
+ puts
36
51
  end
52
+
37
53
  else
38
54
  puts "Zendesk: login and/or password is incorect"
39
55
  end
data/lib/zci/helpers.rb CHANGED
@@ -5,6 +5,23 @@ class String
5
5
  end
6
6
  end
7
7
 
8
+ module ZCI
9
+ def initialize_zendesk_client(base_url, username, password, verbose)
10
+ ZendeskAPI::Client.new do |config|
11
+ config.url = base_url
12
+ config.username = username
13
+ config.password = password
14
+
15
+ if verbose
16
+ require 'logger'
17
+ config.logger = Logger.new(STDOUT)
18
+ end
19
+
20
+ config.client_options = {ssl: {verify: false}}
21
+ end
22
+ end
23
+ end
24
+
8
25
  # Return +hierarchy+ of directories and files in Crowdin project
9
26
  #
10
27
  # +files+ - basically, it's project files details from API method `project_info`
data/lib/zci/init.rb CHANGED
@@ -47,18 +47,18 @@ module ZCI
47
47
  - zendesk_category: '<%zendesk-category-id%>'
48
48
  translations:
49
49
  -
50
- crowdin_language_code: '<%crowdin-two-letters-code%>'
51
- zendesk_locale: '<%zendesk-locale%>'
50
+ crowdin_language_code: '<%crowdin-language-code%>' # the full list: https://support.crowdin.com/api/language-codes/
51
+ zendesk_locale: '<%zendesk-locale%>' # the full list: https://support.zendesk.com/hc/en-us/articles/203761906-Language-codes-for-Zendesk-supported-languages
52
52
  -
53
- crowdin_language_code: '<%crowdin-two-letters-code%>'
53
+ crowdin_language_code: '<%crowdin-language-code%%>'
54
54
  zendesk_locale: '<%zendesk-locale%>'
55
55
  - zendesk_category: '<%zendesk-category-id%>'
56
56
  translations:
57
57
  -
58
- crowdin_language_code: '<%crowdin-two-letters-code%>'
58
+ crowdin_language_code: '<%crowdin-language-code%%>'
59
59
  zendesk_locale: '<%zendesk-locale%>'
60
60
  -
61
- crowdin_language_code: '<%crowdin-two-letters-code%>'
61
+ crowdin_language_code: '<%crowdin-language-code%%>'
62
62
  zendesk_locale: '<%zendesk-locale%>'
63
63
  EOS
64
64
 
data/lib/zci/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module ZCI
2
- VERSION = '0.6.1'
2
+ VERSION = '0.7.0'
3
3
  end
data/lib/zci.rb CHANGED
@@ -6,7 +6,7 @@ require 'zendesk_api/help_center'
6
6
  require 'crowdin-api'
7
7
  require 'nokogiri'
8
8
  require 'zip'
9
- # require 'byebug'
9
+ require 'pry'
10
10
 
11
11
  # Add requires for other files you add to your project here, so
12
12
  # you just need to require this one file in your bin file
data/zci.gemspec CHANGED
@@ -21,4 +21,5 @@ Gem::Specification.new do |s|
21
21
  s.add_development_dependency 'rake', '~> 12.3'
22
22
  s.add_development_dependency 'rdoc', '~> 6.1'
23
23
  s.add_development_dependency 'aruba', '~> 0.14'
24
+ s.add_development_dependency 'pry', '~> 0.12.2'
24
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Maminov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-18 00:00:00.000000000 Z
11
+ date: 2019-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.14'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 0.12.2
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 0.12.2
125
139
  description:
126
140
  email: anton.maminov@gmail.com
127
141
  executables: