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.
- checksums.yaml +4 -4
- data/Gemfile.lock +80 -29
- data/Makefile +6 -0
- data/README.md +12 -224
- data/bin/veye +13 -22
- data/changelogs.md +95 -0
- data/lib/veye/api/base_resource.rb +8 -9
- data/lib/veye/api/github.rb +77 -0
- data/lib/veye/api/json_response.rb +21 -25
- data/lib/veye/api/package.rb +98 -0
- data/lib/veye/api/project.rb +107 -0
- data/lib/veye/api/resource.rb +9 -8
- data/lib/veye/api/service.rb +15 -0
- data/lib/veye/api/user.rb +32 -0
- data/lib/veye/api.rb +22 -2
- data/lib/veye/base_executor.rb +13 -9
- data/lib/veye/github/delete.rb +10 -20
- data/lib/veye/github/import.rb +7 -14
- data/lib/veye/github/info.rb +6 -12
- data/lib/veye/github/list.rb +9 -19
- data/lib/veye/github/search.rb +9 -17
- data/lib/veye/github/sync.rb +9 -18
- data/lib/veye/github.rb +1 -1
- data/lib/veye/helpers/format_helpers.rb +15 -5
- data/lib/veye/package/follow.rb +24 -47
- data/lib/veye/package/info.rb +8 -25
- data/lib/veye/package/references.rb +9 -36
- data/lib/veye/package/search.rb +14 -24
- data/lib/veye/package.rb +14 -6
- data/lib/veye/pagination.rb +2 -0
- data/lib/veye/project/check.rb +39 -117
- data/lib/veye/project/license.rb +23 -0
- data/lib/veye/project.rb +4 -3
- data/lib/veye/service.rb +13 -17
- data/lib/veye/user/me.rb +11 -30
- data/lib/veye/user.rb +2 -1
- data/lib/veye/version.rb +1 -1
- data/lib/veye/views/github/info_csv.rb +3 -3
- data/lib/veye/views/github/info_json.rb +4 -0
- data/lib/veye/views/github/list_csv.rb +5 -3
- data/lib/veye/views/github/list_pretty.rb +2 -2
- data/lib/veye/views/github/list_table.rb +3 -2
- data/lib/veye/views/package/info_pretty.rb +1 -1
- data/lib/veye/views/package/search_csv.rb +2 -3
- data/lib/veye/views/package/search_table.rb +1 -3
- data/lib/veye/views/package.rb +1 -1
- data/lib/veye/views/project/licence_csv.rb +3 -3
- data/lib/veye/views/project/licence_json.rb +1 -1
- data/lib/veye/views/project/licence_pretty.rb +1 -1
- data/lib/veye/views/project/licence_table.rb +3 -3
- data/lib/veye/views/user/profile_table.rb +4 -1
- data/lib/veye/views/user.rb +3 -1
- data/lib/veye.rb +29 -61
- data/test/api/github_test.rb +84 -0
- data/test/api/package_test.rb +80 -0
- data/test/api/project_test.rb +118 -0
- data/test/api/service_test.rb +15 -0
- data/test/api/user_test.rb +30 -0
- data/test/fixtures/vcr_cassettes/github_delete.yml +48 -0
- data/test/fixtures/vcr_cassettes/github_import.yml +53 -0
- data/test/fixtures/vcr_cassettes/github_info.yml +49 -0
- data/test/fixtures/vcr_cassettes/github_list.yml +80 -0
- data/test/fixtures/vcr_cassettes/github_sync.yml +48 -0
- data/test/fixtures/vcr_cassettes/package_follow.yml +52 -0
- data/test/fixtures/vcr_cassettes/package_follow_status.yml +48 -0
- data/test/fixtures/vcr_cassettes/package_info.yml +56 -0
- data/test/fixtures/vcr_cassettes/package_reference.yml +46 -0
- data/test/fixtures/vcr_cassettes/package_search.yml +46 -0
- data/test/fixtures/vcr_cassettes/package_unfollow.yml +48 -0
- data/test/fixtures/vcr_cassettes/project_delete.yml +48 -0
- data/test/fixtures/vcr_cassettes/project_get.yml +49 -0
- data/test/fixtures/vcr_cassettes/project_license.yml +49 -0
- data/test/fixtures/vcr_cassettes/project_list.yml +48 -0
- data/test/fixtures/vcr_cassettes/project_update.yml +105 -0
- data/test/fixtures/vcr_cassettes/project_upload.yml +104 -0
- data/test/fixtures/vcr_cassettes/services_ping.yml +46 -0
- data/test/fixtures/vcr_cassettes/user_get_favorites.yml +48 -0
- data/test/fixtures/vcr_cassettes/user_get_profile.yml +48 -0
- data/test/github_delete_test.rb +31 -0
- data/test/github_import_test.rb +94 -0
- data/test/github_info_test.rb +73 -0
- data/test/github_list_test.rb +84 -0
- data/test/github_sync_test.rb +20 -0
- data/test/package_follow_test.rb +38 -0
- data/test/package_info_test.rb +73 -0
- data/test/package_reference_test.rb +67 -0
- data/test/package_search_test.rb +66 -0
- data/test/project_check_test.rb +326 -0
- data/test/project_license_test.rb +72 -0
- data/test/service_test.rb +29 -0
- data/test/test_helper.rb +29 -4
- data/test/user_me_test.rb +126 -0
- data/veye.gemspec +45 -0
- metadata +163 -37
- data/DEPENDENCIES.md +0 -25
- data/lib/veye/helpers/repo_helpers.rb +0 -5
- data/lib/veye/project/licence.rb +0 -38
- data/test/default_test.rb +0 -14
data/lib/veye/service.rb
CHANGED
|
@@ -1,26 +1,22 @@
|
|
|
1
1
|
module Veye
|
|
2
|
+
# CLI wrappers for API
|
|
2
3
|
class Service
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
public_api = API::Resource.new RESOURCE_PATH
|
|
6
|
-
api_response = "no idea"
|
|
7
|
-
public_api.resource['/ping'].get do |response, request, result, &block|
|
|
8
|
-
api_response = API::JSONResponse.new(request, result, response)
|
|
9
|
-
end
|
|
10
|
-
show_result(api_response)
|
|
11
|
-
return api_response
|
|
4
|
+
def self.ping
|
|
5
|
+
show_result(Veye::API::Service.ping)
|
|
12
6
|
end
|
|
13
7
|
|
|
14
8
|
def self.show_result(result)
|
|
15
|
-
if result.
|
|
9
|
+
if result.nil?
|
|
10
|
+
puts 'Request failure'.color(:red)
|
|
11
|
+
elsif result.success
|
|
16
12
|
puts "#{result.data['message']}".color(:green)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
else
|
|
14
|
+
printf(
|
|
15
|
+
"VersionEye didnt recognized secret word.Answered %s, %s\n",
|
|
16
|
+
result.code.to_s.color(:red),
|
|
17
|
+
result.message.to_s.color(:yellow)
|
|
18
|
+
)
|
|
19
|
+
end
|
|
24
20
|
end
|
|
25
21
|
end
|
|
26
22
|
end
|
data/lib/veye/user/me.rb
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
require_relative '../views/user.rb'
|
|
2
2
|
require_relative '../base_executor.rb'
|
|
3
3
|
|
|
4
|
-
|
|
5
4
|
module Veye
|
|
6
5
|
module User
|
|
6
|
+
# Me class includes commands to manage and view authorized user profile
|
|
7
|
+
# and favorites.
|
|
7
8
|
class Me < BaseExecutor
|
|
8
|
-
|
|
9
|
-
@@profile_formats = {
|
|
9
|
+
@profile_formats = {
|
|
10
10
|
'csv' => User::ProfileCSV.new,
|
|
11
11
|
'json' => User::ProfileJSON.new,
|
|
12
12
|
'pretty' => User::ProfilePretty.new,
|
|
13
13
|
'table' => User::ProfileTable.new
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
@favorite_formats = {
|
|
17
17
|
'csv' => User::FavoriteCSV.new,
|
|
18
18
|
'json' => User::FavoriteJSON.new,
|
|
19
19
|
'pretty' => User::FavoritePretty.new,
|
|
@@ -21,39 +21,20 @@ module Veye
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
def self.get_profile(api_key, options)
|
|
24
|
-
|
|
25
|
-
results
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
user_api.resource.get(qparams) do |response, request, result|
|
|
29
|
-
results = API::JSONResponse.new(request, result, response)
|
|
24
|
+
results = Veye::API::User.get_profile(api_key)
|
|
25
|
+
if valid_response?(results, 'Failed to read profile.')
|
|
26
|
+
show_results(@profile_formats, results.data, options)
|
|
30
27
|
end
|
|
31
|
-
|
|
32
|
-
catch_request_error(results, "Failed to read profile.")
|
|
33
|
-
show_results(@@profile_formats, results.data, options)
|
|
34
|
-
results
|
|
35
28
|
end
|
|
36
29
|
|
|
37
30
|
def self.get_favorites(api_key, options)
|
|
38
|
-
|
|
39
|
-
results = nil
|
|
40
|
-
page = options[:page] || 1
|
|
41
|
-
qparams = {
|
|
42
|
-
:params => {
|
|
43
|
-
:api_key => api_key,
|
|
44
|
-
:page => page
|
|
45
|
-
}
|
|
46
|
-
}
|
|
31
|
+
results = Veye::API::User.get_favorites(api_key, options[:page])
|
|
47
32
|
|
|
48
|
-
|
|
49
|
-
|
|
33
|
+
if valid_response?(results, 'Failed to read favorites.')
|
|
34
|
+
paging = results.data['paging']
|
|
35
|
+
show_results(@favorite_formats, results.data, options, paging)
|
|
50
36
|
end
|
|
51
|
-
|
|
52
|
-
catch_request_error(results, "Failed to read favorites.")
|
|
53
|
-
show_results(@@favorite_formats, results.data, options, results.data['paging'])
|
|
54
|
-
results
|
|
55
37
|
end
|
|
56
38
|
end
|
|
57
39
|
end
|
|
58
40
|
end
|
|
59
|
-
|
data/lib/veye/user.rb
CHANGED
data/lib/veye/version.rb
CHANGED
|
@@ -4,7 +4,7 @@ module Veye
|
|
|
4
4
|
module Github
|
|
5
5
|
class InfoCSV < BaseCSV
|
|
6
6
|
def initialize
|
|
7
|
-
headers = "name,language,owner_login,owner_type,private,fork,branches,imported_projects,
|
|
7
|
+
headers = "name,language,owner_login,owner_type,private,fork,branches,imported_projects,description"
|
|
8
8
|
super(headers)
|
|
9
9
|
end
|
|
10
10
|
def format(results)
|
|
@@ -20,8 +20,8 @@ module Veye
|
|
|
20
20
|
repo['owner_type'],
|
|
21
21
|
repo['private'],
|
|
22
22
|
repo['fork'],
|
|
23
|
-
repo['branches'].join('|'),
|
|
24
|
-
imported_project_names.join('|'),
|
|
23
|
+
repo['branches'].to_a.join('|'),
|
|
24
|
+
imported_project_names.to_a.join('|'),
|
|
25
25
|
repo['description']
|
|
26
26
|
)
|
|
27
27
|
end
|
|
@@ -4,13 +4,14 @@ module Veye
|
|
|
4
4
|
module Github
|
|
5
5
|
class ListCSV < BaseCSV
|
|
6
6
|
def initialize
|
|
7
|
-
headers = "nr,fullname,language,owner_login,owner_type,private,fork
|
|
7
|
+
headers = "nr,fullname,language,owner_login,owner_type,private,fork,\
|
|
8
|
+
branches,imported,description"
|
|
8
9
|
super(headers)
|
|
9
10
|
end
|
|
10
11
|
|
|
11
12
|
def format(results)
|
|
12
13
|
results['repos'].each_with_index do |result, index|
|
|
13
|
-
printf("%d,%s,%s,%s,%s,%s,%s,%s,%s\n",
|
|
14
|
+
printf("%d,%s,%s,%s,%s,%s,%s,%s,%s,%s\n",
|
|
14
15
|
index + 1,
|
|
15
16
|
result['fullname'],
|
|
16
17
|
result['language'],
|
|
@@ -18,7 +19,8 @@ module Veye
|
|
|
18
19
|
result['owner_type'],
|
|
19
20
|
result['private'],
|
|
20
21
|
result['fork'],
|
|
21
|
-
result['branches'].join('|'),
|
|
22
|
+
result['branches'].to_a.join('|'),
|
|
23
|
+
result['imported'].to_a.join('|'),
|
|
22
24
|
result['description']
|
|
23
25
|
)
|
|
24
26
|
end
|
|
@@ -18,9 +18,9 @@ module Veye
|
|
|
18
18
|
printf("\t%-15s: %s\n", "Owner type", result['owner_type'])
|
|
19
19
|
printf("\t%-15s: %s\n", "Private", result['private'])
|
|
20
20
|
printf("\t%-15s: %s\n", "Fork", result['fork'])
|
|
21
|
-
printf("\t%-15s: %s\n", "Branches", result['branches'].join(','))
|
|
21
|
+
printf("\t%-15s: %s\n", "Branches", result['branches'].to_a.join(','))
|
|
22
22
|
printf("\t%-15s: %s\n", "Description", result['description'])
|
|
23
|
-
printf("\t%-15s: %s\n", "Imported", result['imported_projects'].join(','))
|
|
23
|
+
printf("\t%-15s: %s\n", "Imported", result['imported_projects'].to_a.join(','))
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
26
|
end
|
|
@@ -4,7 +4,8 @@ module Veye
|
|
|
4
4
|
module Github
|
|
5
5
|
class ListTable < BaseTable
|
|
6
6
|
def initialize
|
|
7
|
-
headings = %w(index fullname language owner_login owner_type private
|
|
7
|
+
headings = %w(index fullname language owner_login owner_type private
|
|
8
|
+
fork branches imported)
|
|
8
9
|
super("Github repositories", headings)
|
|
9
10
|
end
|
|
10
11
|
|
|
@@ -17,7 +18,7 @@ module Veye
|
|
|
17
18
|
row << result['owner_type']
|
|
18
19
|
row << result['private']
|
|
19
20
|
row << result['fork']
|
|
20
|
-
row << result['branches'].join("\n")
|
|
21
|
+
row << result['branches'].to_a.join("\n")
|
|
21
22
|
row << result['imported_projects'].to_a.join("\n")
|
|
22
23
|
#row << result['description']
|
|
23
24
|
@table << row
|
|
@@ -16,7 +16,7 @@ module Veye
|
|
|
16
16
|
"#{result["prod_key"]}".bright)
|
|
17
17
|
printf("\t%-15s:\n\t %s\n", "Description", result["description"])
|
|
18
18
|
printf("\t%-15s: %s\n", "Group id", result["group_id"])
|
|
19
|
-
printf("\t%-15s: %s\n", "Link", result["
|
|
19
|
+
printf("\t%-15s: %s\n", "Link", result["links"].first.fetch('link'))
|
|
20
20
|
|
|
21
21
|
end
|
|
22
22
|
end
|
|
@@ -4,7 +4,7 @@ module Veye
|
|
|
4
4
|
module Package
|
|
5
5
|
class SearchCSV < BaseCSV
|
|
6
6
|
def initialize
|
|
7
|
-
headers = "nr,name,version,prod_key,
|
|
7
|
+
headers = "nr,name,version,prod_key,language,group_id"
|
|
8
8
|
super(headers)
|
|
9
9
|
end
|
|
10
10
|
|
|
@@ -13,12 +13,11 @@ module Veye
|
|
|
13
13
|
return if items.nil?
|
|
14
14
|
|
|
15
15
|
items.each_with_index do |result, index|
|
|
16
|
-
printf("%d,%s,%s,%s,%s,%s
|
|
16
|
+
printf("%d,%s,%s,%s,%s,%s\n",
|
|
17
17
|
index + 1,
|
|
18
18
|
result["name"],
|
|
19
19
|
result["version"],
|
|
20
20
|
result["prod_key"],
|
|
21
|
-
result["version"],
|
|
22
21
|
result["language"],
|
|
23
22
|
result["group_id"])
|
|
24
23
|
end
|
|
@@ -4,7 +4,7 @@ module Veye
|
|
|
4
4
|
module Package
|
|
5
5
|
class SearchTable < BaseTable
|
|
6
6
|
def initialize
|
|
7
|
-
headings = %w(index name version product_key language
|
|
7
|
+
headings = %w(index name version product_key language)
|
|
8
8
|
super("Package search", headings)
|
|
9
9
|
end
|
|
10
10
|
|
|
@@ -14,8 +14,6 @@ module Veye
|
|
|
14
14
|
items.each_with_index do |result, index|
|
|
15
15
|
row = [index+1, result["name"], result["version"], result["prod_key"]]
|
|
16
16
|
row << result["language"]
|
|
17
|
-
row << result["group_id"]
|
|
18
|
-
|
|
19
17
|
@table << row
|
|
20
18
|
end
|
|
21
19
|
end
|
data/lib/veye/views/package.rb
CHANGED
|
@@ -4,15 +4,15 @@ module Veye
|
|
|
4
4
|
module Project
|
|
5
5
|
class LicenceCSV < BaseCSV
|
|
6
6
|
def initialize
|
|
7
|
-
headers = "nr,
|
|
7
|
+
headers = "nr,license,product_keys"
|
|
8
8
|
super(headers)
|
|
9
9
|
end
|
|
10
10
|
def format(results)
|
|
11
11
|
return nil if results.nil?
|
|
12
12
|
n = 1
|
|
13
|
-
results["licenses"].each_pair do |
|
|
13
|
+
results["licenses"].each_pair do |license, prods|
|
|
14
14
|
prod_keys = prods.map {|p| p["prod_key"]}
|
|
15
|
-
printf("%d,%s,%s\n", n,
|
|
15
|
+
printf("%d,%s,%s\n", n, license, prod_keys.join(','))
|
|
16
16
|
n += 1
|
|
17
17
|
end
|
|
18
18
|
end
|
|
@@ -4,16 +4,16 @@ module Veye
|
|
|
4
4
|
module Project
|
|
5
5
|
class LicenceTable < BaseTable
|
|
6
6
|
def initialize
|
|
7
|
-
headings = %w(index
|
|
7
|
+
headings = %w(index license product_keys)
|
|
8
8
|
super("Licences", headings)
|
|
9
9
|
end
|
|
10
10
|
def format(results)
|
|
11
11
|
items = results['licenses']
|
|
12
12
|
return if items.nil?
|
|
13
13
|
n = 1
|
|
14
|
-
items.each_pair do |
|
|
14
|
+
items.each_pair do |license, products|
|
|
15
15
|
products.each do |prod|
|
|
16
|
-
row = [n,
|
|
16
|
+
row = [n, license, prod["prod_key"]]
|
|
17
17
|
@table << row
|
|
18
18
|
end
|
|
19
19
|
n += 1
|
|
@@ -4,7 +4,10 @@ module Veye
|
|
|
4
4
|
module User
|
|
5
5
|
class ProfileTable < BaseTable
|
|
6
6
|
def initialize
|
|
7
|
-
headings = %w(
|
|
7
|
+
headings = %w(
|
|
8
|
+
username fullname email plan_name admin deleted
|
|
9
|
+
new_notifications total_notifications
|
|
10
|
+
)
|
|
8
11
|
super("User's profile", headings)
|
|
9
12
|
end
|
|
10
13
|
|
data/lib/veye/views/user.rb
CHANGED
data/lib/veye.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Add requires for other files you add to your project here, so
|
|
2
2
|
# you just need to require this one file in your bin file
|
|
3
|
-
require '
|
|
3
|
+
require 'rest-client'
|
|
4
|
+
require 'yaml'
|
|
4
5
|
|
|
5
6
|
require 'veye/helpers/format_helpers.rb'
|
|
6
|
-
require 'veye/helpers/repo_helpers.rb'
|
|
7
7
|
|
|
8
8
|
require 'veye/version.rb'
|
|
9
9
|
require 'veye/service.rb'
|
|
@@ -14,9 +14,9 @@ require 'veye/user.rb'
|
|
|
14
14
|
require 'veye/github.rb'
|
|
15
15
|
require 'veye/pagination.rb'
|
|
16
16
|
|
|
17
|
-
$global_options ||=
|
|
18
|
-
DEFAULT_CONFIG_FILE =
|
|
19
|
-
DEFAULT_CONFIG_PATH =
|
|
17
|
+
$global_options ||= {}
|
|
18
|
+
DEFAULT_CONFIG_FILE = '.veye.rc'
|
|
19
|
+
DEFAULT_CONFIG_PATH = '~'
|
|
20
20
|
|
|
21
21
|
def get_config_fullpath
|
|
22
22
|
File.expand_path("#{DEFAULT_CONFIG_PATH}/#{DEFAULT_CONFIG_FILE}")
|
|
@@ -24,44 +24,43 @@ end
|
|
|
24
24
|
|
|
25
25
|
def config_exists?
|
|
26
26
|
filepath = get_config_fullpath
|
|
27
|
-
File.
|
|
27
|
+
File.exist?(filepath)
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def check_config_file
|
|
31
31
|
unless config_exists?
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
p format(
|
|
33
|
+
"%s: %s\n",
|
|
34
|
+
'config file doesnt exist.'.color(:red),
|
|
35
|
+
'Use `veye initconfig` to initialize settings file.'
|
|
36
|
+
)
|
|
37
|
+
exit
|
|
36
38
|
end
|
|
37
39
|
end
|
|
38
40
|
|
|
39
41
|
def self.check_configs(global_opts, needs_api_key)
|
|
40
42
|
check_config_file
|
|
41
43
|
check_api_key(global_opts) if needs_api_key
|
|
42
|
-
|
|
43
|
-
unless ssl_key_exists?(global_opts)
|
|
44
|
-
generate_ssl_keys(global_opts)
|
|
45
|
-
end
|
|
46
44
|
true
|
|
47
45
|
end
|
|
48
46
|
|
|
49
47
|
def init_environment
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
# sets up required variables and modules to work on IRB or unittest
|
|
49
|
+
config_file = get_config_fullpath
|
|
50
|
+
$global_options = YAML.load_file(config_file)
|
|
51
|
+
$global_options[:config_file] = config_file
|
|
52
|
+
$global_options[:url] = Veye::API::Resource.build_url($global_options)
|
|
53
|
+
$global_options
|
|
56
54
|
end
|
|
57
55
|
|
|
58
56
|
def check_api_key(global_opts)
|
|
59
57
|
result = false
|
|
60
|
-
if global_opts[:api_key].nil?
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
58
|
+
if global_opts[:api_key].nil? || global_opts[:api_key].match("add your api key")
|
|
59
|
+
print format(
|
|
60
|
+
"%s: %s\n",
|
|
61
|
+
'Warning: API key is missing.'.color(:yellow),
|
|
62
|
+
'You cant access private data.'
|
|
63
|
+
)
|
|
65
64
|
else
|
|
66
65
|
result = true
|
|
67
66
|
end
|
|
@@ -69,45 +68,14 @@ def check_api_key(global_opts)
|
|
|
69
68
|
result
|
|
70
69
|
end
|
|
71
70
|
|
|
72
|
-
def ssl_key_exists?(global_opts)
|
|
73
|
-
fullpath = File.expand_path(global_opts[:ssl_path])
|
|
74
|
-
return File.exists?("#{fullpath}/veye_cert.pem")
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
def generate_ssl_keys(global_opts)
|
|
78
|
-
result = false
|
|
79
|
-
|
|
80
|
-
Dir.chdir(Dir.home)
|
|
81
|
-
ssl_path = File.expand_path(global_opts[:ssl_path])
|
|
82
|
-
unless Dir.exists?(ssl_path)
|
|
83
|
-
print "Info: Creating folder for ssl keys: `#{ssl_path}`\n"
|
|
84
|
-
Dir.mkdir(ssl_path)
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
Dir.chdir(ssl_path)
|
|
88
|
-
|
|
89
|
-
key = OpenSSL::PKey::RSA.new 2048
|
|
90
|
-
open 'veye_key.pem', 'w' do |io| io.write(key.to_pem) end
|
|
91
|
-
open 'veye_cert.pem', 'w' do |io| io.write(key.public_key.to_pem) end
|
|
92
|
-
|
|
93
|
-
if ssl_key_exists?(global_opts)
|
|
94
|
-
print "Success: SSL keys are generated.\n"
|
|
95
|
-
result = true
|
|
96
|
-
else
|
|
97
|
-
print "Error: Cant generate SSL keys. Do you have openssl installed?\n"
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
Dir.chdir(Dir.home)
|
|
101
|
-
result
|
|
102
|
-
end
|
|
103
|
-
|
|
104
71
|
def save_configs
|
|
105
72
|
filepath = get_config_fullpath
|
|
106
73
|
File.open(filepath, 'w') do |f|
|
|
107
74
|
f.puts $global_options.to_yaml
|
|
108
75
|
end
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
76
|
+
print format(
|
|
77
|
+
"%s: %s",
|
|
78
|
+
'Success'.color(:green),
|
|
79
|
+
"new settings are saved into file: `#{filepath}`"
|
|
80
|
+
)
|
|
113
81
|
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class GithubTest < Minitest::Test
|
|
4
|
+
def setup
|
|
5
|
+
init_environment
|
|
6
|
+
@api_key = 'ba7d93beb5de7820764e'
|
|
7
|
+
@repo_name = 'versioneye/veye'
|
|
8
|
+
@branch = "master"
|
|
9
|
+
@file = "Gemfile.lock"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_list_api
|
|
13
|
+
VCR.use_cassette('github_list') do
|
|
14
|
+
res = Veye::API::Github.get_list(@api_key)
|
|
15
|
+
refute_nil res
|
|
16
|
+
assert_equal 200, res.code
|
|
17
|
+
repo = res.data["repos"][0]
|
|
18
|
+
assert_equal "versioneye_update", repo["name"]
|
|
19
|
+
assert_equal "shell", repo["language"]
|
|
20
|
+
assert_equal "versioneye", repo["owner_login"]
|
|
21
|
+
assert_equal "organization", repo["owner_type"]
|
|
22
|
+
assert_equal false, repo["private"]
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_sync_api
|
|
27
|
+
VCR.use_cassette('github_sync') do
|
|
28
|
+
resp = Veye::API::Github.import_all(@api_key)
|
|
29
|
+
refute_nil resp
|
|
30
|
+
assert_equal 200, resp.code
|
|
31
|
+
assert_equal( {"status"=>"running"}, resp.data )
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_info_api
|
|
36
|
+
VCR.use_cassette('github_info') do
|
|
37
|
+
res = Veye::API::Github.get_repo(@api_key, @repo_name)
|
|
38
|
+
refute_nil res
|
|
39
|
+
assert_equal 200, res.code
|
|
40
|
+
repo = res.data["repo"]
|
|
41
|
+
assert_equal "versioneye/veye", repo["fullname"]
|
|
42
|
+
assert_equal "ruby", repo["language"]
|
|
43
|
+
assert_equal "versioneye", repo["owner_login"]
|
|
44
|
+
assert_equal false, repo["private"]
|
|
45
|
+
assert_equal false, repo["fork"]
|
|
46
|
+
assert_equal [], res.data["imported_projects"]
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_import_api
|
|
51
|
+
VCR.use_cassette('github_import') do
|
|
52
|
+
res = Veye::API::Github.import_repo(@api_key, @repo_name, @branch, @file)
|
|
53
|
+
refute_nil res
|
|
54
|
+
assert_equal 201, res.code
|
|
55
|
+
repo = res.data["repo"]
|
|
56
|
+
|
|
57
|
+
assert_equal "veye", repo["name"]
|
|
58
|
+
assert_equal "versioneye/veye", repo["fullname"]
|
|
59
|
+
assert_equal "ruby", repo["language"]
|
|
60
|
+
assert_equal "versioneye", repo["owner_login"]
|
|
61
|
+
assert_equal "organization", repo["owner_type"]
|
|
62
|
+
assert_equal false, repo["private"]
|
|
63
|
+
assert_equal false, repo["fork"]
|
|
64
|
+
|
|
65
|
+
project = res.data["imported_projects"].first
|
|
66
|
+
refute_nil project, "imported_projects fields is missing"
|
|
67
|
+
assert_equal "rubygem_versioneye_veye_1", project["project_key"]
|
|
68
|
+
assert_equal "versioneye/veye", project["name"]
|
|
69
|
+
assert_equal "RubyGem", project["project_type"]
|
|
70
|
+
assert_equal true, project["public"]
|
|
71
|
+
assert_equal "github", project["source"]
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def test_delete_api
|
|
76
|
+
VCR.use_cassette('github_delete') do
|
|
77
|
+
res = Veye::API::Github.delete_repo(@api_key, @repo_name, @branch)
|
|
78
|
+
|
|
79
|
+
refute_nil res, "No API response"
|
|
80
|
+
assert_equal 200, res.code
|
|
81
|
+
assert_equal true, res.data["success"]
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|