veye 0.0.9 → 0.1

Sign up to get free protection for your applications and to get access to all the features.
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
-