github_sloc 1.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9d34e9fe62ee1a28a7de6e0d43a108f5422c65e2
4
+ data.tar.gz: 231cc9eb0b73cba931bb51baf4fd7fa36004f440
5
+ SHA512:
6
+ metadata.gz: d5494d71c68b0ffd42df021b3f30ff668ff9183fa6f0a629b212d0ffcea1d1099753ccf64cd23b2d9c26be3f03cd429c453cbabd60c58c45b284544cc65ec091
7
+ data.tar.gz: 56c3b9e7e7e1ad4374d1c3caa19428b510799a7564a9cefd8d9b525d5eb1e97c56c35c029a4b77427d5d0f7bf5798de17a1ba31f929d064da649d3e88e46fb8a
data/exe/github_sloc ADDED
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "octokit"
4
+ require "net/http"
5
+ require "uri"
6
+
7
+ totala = 0
8
+ totald = 0
9
+ totalc = 0
10
+
11
+ print "Username: "
12
+ uname = gets.chomp
13
+ print "Password: "
14
+ pword = gets.chomp
15
+
16
+ octoclient = Octokit::Client.new(:login => uname, :password => pword)
17
+
18
+ auth = octoclient.create_authorization(:scopes => ["repo"], :note => "SLOC Script")
19
+ authid = auth.attrs[:id]
20
+ token = auth.attrs[:token]
21
+
22
+ query = Hash.new
23
+ path = File.expand_path('../lib/github_sloc/query.json', File.dirname(__FILE__))
24
+ puts path
25
+ query['query'] = IO.read(path)
26
+ query['variables'] = Hash.new
27
+ query['variables']['user'] = uname
28
+ query = query.to_json
29
+
30
+ uri = URI.parse("https://api.github.com/graphql")
31
+
32
+ http = Net::HTTP.new(uri.host, uri.port)
33
+ http.use_ssl = true
34
+
35
+ request = Net::HTTP::Post.new(uri)
36
+ request['Authorization'] = "bearer #{token}"
37
+ request['Content-type'] = "application/json"
38
+ request.body = query
39
+
40
+ data = JSON.parse(http.request(request).body)
41
+
42
+ printf "----------\n%-40s %-10s %-10s %-10s\n----------\n", "Repository", "Adds", "Dels", "Commits"
43
+
44
+ data['data']['user']['contributedRepositories']['edges'].each do |edge|
45
+ repo = edge['node']['nameWithOwner']
46
+ stats = octoclient.contributors_stats(repo)
47
+ a = 0
48
+ d = 0
49
+ c = 0
50
+ if stats == nil
51
+ next
52
+ end
53
+ stats.each do |stat|
54
+ if stat[:author][:login] == uname
55
+ stat[:weeks].each do |week|
56
+ a = a + week[:a]
57
+ d = d + week[:d]
58
+ c = c + week[:c]
59
+ end
60
+ end
61
+ end
62
+ printf "%-40s %-10s %-10s %-10s\n", repo, "(+#{a})", "(-#{d})", "(:#{c})"
63
+ totala = totala + a
64
+ totald = totald + d
65
+ totalc = totalc + c
66
+ end
67
+
68
+ printf "----------\n%-40s %-10s %-10s %-10s\n", "Total", "(+#{totala})", "(-#{totald})", "(:#{totalc})"
69
+
70
+ octoclient.delete_authorization(authid)
@@ -0,0 +1,12 @@
1
+ query($user: String!) {
2
+ user(login: $user) {
3
+ contributedRepositories(first:100) {
4
+ totalCount
5
+ edges {
6
+ node {
7
+ nameWithOwner
8
+ }
9
+ }
10
+ }
11
+ }
12
+ }
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: github_sloc
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Caleb Smith
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-08-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: octokit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.15'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.15'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ description: Find How Many SLOC You've Commited to Github
56
+ email:
57
+ - karagenit@outlook.com
58
+ executables:
59
+ - github_sloc
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - exe/github_sloc
64
+ - lib/github_sloc/query.json
65
+ homepage: https://github.com/karagenit/sloc
66
+ licenses:
67
+ - MIT
68
+ metadata: {}
69
+ post_install_message:
70
+ rdoc_options: []
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ requirements: []
84
+ rubyforge_project:
85
+ rubygems_version: 2.4.8
86
+ signing_key:
87
+ specification_version: 4
88
+ summary: Github SLOC
89
+ test_files: []