github_org_reports 0.0.0 → 0.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.
- data/Gemfile +1 -1
- data/Gemfile.lock +3 -2
- data/VERSION +1 -1
- data/github_org_reports.gemspec +84 -0
- data/include/github_org_reports_dbschema.rb +13 -1
- data/include/github_org_reports_repo.rb +8 -0
- data/lib/github_org_reports.rb +92 -25
- data/models/commit.rb +6 -2
- data/models/organization.rb +7 -1
- data/models/pull_request.rb +45 -4
- data/spec/github_org_reports_spec.rb +31 -0
- metadata +5 -4
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: /Users/kaspernj/Dev/Ruby/baza
|
3
3
|
specs:
|
4
|
-
baza (0.0.
|
4
|
+
baza (0.0.10)
|
5
5
|
array_enumerator
|
6
6
|
datet
|
7
7
|
knjrbfw
|
8
|
+
string-cases
|
8
9
|
wref
|
9
10
|
|
10
11
|
GEM
|
@@ -80,7 +81,7 @@ PLATFORMS
|
|
80
81
|
ruby
|
81
82
|
|
82
83
|
DEPENDENCIES
|
83
|
-
baza!
|
84
|
+
baza (>= 0.0.10)!
|
84
85
|
bundler (>= 1.0.0)
|
85
86
|
github_api
|
86
87
|
jeweler (~> 1.8.4)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.1
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "github_org_reports"
|
8
|
+
s.version = "0.0.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["kaspernj"]
|
12
|
+
s.date = "2013-05-16"
|
13
|
+
s.description = "A gem to generate organization reports based on pull requests and commits."
|
14
|
+
s.email = "k@spernj.org"
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".rspec",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.rdoc",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"github_org_reports.gemspec",
|
29
|
+
"include/github_org_reports_dbschema.rb",
|
30
|
+
"include/github_org_reports_models.rb",
|
31
|
+
"include/github_org_reports_repo.rb",
|
32
|
+
"lib/github_org_reports.rb",
|
33
|
+
"models/commit.rb",
|
34
|
+
"models/commit_organization_link.rb",
|
35
|
+
"models/organization.rb",
|
36
|
+
"models/pull_request.rb",
|
37
|
+
"models/pull_request_organization_link.rb",
|
38
|
+
"models/user.rb",
|
39
|
+
"spec/github_org_reports_spec.rb",
|
40
|
+
"spec/spec_helper.rb"
|
41
|
+
]
|
42
|
+
s.homepage = "http://github.com/kaspernj/github_org_reports"
|
43
|
+
s.licenses = ["MIT"]
|
44
|
+
s.require_paths = ["lib"]
|
45
|
+
s.rubygems_version = "1.8.23"
|
46
|
+
s.summary = "A gem to generate organization reports based on pull requests and commits."
|
47
|
+
|
48
|
+
if s.respond_to? :specification_version then
|
49
|
+
s.specification_version = 3
|
50
|
+
|
51
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
52
|
+
s.add_runtime_dependency(%q<baza>, [">= 0.0.10"])
|
53
|
+
s.add_runtime_dependency(%q<json>, [">= 0"])
|
54
|
+
s.add_runtime_dependency(%q<github_api>, [">= 0"])
|
55
|
+
s.add_runtime_dependency(%q<string-cases>, [">= 0"])
|
56
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
57
|
+
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
58
|
+
s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
|
59
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
60
|
+
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
61
|
+
else
|
62
|
+
s.add_dependency(%q<baza>, [">= 0.0.10"])
|
63
|
+
s.add_dependency(%q<json>, [">= 0"])
|
64
|
+
s.add_dependency(%q<github_api>, [">= 0"])
|
65
|
+
s.add_dependency(%q<string-cases>, [">= 0"])
|
66
|
+
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
67
|
+
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
68
|
+
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
69
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
70
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
71
|
+
end
|
72
|
+
else
|
73
|
+
s.add_dependency(%q<baza>, [">= 0.0.10"])
|
74
|
+
s.add_dependency(%q<json>, [">= 0"])
|
75
|
+
s.add_dependency(%q<github_api>, [">= 0"])
|
76
|
+
s.add_dependency(%q<string-cases>, [">= 0"])
|
77
|
+
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
78
|
+
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
79
|
+
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
80
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
81
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
@@ -4,6 +4,8 @@ class GithubOrgReports::Dbschema
|
|
4
4
|
:Commit => {
|
5
5
|
:columns => [
|
6
6
|
{:name => :id, :type => :int, :autoincr => true, :primarykey => true},
|
7
|
+
{:name => :repository_name, :type => :varchar},
|
8
|
+
{:name => :repository_user, :type => :varchar},
|
7
9
|
{:name => :user_id, :type => :int},
|
8
10
|
{:name => :pull_request_id, :type => :int},
|
9
11
|
{:name => :sha, :type => :varchar},
|
@@ -12,6 +14,8 @@ class GithubOrgReports::Dbschema
|
|
12
14
|
{:name => :time, :type => :int}
|
13
15
|
],
|
14
16
|
:indexes => [
|
17
|
+
:repository_name,
|
18
|
+
:repository_user,
|
15
19
|
:user_id
|
16
20
|
]
|
17
21
|
},
|
@@ -43,15 +47,23 @@ class GithubOrgReports::Dbschema
|
|
43
47
|
:PullRequest => {
|
44
48
|
:columns => [
|
45
49
|
{:name => :id, :type => :int, :autoincr => true, :primarykey => true},
|
50
|
+
{:name => :repository_name, :type => :varchar},
|
51
|
+
{:name => :repository_user, :type => :varchar},
|
46
52
|
{:name => :github_id, :type => :int, :renames => [:pull_request_id]},
|
53
|
+
{:name => :number, :type => :int},
|
47
54
|
{:name => :user_id, :type => :int},
|
55
|
+
{:name => :date, :type => :datetime},
|
56
|
+
{:name => :title, :type => :varchar},
|
48
57
|
{:name => :text, :type => :text},
|
49
58
|
{:name => :html, :type => :text},
|
50
59
|
{:name => :time, :type => :int}
|
51
60
|
],
|
52
61
|
:indexes => [
|
62
|
+
:repository_name,
|
63
|
+
:repository_user,
|
53
64
|
:github_id,
|
54
|
-
:user_id
|
65
|
+
:user_id,
|
66
|
+
:number
|
55
67
|
]
|
56
68
|
},
|
57
69
|
:PullRequestOrganizationLink => {
|
data/lib/github_org_reports.rb
CHANGED
@@ -11,6 +11,18 @@ class GithubOrgReports
|
|
11
11
|
return GithubOrgReports.const_get(name)
|
12
12
|
end
|
13
13
|
|
14
|
+
def self.secs_to_time(secs)
|
15
|
+
return "0:00" if secs <= 0
|
16
|
+
|
17
|
+
hours = (secs / 3600).floor
|
18
|
+
secs -= hours * 3600
|
19
|
+
|
20
|
+
mins = (secs / 60).floor
|
21
|
+
secs -= mins * 60
|
22
|
+
|
23
|
+
return "#{hours}:#{sprintf("%02d", mins)}"
|
24
|
+
end
|
25
|
+
|
14
26
|
def initialize(args = {})
|
15
27
|
@args = args
|
16
28
|
@repos = []
|
@@ -34,49 +46,93 @@ class GithubOrgReports
|
|
34
46
|
@repos << repo
|
35
47
|
end
|
36
48
|
|
37
|
-
def scan_hash(str)
|
49
|
+
def self.scan_hash(str)
|
38
50
|
str.to_s.scan(/!(\{(.+?)\})!/) do |match|
|
51
|
+
json_str = match[0]
|
52
|
+
|
53
|
+
|
54
|
+
#Fix missing quotes in 'time' and 'orgs' to make it easier to write.
|
55
|
+
json_str.gsub!(/time:\s*([\d+:]+)/, "\"time\": \"\\1\"")
|
56
|
+
|
57
|
+
if orgs_match = json_str.match(/orgs:\s*\[(.+?)\]/)
|
58
|
+
orgs_str = orgs_match[1]
|
59
|
+
orgs_str.gsub!(/\s*(^|\s*,\s*)([A-z_\d]+)/, "\\1\"\\2\"")
|
60
|
+
json_str.gsub!(orgs_match[0], "\"orgs\": [#{orgs_str}]")
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
#Parse the JSON and yield it.
|
39
65
|
begin
|
40
|
-
yield JSON.parse(
|
66
|
+
yield JSON.parse(json_str)
|
41
67
|
rescue JSON::ParserError => e
|
42
68
|
$stderr.puts e.inspect
|
43
|
-
|
69
|
+
#$stderr.puts e.backtrace
|
44
70
|
end
|
45
71
|
end
|
46
72
|
end
|
47
73
|
|
48
74
|
def scan
|
49
75
|
@repos.each do |repo|
|
50
|
-
|
51
|
-
|
52
|
-
gh_args
|
76
|
+
@cur_repo = repo
|
77
|
+
|
78
|
+
gh_args = {
|
79
|
+
:user => repo.user,
|
80
|
+
:repo => repo.name
|
81
|
+
}
|
82
|
+
gh_args[:login] = repo.args[:login] unless repo.args[:login].to_s.strip.empty?
|
83
|
+
gh_args[:password] = repo.args[:password] unless repo.args[:password].to_s.strip.empty?
|
53
84
|
|
54
85
|
gh = ::Github.new(gh_args)
|
55
86
|
|
56
|
-
commits = gh.repos.commits.all(
|
87
|
+
commits = gh.repos.commits.all(gh_args)
|
57
88
|
commits.each do |commit_data|
|
58
89
|
commit = init_commit_from_data(commit_data)
|
59
90
|
end
|
60
91
|
|
61
|
-
prs =
|
92
|
+
prs = []
|
93
|
+
gh.pull_requests.list(gh_args.merge(:state => "closed")).each do |pr|
|
94
|
+
prs << pr
|
95
|
+
end
|
96
|
+
|
97
|
+
gh.pull_requests.list(gh_args.merge(:state => "open")).each do |pr|
|
98
|
+
prs << pr
|
99
|
+
end
|
100
|
+
|
62
101
|
prs.each do |pr_data|
|
63
102
|
text = pr_data.body_text
|
64
103
|
|
104
|
+
name = pr_data.user.login
|
105
|
+
raise "Invalid name: '#{name}' (#{pr_data.to_hash})." if !name.is_a?(String)
|
65
106
|
user = @ob.get_or_add(:User, {
|
66
|
-
:name =>
|
107
|
+
:name => name
|
67
108
|
})
|
68
109
|
|
110
|
+
|
111
|
+
#puts "PullRequest: #{pr_data.to_hash}"
|
112
|
+
github_id = pr_data.id.to_i
|
113
|
+
raise "Invalid github-ID: '#{github_id}'." if github_id <= 0
|
114
|
+
|
115
|
+
number = pr_data.number.to_i
|
116
|
+
raise "Invalid number: '#{number}'." if number <= 0
|
117
|
+
|
69
118
|
pr = @ob.get_or_add(:PullRequest, {
|
70
|
-
:
|
119
|
+
:repository_user => @cur_repo.user,
|
120
|
+
:repository_name => @cur_repo.name,
|
121
|
+
:github_id => github_id,
|
122
|
+
:number => number
|
71
123
|
})
|
72
124
|
|
125
|
+
#puts "PullRequest: #{pr_data.to_hash}"
|
126
|
+
|
73
127
|
pr[:user_id] = user.id
|
128
|
+
pr[:title] = pr_data.title
|
74
129
|
pr[:text] = pr_data.body_text
|
75
130
|
pr[:html] = pr_data.body_html
|
131
|
+
pr[:date] = Time.parse(pr_data.created_at)
|
76
132
|
|
77
133
|
pr.scan
|
78
134
|
|
79
|
-
commits = gh.pull_requests.commits(
|
135
|
+
commits = gh.pull_requests.commits(gh_args.merge(:number => pr_data.number))
|
80
136
|
commits.each do |commit_data|
|
81
137
|
commit = init_commit_from_data(commit_data)
|
82
138
|
commit[:pull_request_id] = pr.id
|
@@ -88,34 +144,31 @@ class GithubOrgReports
|
|
88
144
|
def scan_for_time_and_orgs(str)
|
89
145
|
res = {:secs => 0, :orgs => [], :orgs_time => {}}
|
90
146
|
|
91
|
-
|
147
|
+
GithubOrgReports.scan_hash(str) do |hash|
|
92
148
|
#Parse time.
|
93
149
|
if hash["time"] and match_time = hash["time"].to_s.match(/^(\d{1,2}):(\d{1,2})$/)
|
94
150
|
secs = 0
|
95
151
|
secs += match_time[1].to_i * 3600
|
96
152
|
secs += match_time[2].to_i * 60
|
97
153
|
|
98
|
-
res[:secs] += secs
|
99
|
-
|
100
154
|
#Parse organizations.
|
101
155
|
if orgs = hash["orgs"]
|
102
|
-
orgs = [orgs] if !orgs.is_a?(
|
156
|
+
orgs = [orgs] if !orgs.is_a?(Array)
|
103
157
|
orgs.each do |org_name_short|
|
104
158
|
org_name_short_dc = org_name_short.to_s.downcase
|
105
159
|
next if org_name_short_dc.strip.empty?
|
106
160
|
|
107
|
-
|
161
|
+
raise "Invalid short-name: '#{org_name_short_dc}'." unless org_name_short_dc.match(/^[A-z\d+_]+$/)
|
108
162
|
|
109
|
-
|
110
|
-
:organization_id => org.id,
|
111
|
-
:pull_request_id => self.id
|
112
|
-
})
|
163
|
+
org = self.ob.get_or_add(:Organization, {:name_short => org_name_short_dc})
|
113
164
|
|
114
165
|
res[:orgs] << org unless res[:orgs].include?(org)
|
115
166
|
|
116
|
-
res[:orgs_time][org.id] = {:secs => 0} unless res[:
|
117
|
-
res[:orgs_time][org.id][:secs] +=
|
167
|
+
res[:orgs_time][org.id] = {:secs => 0} unless res[:orgs_time].key?(org.id)
|
168
|
+
res[:orgs_time][org.id][:secs] += secs
|
118
169
|
end
|
170
|
+
else
|
171
|
+
res[:secs] += secs
|
119
172
|
end
|
120
173
|
end
|
121
174
|
end
|
@@ -126,11 +179,25 @@ class GithubOrgReports
|
|
126
179
|
private
|
127
180
|
|
128
181
|
def init_commit_from_data(commit_data)
|
182
|
+
sha = commit_data.sha
|
183
|
+
raise "Invalid SHA: '#{sha}' (#{commit_data.to_hash})." if sha.to_s.strip.empty?
|
184
|
+
|
129
185
|
commit = @ob.get_or_add(:Commit, {
|
130
|
-
:
|
186
|
+
:repository_user => @cur_repo.user,
|
187
|
+
:repository_name => @cur_repo.name,
|
188
|
+
:sha => sha
|
131
189
|
})
|
132
|
-
commit[:
|
133
|
-
|
190
|
+
raise "Commit didnt get added right '#{commit[:sha]}', '#{sha}'." if sha != commit[:sha]
|
191
|
+
|
192
|
+
text = commit_data.commit.message
|
193
|
+
raise "Invalid text: '#{text}' (#{commit_data.to_hash})." if !text.is_a?(String)
|
194
|
+
commit[:text] = text
|
195
|
+
|
196
|
+
|
197
|
+
date = Time.parse(commit_data.commit.committer.date)
|
198
|
+
raise "Invalid date: '#{date}' (#{commit_data.commit.to_hash})" if !date
|
199
|
+
|
200
|
+
commit[:date] = date
|
134
201
|
|
135
202
|
if commit_data.author
|
136
203
|
user = @ob.get_or_add(:User, {
|
data/models/commit.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
class GithubOrgReports::Models::Commit < Baza::Model
|
2
2
|
has_one :User
|
3
3
|
has_one :PullRequest
|
4
|
+
has_many [
|
5
|
+
[:CommitOrganizationLink, :commit_id]
|
6
|
+
]
|
4
7
|
|
5
8
|
def scan
|
6
9
|
hash = ob.data[:github_org_reports].scan_for_time_and_orgs(self[:text])
|
@@ -10,9 +13,10 @@ class GithubOrgReports::Models::Commit < Baza::Model
|
|
10
13
|
hash[:orgs].each do |org|
|
11
14
|
link = self.ob.get_or_add(:CommitOrganizationLink, {
|
12
15
|
:organization_id => org.id,
|
13
|
-
:
|
14
|
-
:time => hash[:orgs_time][org.id]
|
16
|
+
:commit_id => self.id
|
15
17
|
})
|
18
|
+
|
19
|
+
link[:time] = hash[:orgs_time][org.id][:secs]
|
16
20
|
end
|
17
21
|
|
18
22
|
|
data/models/organization.rb
CHANGED
data/models/pull_request.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
class GithubOrgReports::Models::PullRequest < Baza::Model
|
2
|
-
has_many [
|
2
|
+
has_many [
|
3
|
+
[:PullRequestOrganizationLink, :pull_request_id],
|
4
|
+
[:Commit, :pull_request_id]
|
5
|
+
]
|
3
6
|
|
4
7
|
def scan
|
5
8
|
hash = ob.data[:github_org_reports].scan_for_time_and_orgs(self[:text])
|
@@ -10,8 +13,9 @@ class GithubOrgReports::Models::PullRequest < Baza::Model
|
|
10
13
|
link = self.ob.get_or_add(:PullRequestOrganizationLink, {
|
11
14
|
:organization_id => org.id,
|
12
15
|
:pull_request_id => self.id,
|
13
|
-
:time => hash[:orgs_time][:secs]
|
14
16
|
})
|
17
|
+
|
18
|
+
link[:time] = hash[:orgs_time][org.id][:secs]
|
15
19
|
end
|
16
20
|
|
17
21
|
|
@@ -22,9 +26,46 @@ class GithubOrgReports::Models::PullRequest < Baza::Model
|
|
22
26
|
return nil
|
23
27
|
end
|
24
28
|
|
25
|
-
def
|
26
|
-
|
29
|
+
def total_time_for_org(args)
|
30
|
+
org = args[:org]
|
31
|
+
raise "No ':org' was given." if !org
|
27
32
|
|
28
33
|
|
34
|
+
#Collect shared time.
|
35
|
+
secs = self[:time].to_i
|
36
|
+
|
37
|
+
|
38
|
+
#Collect time for the pull-request-organization-links.
|
39
|
+
self.pull_request_organization_links(:organization_id => org.id) do |prol|
|
40
|
+
secs += prol[:time].to_i
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
#Collect time from commits.
|
45
|
+
self.commits do |commit|
|
46
|
+
secs += commit[:time].to_i
|
47
|
+
|
48
|
+
commit.commit_organization_links(:organization_id => org.id) do |col|
|
49
|
+
secs += col[:time].to_i
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
return secs
|
55
|
+
end
|
56
|
+
|
57
|
+
def title(args = nil)
|
58
|
+
title_str = self[:title].to_s.strip
|
59
|
+
title_str = self[:text].to_s.lines.first.to_s.strip if title_str.empty?
|
60
|
+
mlength = (args && args[:maxlength]) ? args[:maxlength] : 15
|
61
|
+
|
62
|
+
if title_str.length > mlength
|
63
|
+
title_str = title_str.slice(0, mlength).strip
|
64
|
+
title_str << "..."
|
65
|
+
end
|
66
|
+
|
67
|
+
title_str = "[no title]" if title_str.empty?
|
68
|
+
|
69
|
+
return title_str
|
29
70
|
end
|
30
71
|
end
|
@@ -22,4 +22,35 @@ describe "GithubOrgReports" do
|
|
22
22
|
raise e
|
23
23
|
end
|
24
24
|
end
|
25
|
+
|
26
|
+
it "should be able to parse special json strings" do
|
27
|
+
str = "!{time: 00:30, orgs: [knjit, gfish]}!\n"
|
28
|
+
str << "!{time: 00:15, orgs: [knjit]}!"
|
29
|
+
|
30
|
+
db_path = "#{Dir.tmpdir}/github_org_reports.sqlite3"
|
31
|
+
db = Baza::Db.new(:type => :sqlite3, :path => db_path, :index_append_table_name => true)
|
32
|
+
|
33
|
+
login_info = JSON.parse(File.read("#{File.dirname(__FILE__)}/spec_info.txt").to_s.strip)
|
34
|
+
|
35
|
+
begin
|
36
|
+
gor = GithubOrgReports.new(:db => db)
|
37
|
+
|
38
|
+
res = gor.scan_for_time_and_orgs(str)
|
39
|
+
|
40
|
+
org_knjit = gor.ob.get_by(:Organization, :name_short => "knjit")
|
41
|
+
org_gfish = gor.ob.get_by(:Organization, :name_short => "gfish")
|
42
|
+
|
43
|
+
res[:orgs_time][org_knjit.id][:secs].should eql(2700)
|
44
|
+
res[:orgs_time][org_gfish.id][:secs].should eql(1800)
|
45
|
+
rescue => e
|
46
|
+
puts e.inspect
|
47
|
+
puts e.backtrace
|
48
|
+
raise e
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should be able to convert seconds to time strings" do
|
53
|
+
GithubOrgReports.secs_to_time(1800).should eql("0:30")
|
54
|
+
GithubOrgReports.secs_to_time(2700).should eql("0:45")
|
55
|
+
end
|
25
56
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: github_org_reports
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- kaspernj
|
@@ -17,7 +17,7 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ! '>='
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: 0.0.10
|
21
21
|
name: baza
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 0.0.10
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
version_requirements: !ruby/object:Gem::Requirement
|
32
32
|
none: false
|
@@ -171,6 +171,7 @@ files:
|
|
171
171
|
- README.rdoc
|
172
172
|
- Rakefile
|
173
173
|
- VERSION
|
174
|
+
- github_org_reports.gemspec
|
174
175
|
- include/github_org_reports_dbschema.rb
|
175
176
|
- include/github_org_reports_models.rb
|
176
177
|
- include/github_org_reports_repo.rb
|
@@ -197,7 +198,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
197
198
|
- !ruby/object:Gem::Version
|
198
199
|
segments:
|
199
200
|
- 0
|
200
|
-
hash:
|
201
|
+
hash: 241850806835355267
|
201
202
|
version: '0'
|
202
203
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
203
204
|
none: false
|