veye 0.0.9 → 0.1

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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +80 -29
  3. data/Makefile +6 -0
  4. data/README.md +12 -224
  5. data/bin/veye +13 -22
  6. data/changelogs.md +95 -0
  7. data/lib/veye/api/base_resource.rb +8 -9
  8. data/lib/veye/api/github.rb +77 -0
  9. data/lib/veye/api/json_response.rb +21 -25
  10. data/lib/veye/api/package.rb +98 -0
  11. data/lib/veye/api/project.rb +107 -0
  12. data/lib/veye/api/resource.rb +9 -8
  13. data/lib/veye/api/service.rb +15 -0
  14. data/lib/veye/api/user.rb +32 -0
  15. data/lib/veye/api.rb +22 -2
  16. data/lib/veye/base_executor.rb +13 -9
  17. data/lib/veye/github/delete.rb +10 -20
  18. data/lib/veye/github/import.rb +7 -14
  19. data/lib/veye/github/info.rb +6 -12
  20. data/lib/veye/github/list.rb +9 -19
  21. data/lib/veye/github/search.rb +9 -17
  22. data/lib/veye/github/sync.rb +9 -18
  23. data/lib/veye/github.rb +1 -1
  24. data/lib/veye/helpers/format_helpers.rb +15 -5
  25. data/lib/veye/package/follow.rb +24 -47
  26. data/lib/veye/package/info.rb +8 -25
  27. data/lib/veye/package/references.rb +9 -36
  28. data/lib/veye/package/search.rb +14 -24
  29. data/lib/veye/package.rb +14 -6
  30. data/lib/veye/pagination.rb +2 -0
  31. data/lib/veye/project/check.rb +39 -117
  32. data/lib/veye/project/license.rb +23 -0
  33. data/lib/veye/project.rb +4 -3
  34. data/lib/veye/service.rb +13 -17
  35. data/lib/veye/user/me.rb +11 -30
  36. data/lib/veye/user.rb +2 -1
  37. data/lib/veye/version.rb +1 -1
  38. data/lib/veye/views/github/info_csv.rb +3 -3
  39. data/lib/veye/views/github/info_json.rb +4 -0
  40. data/lib/veye/views/github/list_csv.rb +5 -3
  41. data/lib/veye/views/github/list_pretty.rb +2 -2
  42. data/lib/veye/views/github/list_table.rb +3 -2
  43. data/lib/veye/views/package/info_pretty.rb +1 -1
  44. data/lib/veye/views/package/search_csv.rb +2 -3
  45. data/lib/veye/views/package/search_table.rb +1 -3
  46. data/lib/veye/views/package.rb +1 -1
  47. data/lib/veye/views/project/licence_csv.rb +3 -3
  48. data/lib/veye/views/project/licence_json.rb +1 -1
  49. data/lib/veye/views/project/licence_pretty.rb +1 -1
  50. data/lib/veye/views/project/licence_table.rb +3 -3
  51. data/lib/veye/views/user/profile_table.rb +4 -1
  52. data/lib/veye/views/user.rb +3 -1
  53. data/lib/veye.rb +29 -61
  54. data/test/api/github_test.rb +84 -0
  55. data/test/api/package_test.rb +80 -0
  56. data/test/api/project_test.rb +118 -0
  57. data/test/api/service_test.rb +15 -0
  58. data/test/api/user_test.rb +30 -0
  59. data/test/fixtures/vcr_cassettes/github_delete.yml +48 -0
  60. data/test/fixtures/vcr_cassettes/github_import.yml +53 -0
  61. data/test/fixtures/vcr_cassettes/github_info.yml +49 -0
  62. data/test/fixtures/vcr_cassettes/github_list.yml +80 -0
  63. data/test/fixtures/vcr_cassettes/github_sync.yml +48 -0
  64. data/test/fixtures/vcr_cassettes/package_follow.yml +52 -0
  65. data/test/fixtures/vcr_cassettes/package_follow_status.yml +48 -0
  66. data/test/fixtures/vcr_cassettes/package_info.yml +56 -0
  67. data/test/fixtures/vcr_cassettes/package_reference.yml +46 -0
  68. data/test/fixtures/vcr_cassettes/package_search.yml +46 -0
  69. data/test/fixtures/vcr_cassettes/package_unfollow.yml +48 -0
  70. data/test/fixtures/vcr_cassettes/project_delete.yml +48 -0
  71. data/test/fixtures/vcr_cassettes/project_get.yml +49 -0
  72. data/test/fixtures/vcr_cassettes/project_license.yml +49 -0
  73. data/test/fixtures/vcr_cassettes/project_list.yml +48 -0
  74. data/test/fixtures/vcr_cassettes/project_update.yml +105 -0
  75. data/test/fixtures/vcr_cassettes/project_upload.yml +104 -0
  76. data/test/fixtures/vcr_cassettes/services_ping.yml +46 -0
  77. data/test/fixtures/vcr_cassettes/user_get_favorites.yml +48 -0
  78. data/test/fixtures/vcr_cassettes/user_get_profile.yml +48 -0
  79. data/test/github_delete_test.rb +31 -0
  80. data/test/github_import_test.rb +94 -0
  81. data/test/github_info_test.rb +73 -0
  82. data/test/github_list_test.rb +84 -0
  83. data/test/github_sync_test.rb +20 -0
  84. data/test/package_follow_test.rb +38 -0
  85. data/test/package_info_test.rb +73 -0
  86. data/test/package_reference_test.rb +67 -0
  87. data/test/package_search_test.rb +66 -0
  88. data/test/project_check_test.rb +326 -0
  89. data/test/project_license_test.rb +72 -0
  90. data/test/service_test.rb +29 -0
  91. data/test/test_helper.rb +29 -4
  92. data/test/user_me_test.rb +126 -0
  93. data/veye.gemspec +45 -0
  94. metadata +163 -37
  95. data/DEPENDENCIES.md +0 -25
  96. data/lib/veye/helpers/repo_helpers.rb +0 -5
  97. data/lib/veye/project/licence.rb +0 -38
  98. data/test/default_test.rb +0 -14
@@ -0,0 +1,77 @@
1
+ module Veye
2
+ module API
3
+ # Api wrappers for Github endpoint
4
+ module Github
5
+ RESOURCE_PATH = '/github'
6
+ def self.encode_repo_key(repo_key)
7
+ repo_key.to_s.gsub(/\//, ':').gsub(/\./, '~')
8
+ end
9
+
10
+ def self.get_list(api_key, page = 1, lang = nil, privat = nil, org = nil, type = nil)
11
+ params = {
12
+ api_key: api_key,
13
+ page: page || 1
14
+ }
15
+ params[:lang] = lang.to_s.downcase if lang
16
+ unless private.nil?
17
+ params[:private] = privat == 'true' || privat == 't' || privat == true
18
+ end
19
+ params[:org_name] = org if org
20
+ params[:org_type] = type if type
21
+
22
+ github_api = Resource.new(RESOURCE_PATH)
23
+ qparams = { params: params }
24
+ github_api.resource.get(qparams) do |response, request, result|
25
+ JSONResponse.new(request, result, response)
26
+ end
27
+ end
28
+
29
+ def self.import_all(api_key, force = false)
30
+ params = { api_key: api_key }
31
+ params[:force] = force || false
32
+ qparams = { params: params }
33
+ github_api = Resource.new("#{RESOURCE_PATH}/sync")
34
+
35
+ github_api.resource.get(qparams) do |response, request, result|
36
+ JSONResponse.new(request, result, response)
37
+ end
38
+ end
39
+
40
+ def self.get_repo(api_key, repo_name, branch = nil, file = nil)
41
+ safe_repo_name = encode_repo_key(repo_name)
42
+ github_api = Resource.new("#{RESOURCE_PATH}/#{safe_repo_name}")
43
+ qparams = { api_key: api_key }
44
+ qparams[:branch] = branch unless branch.nil?
45
+ qparams[:file] = file unless file.nil?
46
+
47
+ github_api.resource.get({ params: qparams }) do |response, request, result|
48
+ JSONResponse.new(request, result, response)
49
+ end
50
+ end
51
+
52
+ def self.import_repo(api_key, repo_name, branch = nil, filename = nil)
53
+ safe_repo_name = encode_repo_key(repo_name)
54
+ github_api = Resource.new("#{RESOURCE_PATH}/#{safe_repo_name}")
55
+
56
+ params = { api_key: api_key }
57
+ params[:branch] = branch unless branch.nil?
58
+ params[:file] = filename unless filename.nil?
59
+
60
+ github_api.resource.post(params) do |response, request, result|
61
+ JSONResponse.new(request, result, response)
62
+ end
63
+ end
64
+
65
+ def self.delete_repo(api_key, repo_name, branch = nil)
66
+ safe_repo_key = encode_repo_key(repo_name)
67
+ qparams = { api_key: api_key }
68
+ qparams[:branch] = branch unless branch.nil?
69
+ github_api = Resource.new("#{RESOURCE_PATH}/#{safe_repo_key}")
70
+
71
+ github_api.resource.delete({params: qparams}) do |response, request, result|
72
+ JSONResponse.new(request, result, response)
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -2,55 +2,51 @@ require 'json'
2
2
 
3
3
  module Veye
4
4
  module API
5
+ # Unified API response class
5
6
  class JSONResponse
6
7
  attr_reader :code, :success, :message, :data, :url, :headers
7
8
  def initialize(request, result, response)
8
- @url = request.url
9
- @headers = request.headers
10
- @code = result.code.to_i
11
-
12
- response_data = JSON.parse(response)
13
-
14
- @success, @message = success?(result, response_data)
15
- @data = response_data
9
+ @url = request.url
10
+ @headers = request.headers
11
+ @code = result.code.to_i
12
+ response_data = JSON.parse(response)
13
+ @success, @message = success?(result)
14
+ @data = response_data
16
15
  end
17
16
 
18
- def success?(result, response_data)
17
+ def success?(result)
19
18
  @code = result.code.to_i
20
19
  success = false
21
-
22
- case @code
20
+ case @code
23
21
  when 200
24
22
  success = true
25
- message = "fetched successfully"
23
+ message = 'fetched successfully'
26
24
  when 201
27
25
  success = true
28
- message = "created successfully"
26
+ message = 'created successfully'
29
27
  when 400
30
- message = "bad request - wrong parameters, data"
28
+ message = 'bad request - wrong parameters, data'
31
29
  when 401
32
- message = "not authorized - add apikey or update settings file ~/.veye.rc"
30
+ message = 'not authorized - add apikey or update settings.'
33
31
  when 403
34
- message = "forbidden - server refused execute query"
32
+ message = 'forbidden - server refused execute query'
35
33
  when 413
36
- message = "request entity too big - use smaller data object"
34
+ message = 'request entity too big - use smaller data object'
37
35
  when 500
38
- message = "internal server error - write to us"
36
+ message = 'internal server error - write to us'
39
37
  when 501
40
- message = "not implemented - write to us"
38
+ message = 'not implemented - write to us'
41
39
  when 503
42
- message = "service unavailable - temporary overloaded - write to us."
40
+ message = 'service unavailable - temporary overloaded - write to us'
43
41
  when 531
44
- message = "not authorized - add apikey or update settings file ~/.veye.rc"
42
+ message = 'not authorized - add or update api key'
45
43
  else
46
44
  success = false
47
- message = ""
45
+ message = ''
48
46
  end
49
47
 
50
- return success, message
48
+ [success, message]
51
49
  end
52
-
53
-
54
50
  end
55
51
  end
56
52
  end
@@ -0,0 +1,98 @@
1
+ module Veye
2
+ module API
3
+ # Package API wrappers
4
+ module Package
5
+ RESOURCE_PATH = '/products'
6
+
7
+ def supported_languages
8
+ Set.new %w( Clojure Java Javascript Node.JS PHP Python Ruby R )
9
+ end
10
+
11
+ def self.encode_prod_key(prod_key)
12
+ prod_key.to_s.gsub(/\//, ':').gsub(/\./, '~')
13
+ end
14
+
15
+ def self.encode_language(lang)
16
+ lang.to_s.gsub(/\./, '').downcase
17
+ end
18
+
19
+ # returns package information
20
+ def self.get_package(prod_key, language)
21
+ lang = encode_language(language)
22
+ safe_prod_key = encode_prod_key(prod_key)
23
+ product_api = Resource.new "#{RESOURCE_PATH}/#{lang}/#{safe_prod_key}"
24
+ product_api.resource.get do |response, request, result|
25
+ JSONResponse.new(request, result, response)
26
+ end
27
+ end
28
+
29
+ def self.search(search_term, language = nil, group_id = nil, page = '1')
30
+ search_api = Resource.new "#{RESOURCE_PATH}/search/#{search_term}"
31
+
32
+ search_params = { q: search_term.to_s }
33
+ search_params[:lang] = encode_language(language) unless language.nil?
34
+ search_params[:g] = group_id unless group_id.nil?
35
+ if page.nil?
36
+ search_params[:page] = '1'
37
+ else
38
+ search_params[:page] = page.to_s
39
+ end
40
+
41
+ request_params = { params: search_params }
42
+ search_api.resource.get(request_params) do |response, request, result|
43
+ JSONResponse.new(request, result, response)
44
+ end
45
+ end
46
+
47
+ def self.get_follow_status(api_key, prod_key, language)
48
+ product_api = Resource.new(RESOURCE_PATH)
49
+ qparams = { params: { api_key: api_key } }
50
+ lang = encode_language(language)
51
+ safe_prod_key = encode_prod_key(prod_key)
52
+
53
+ path = "#{lang}/#{safe_prod_key}/follow.json"
54
+ product_api.resource[path].get(qparams) do |response, request, result|
55
+ Veye::API::JSONResponse.new(request, result, response)
56
+ end
57
+ end
58
+
59
+ def self.follow(api_key, prod_key, language)
60
+ api = Resource.new(RESOURCE_PATH)
61
+ qparams = { api_key: api_key }
62
+ lang = encode_language(language)
63
+ safe_prod_key = encode_prod_key(prod_key)
64
+
65
+ path = "/#{lang}/#{safe_prod_key}/follow.json"
66
+ api.resource[path].post(qparams) do |response, request, result|
67
+ JSONResponse.new(request, result, response)
68
+ end
69
+ end
70
+
71
+ def self.unfollow(api_key, prod_key, language)
72
+ api = Resource.new(RESOURCE_PATH)
73
+ qparams = { params: { api_key: api_key } }
74
+ lang = encode_language(language)
75
+ safe_prod_key = encode_prod_key(prod_key)
76
+
77
+ path = "/#{lang}/#{safe_prod_key}/follow.json"
78
+ api.resource[path].delete(qparams) do |response, request, result|
79
+ JSONResponse.new(request, result, response)
80
+ end
81
+ end
82
+
83
+ def self.get_references(prod_key, language, page = nil)
84
+ api = Resource.new(RESOURCE_PATH)
85
+ lang = encode_language(language).capitalize # endpoint bug
86
+ safe_prod_key = encode_prod_key(prod_key)
87
+
88
+ api_path = "/#{lang}/#{safe_prod_key}/references"
89
+ page_nr = page.to_s unless page.nil?
90
+ page_nr ||= 1
91
+ qparams = { params: { page: page_nr } }
92
+ api.resource[api_path].get(qparams) do |response, request, result|
93
+ JSONResponse.new(request, result, response)
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,107 @@
1
+ module Veye
2
+ module API
3
+ module Project
4
+ RESOURCE_PATH = "/projects"
5
+ MAX_FILE_SIZE = 500000 # ~ 500kB
6
+
7
+ #TODO: add throws
8
+ def self.check_file(filename)
9
+ file_path = File.absolute_path(filename)
10
+
11
+ unless File.exists?(file_path)
12
+ printf("%s: Cant read file `%s`",
13
+ "Error".color(:red),
14
+ "#{filename}".color(:yellow))
15
+ return nil
16
+ end
17
+
18
+ file_size = File.size(file_path)
19
+ unless file_size != 0 and file_size < MAX_FILE_SIZE
20
+ p "Size of file is not acceptable: 0kb < x <= #{MAX_FILE_SIZE/1000}kb"
21
+ return nil
22
+ end
23
+
24
+ file_path
25
+ end
26
+
27
+ def self.get_list(api_key)
28
+ project_api = Resource.new(RESOURCE_PATH)
29
+ qparams = {:params => {:api_key => api_key}}
30
+ project_api.resource.get(qparams) do |response, request, result|
31
+ JSONResponse.new(request, result, response)
32
+ end
33
+ end
34
+
35
+ def self.upload(api_key, filename)
36
+ project_api = Resource.new(RESOURCE_PATH)
37
+ file_path = check_file(filename)
38
+ return if file_path.nil?
39
+
40
+ file_obj = File.open(file_path, 'rb')
41
+ upload_data = {
42
+ :upload => file_obj,
43
+ :api_key => api_key
44
+ }
45
+
46
+ project_api.resource.post(upload_data) do |response, request, result, &block|
47
+ JSONResponse.new(request, result, response)
48
+ end
49
+ end
50
+
51
+ def self.update(api_key, project_key, filename)
52
+ project_api = Resource.new("#{RESOURCE_PATH}/#{project_key}")
53
+ file_path = check_file(filename)
54
+ return if file_path.nil?
55
+
56
+ file_obj = File.open(file_path, 'rb')
57
+ upload_data = {
58
+ :project_file => file_obj,
59
+ :api_key => api_key
60
+ }
61
+ project_api.resource.post(upload_data) do |response, request, result, &block|
62
+ JSONResponse.new(request, result, response)
63
+ end
64
+ end
65
+
66
+ def self.get_project(api_key, project_key)
67
+ if project_key.nil? or project_key.empty?
68
+ printf("%s: %s",
69
+ "Error".color(:red),
70
+ "Not valid project_key: `#{project_key}`")
71
+ return
72
+ end
73
+
74
+ project_api = Resource.new("#{RESOURCE_PATH}/#{project_key}")
75
+ qparams = {:params => {:api_key => api_key}}
76
+ project_api.resource.get(qparams) do |response, request, result|
77
+ JSONResponse.new(request, result, response)
78
+ end
79
+ end
80
+
81
+ def self.delete_project(api_key, project_key)
82
+ project_api = Resource.new("#{RESOURCE_PATH}/#{project_key}")
83
+ qparams = {:params => {:api_key => api_key}}
84
+
85
+ project_api.resource.delete(qparams) do |response, request, result|
86
+ JSONResponse.new(request, result, response)
87
+ end
88
+ end
89
+
90
+ #TODO: add throw exceptions
91
+ def self.get_licenses(api_key, project_key)
92
+ if project_key.nil? or project_key.empty?
93
+ printf("%s: %s",
94
+ "Error".color(:red),
95
+ "Not valid project_key: `#{project_key}`")
96
+ return
97
+ end
98
+ project_api = Resource.new("#{RESOURCE_PATH}/#{project_key}/licenses")
99
+ qparams = {:params => {:api_key => api_key}}
100
+ project_api.resource.get(qparams) do |response, request, result|
101
+ JSONResponse.new(request, result, response)
102
+ end
103
+ end
104
+
105
+ end
106
+ end
107
+ end
@@ -1,20 +1,21 @@
1
- require 'rest_client'
1
+ require 'rest-client'
2
2
  require_relative 'base_resource.rb'
3
3
 
4
- #for ssl keys:
5
- #openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -nodes
6
4
  module Veye
7
5
  module API
8
6
  class Resource < BaseResource
9
7
  def initialize(path = nil)
10
8
  super(path)
11
- ssl_path = File.expand_path($global_options[:ssl_path])
12
- timeout = $global_options[:timeout].to_i || 90
9
+ timeout_val = $global_options[:timeout].to_i
10
+ timeout = timeout_val if timeout_val > 0
11
+ timeout ||= 90
13
12
  open_timeout = $global_options[:open_timeout].to_i || 10
14
13
 
15
- @resource = RestClient::Resource.new(@full_path,
16
- timeout: timeout,
17
- open_timeout: open_timeout)
14
+ @resource = RestClient::Resource.new(
15
+ @full_path,
16
+ timeout: timeout,
17
+ open_timeout: open_timeout,
18
+ )
18
19
  end
19
20
  end
20
21
  end
@@ -0,0 +1,15 @@
1
+ module Veye
2
+ module API
3
+ # API wrappers for Service endpoint
4
+ module Service
5
+ RESOURCE_PATH = '/services'
6
+
7
+ def self.ping
8
+ public_api = Resource.new "#{RESOURCE_PATH}/ping"
9
+ public_api.resource.get do |response, request, result|
10
+ JSONResponse.new(request, result, response)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,32 @@
1
+ module Veye
2
+ module API
3
+ # API wrappers for User api
4
+ module User
5
+ RESOURCE_PATH = '/me'
6
+
7
+ def self.get_profile(api_key)
8
+ user_api = Resource.new RESOURCE_PATH
9
+ qparams = { params: { api_key: api_key } }
10
+
11
+ user_api.resource.get(qparams) do |response, request, result|
12
+ JSONResponse.new(request, result, response)
13
+ end
14
+ end
15
+
16
+ def self.get_favorites(api_key, page = 1)
17
+ fav_api = Resource.new "#{RESOURCE_PATH}/favorites"
18
+ page ||= 1
19
+ qparams = {
20
+ params: {
21
+ api_key: api_key,
22
+ page: page
23
+ }
24
+ }
25
+
26
+ fav_api.resource.get(qparams) do |response, request, result|
27
+ JSONResponse.new(request, result, response)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
data/lib/veye/api.rb CHANGED
@@ -1,3 +1,23 @@
1
- require_relative 'api/resource.rb'
2
- require_relative 'api/json_response.rb'
1
+ require_relative 'api/resource'
2
+ require_relative 'api/json_response'
3
+ require_relative 'api/package'
4
+ require_relative 'api/project'
5
+ require_relative 'api/github'
6
+ require_relative 'api/service'
7
+ require_relative 'api/user'
3
8
 
9
+ # -- initialize global options
10
+ # ps: command line interface overwrites those variables with init_enviroment
11
+ $global_options = {
12
+ protocol: 'https',
13
+ server: 'www.versioneye.com',
14
+ path: 'api/v2',
15
+ port: nil,
16
+ timeout: 30
17
+ }
18
+ $global_options[:url] = Veye::API::Resource.build_url($global_options)
19
+
20
+ module Veye
21
+ module API
22
+ end
23
+ end
@@ -1,10 +1,9 @@
1
-
1
+ # Base class that will bring many helpers into command classes.
2
2
  class BaseExecutor
3
3
  extend FormatHelpers
4
- extend RepoHelpers
5
4
 
6
5
  def self.show_results(output_formats, results, options = {}, paging = nil)
7
- format = options[:format]
6
+ format = options[:format] || 'pretty'
8
7
  self.supported_format?(output_formats, format)
9
8
  formatter = output_formats[format]
10
9
 
@@ -13,12 +12,17 @@ class BaseExecutor
13
12
  formatter.after(paging, options[:pagination])
14
13
  end
15
14
 
16
- def self.catch_request_error(response, msg)
17
- if response.nil? or not response.success
18
- error_msg = sprintf("%s\n%s\n",
19
- "#{msg}".color(:red),
20
- "#{response.data}")
21
- exit_now! error_msg
15
+ def self.valid_response?(response, msg)
16
+ if response.nil? || response.success != true
17
+ p "#{msg.to_s.color(:red)}: #{response.data}\n"
18
+ return false
22
19
  end
20
+
21
+ response.success
22
+ end
23
+
24
+ # OBSOLETE: use valid_response?
25
+ def self.catch_request_error(response, msg)
26
+ valid_response?(response, msg)
23
27
  end
24
28
  end
@@ -2,34 +2,24 @@ require_relative '../base_executor.rb'
2
2
 
3
3
  module Veye
4
4
  module Github
5
+ # Delete class include methods to cleanup projects imported from Github
5
6
  class Delete < BaseExecutor
6
-
7
7
  def self.delete_repo(api_key, repo_name, options)
8
- github_api = API::Resource.new(RESOURCE_PATH)
9
- qparams = {
10
- :params => {
11
- :api_key => api_key,
12
- :branch => options[:branch]
13
- }
14
- }
15
- response_data = nil
16
- safe_repo_key = self.encode_repo_key(repo_name)
17
- github_api.resource["/#{safe_repo_key}"].delete(qparams) do |response, request, result|
18
- response_data = API::JSONResponse.new(request, result, response)
19
- end
20
- show_result(response_data)
21
- response_data
8
+ response = Veye::API::Github.delete_repo(
9
+ api_key, repo_name, options[:branch]
10
+ )
11
+ show_result(response)
22
12
  end
23
13
 
24
14
  def self.show_result(response)
25
- unless response.success
26
- printf("Cant delete - %s\n%s\n", response.message.color(:red),
27
- response.data['error'])
28
- else
15
+ if response.success
29
16
  printf "Deleted\n".color(:green)
17
+ else
18
+ printf("Cant delete - %s\n%s\n",
19
+ response.message.color(:red),
20
+ response.data['error'])
30
21
  end
31
22
  end
32
23
  end
33
24
  end
34
25
  end
35
-
@@ -3,8 +3,10 @@ require_relative '../base_executor.rb'
3
3
 
4
4
  module Veye
5
5
  module Github
6
+ # Import class includes methods to import projects from Github
7
+ # and will check a state of dependencies.
6
8
  class Import < BaseExecutor
7
- @@output_formats = {
9
+ @output_formats = {
8
10
  'csv' => Github::InfoCSV.new,
9
11
  'json' => Github::InfoJSON.new,
10
12
  'pretty' => Github::InfoPretty.new,
@@ -12,21 +14,12 @@ module Veye
12
14
  }
13
15
 
14
16
  def self.import_repo(api_key, repo_name, options)
15
- github_api = API::Resource.new(RESOURCE_PATH)
16
- results = nil
17
- params = {api_key: api_key, branch: options[:branch]}
18
- repo_name = encode_repo_key(repo_name)
19
-
20
- github_api.resource["/#{repo_name}"].post(params) do |response, request, result|
21
- results = API::JSONResponse.new(request, result, response)
22
- end
23
-
17
+ results = Veye::API::Github.import_repo(
18
+ api_key, repo_name, options[:branch], options[:file]
19
+ )
24
20
  catch_request_error(results, "Can not find repository `#{repo_name}`")
25
- show_results(@@output_formats, results.data, options, nil)
26
- results
21
+ show_results(@output_formats, results.data, options, nil)
27
22
  end
28
-
29
23
  end
30
24
  end
31
25
  end
32
-
@@ -3,8 +3,9 @@ require_relative '../base_executor.rb'
3
3
 
4
4
  module Veye
5
5
  module Github
6
+ # Info class includes methods to fetch the project info on VersionEye
6
7
  class Info < BaseExecutor
7
- @@output_formats = {
8
+ @output_formats = {
8
9
  'csv' => Github::InfoCSV.new,
9
10
  'json' => Github::InfoJSON.new,
10
11
  'pretty' => Github::InfoPretty.new,
@@ -12,19 +13,12 @@ module Veye
12
13
  }
13
14
 
14
15
  def self.get_repo(api_key, repo_name, options)
15
- github_api = API::Resource.new(RESOURCE_PATH)
16
- results = nil
17
- qparams = {params: {api_key: api_key}}
18
- safe_repo_name = self.encode_repo_key(repo_name)
19
-
20
- github_api.resource["/#{safe_repo_name}"].get(qparams) do |response, request, result|
21
- results = API::JSONResponse.new(request, result, response)
22
- end
16
+ results = Veye::API::Github.get_repo(
17
+ api_key, repo_name, options[:branch], options[:file]
18
+ )
23
19
  catch_request_error(results, "Can not find repository `#{repo_name}`")
24
- show_results @@output_formats, results.data, options
20
+ show_results @output_formats, results.data, options
25
21
  end
26
-
27
22
  end
28
23
  end
29
24
  end
30
-
@@ -3,9 +3,9 @@ require_relative '../base_executor.rb'
3
3
 
4
4
  module Veye
5
5
  module Github
6
+ # List class includes methods to see importable Github repositories
6
7
  class List < BaseExecutor
7
-
8
- @@output_formats = {
8
+ @output_formats = {
9
9
  'csv' => Github::ListCSV.new,
10
10
  'json' => Github::ListJSON.new,
11
11
  'pretty' => Github::ListPretty.new,
@@ -13,25 +13,15 @@ module Veye
13
13
  }
14
14
 
15
15
  def self.get_list(api_key, options)
16
- github_api = API::Resource.new(RESOURCE_PATH)
17
- results = nil
18
- params = {api_key: api_key}
19
- params[:page] = options[:page] || 1
20
- params[:lang] = options[:lang].to_s.downcase if options[:lang]
21
- unless options[:private].nil?
22
- params[:private] = (options[:private] == 'true') || (options[:private] == 't')
23
- end
24
- params[:org_name] = options[:org] if options[:org]
25
- params[:org_type] = options['org-type'] if options['org-type']
26
-
27
- qparams = { :params => params }
28
- github_api.resource.get(qparams) do |response, request, result|
29
- results = API::JSONResponse.new(request, result, response)
16
+ results = Veye::API::Github.get_list(
17
+ api_key, options[:page], options[:lang],
18
+ options[:private], options[:org], options[:org_type]
19
+ )
20
+ if valid_response?(results, 'No repositories.')
21
+ paging = results.data['paging']
22
+ show_results(@output_formats, results.data, options, paging)
30
23
  end
31
- catch_request_error(results, "No repositories.")
32
- show_results @@output_formats, results.data, options, results.data['paging']
33
24
  end
34
25
  end
35
26
  end
36
27
  end
37
-