ghuls-lib 2.0.2 → 2.1.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 +4 -4
- data/lib/ghuls/lib.rb +36 -49
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38b8374eeb0e56a4de7f931d07bf7788d0caa95a
|
4
|
+
data.tar.gz: 5e7306abf6f9fec7146ef4b40f621d49aa087264
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1160f5808594ab75403b4484d22ffa4ab86a0044f5677ff61574194361a36b73070e61d82b498fc1675f9ce96d275bb3f61c574c320d23a0eca0ee78ee5e9496
|
7
|
+
data.tar.gz: ee595de199d0d087e585a13d2780f9a2454f05827d142c3e4f7aa4927705cb14dff261b1d11d29f459b193b4dba3133148ebfb6289cbc3a6533d955549cb90ca
|
data/lib/ghuls/lib.rb
CHANGED
@@ -50,7 +50,7 @@ module GHULS
|
|
50
50
|
end
|
51
51
|
|
52
52
|
# Returns the repos in the user's organizations that they have actually
|
53
|
-
# contributed to.
|
53
|
+
# contributed to, organized by forks, privates, publics, and mirrors.
|
54
54
|
# @param username [String] See #get_user_and_check
|
55
55
|
# @param github [Octokit::Client] See #get_user_and_check
|
56
56
|
# @return [Array] All the repository full names that the user has
|
@@ -65,18 +65,17 @@ module GHULS
|
|
65
65
|
end
|
66
66
|
true_repos = []
|
67
67
|
repos.each do |r|
|
68
|
-
next if r[:fork]
|
69
68
|
contributors = github.contributors(r[:full_name])
|
70
69
|
next if contributors.empty?
|
71
70
|
contributors.each do |c|
|
72
71
|
if c[:login] =~ /^#{username}$/i
|
73
|
-
true_repos.push(r
|
72
|
+
true_repos.push(r)
|
74
73
|
else
|
75
74
|
next
|
76
75
|
end
|
77
76
|
end
|
78
77
|
end
|
79
|
-
true_repos
|
78
|
+
get_organized_repos(true_repos)
|
80
79
|
end
|
81
80
|
|
82
81
|
# Gets the user's repositories organized by whether they are forks,
|
@@ -85,29 +84,7 @@ module GHULS
|
|
85
84
|
# @param github [Octokit::Client] See #get_user_and_check
|
86
85
|
# @return [Hash] All the repositories under the user's account.
|
87
86
|
def self.get_user_repos(username, github)
|
88
|
-
|
89
|
-
forks = []
|
90
|
-
publics = []
|
91
|
-
mirrors = []
|
92
|
-
privates = []
|
93
|
-
repos.each do |r|
|
94
|
-
forks.push(r[:full_name]) if r[:fork]
|
95
|
-
|
96
|
-
if r[:private]
|
97
|
-
privates.push(r[:full_name])
|
98
|
-
else
|
99
|
-
publics.push(r[:full_name])
|
100
|
-
end
|
101
|
-
|
102
|
-
mirrors.push(r[:full_name]) unless r[:mirror_url].nil?
|
103
|
-
end
|
104
|
-
|
105
|
-
{
|
106
|
-
public: publics,
|
107
|
-
forks: forks,
|
108
|
-
mirrors: mirrors,
|
109
|
-
privates: privates
|
110
|
-
}
|
87
|
+
get_organized_repos(github.repositories(username))
|
111
88
|
end
|
112
89
|
|
113
90
|
# Gets the number of forkers, stargazers, and watchers.
|
@@ -256,28 +233,6 @@ module GHULS
|
|
256
233
|
lang_percents
|
257
234
|
end
|
258
235
|
|
259
|
-
# Performs the main analysis of the user's organizations.
|
260
|
-
# @param username [String] See #get_user_and_check
|
261
|
-
# @param github [Octokit::Client] See #get_user_and_check
|
262
|
-
# @return [Hash] See #get_org_langs
|
263
|
-
# @return [Nil] If the user does not have any languages.
|
264
|
-
def self.analyze_orgs(username, github)
|
265
|
-
langs = get_org_langs(username, github)
|
266
|
-
return nil if langs.empty?
|
267
|
-
return langs
|
268
|
-
end
|
269
|
-
|
270
|
-
# Performs the main analysis of the user.
|
271
|
-
# @param username [String] See #get_user_and_check
|
272
|
-
# @param github [Octokit::Client] See #get_user_and_check
|
273
|
-
# @return [Hash] See #analyze_orgs
|
274
|
-
# @return [Nil] See #analyze_orgs
|
275
|
-
def self.analyze_user(username, github)
|
276
|
-
langs = get_user_langs(username, github)
|
277
|
-
return nil if langs.empty?
|
278
|
-
return langs
|
279
|
-
end
|
280
|
-
|
281
236
|
using StringUtility
|
282
237
|
# Gets a random GitHub user that actually has data to analyze.
|
283
238
|
# Must always get a user that exists and has repositories, so it will
|
@@ -298,5 +253,37 @@ module GHULS
|
|
298
253
|
end
|
299
254
|
user
|
300
255
|
end
|
256
|
+
|
257
|
+
private
|
258
|
+
|
259
|
+
# Gets the organized repository hash for the main repository hash given
|
260
|
+
# by Octokit::Client#repositories
|
261
|
+
# @param repos [Hash] The repository hash given by Octokit
|
262
|
+
# @return [Hash] An organizeed hash divided into public, forked, mirrored,
|
263
|
+
# and private repos.
|
264
|
+
def self.get_organized_repos(repos)
|
265
|
+
forks = []
|
266
|
+
publics = []
|
267
|
+
mirrors = []
|
268
|
+
privates = []
|
269
|
+
repos.each do |r|
|
270
|
+
forks.push(r[:full_name]) if r[:fork]
|
271
|
+
|
272
|
+
if r[:private]
|
273
|
+
privates.push(r[:full_name])
|
274
|
+
else
|
275
|
+
publics.push(r[:full_name])
|
276
|
+
end
|
277
|
+
|
278
|
+
mirrors.push(r[:full_name]) unless r[:mirror_url].nil?
|
279
|
+
end
|
280
|
+
|
281
|
+
{
|
282
|
+
public: publics,
|
283
|
+
forks: forks,
|
284
|
+
mirrors: mirrors,
|
285
|
+
privates: privates
|
286
|
+
}
|
287
|
+
end
|
301
288
|
end
|
302
289
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ghuls-lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eli Foster
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: octokit
|