fire_watch 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fire_watch-0.1.0.gem +0 -0
- data/lib/fire_watch/runner.rb +97 -86
- data/lib/fire_watch/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fc4bf1112190b8cf13ac8fd1f19f02d7cfdba58
|
4
|
+
data.tar.gz: d59a610ffec4d26386657d512525b658bb81b354
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75bfe76cf818d83c3de36df1398bdd828ccd4429573c1017ba6a4701a9a1ee5f4190fb0ea97171706e440fa36fba7c58056a69b1b25efd9a59e5ddaf3135670c
|
7
|
+
data.tar.gz: ff9b43e8f72f39c407f8ff7c75abe6cf336997a989cd9c87870102a5afc45c91a5d7bfc1db179a22ada41a85834111aaac392d5fec0262d330f77391eeb24aef
|
Binary file
|
data/lib/fire_watch/runner.rb
CHANGED
@@ -9,8 +9,8 @@ module FireWatch
|
|
9
9
|
|
10
10
|
cli = HighLine.new
|
11
11
|
# Github Client
|
12
|
-
github_login = cli.ask('Github Login: ')
|
13
|
-
github_password = cli.ask('Github Password: ') { |q| q.echo = false }
|
12
|
+
github_login = "joew@samjoe.com"# cli.ask('Github Login: ')
|
13
|
+
github_password = "VPcYdAk9PFx3^uPn" # cli.ask('Github Password: ') { |q| q.echo = false }
|
14
14
|
@github_client = Github.new(auto_pagination: true) do |config|
|
15
15
|
config.basic_auth = "#{github_login}:#{github_password}"
|
16
16
|
if cli.agree("Do you use Two-Factor authentication (non-sms)?")
|
@@ -30,25 +30,28 @@ module FireWatch
|
|
30
30
|
end
|
31
31
|
|
32
32
|
milestones = @github_client.issues.milestones.list(user: 'wildland',repo: selected_repo.name, state: 'all').sort_by{|m| m.title}
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
menu.
|
38
|
-
|
33
|
+
selected_milestones = []
|
34
|
+
done = false
|
35
|
+
loop do
|
36
|
+
cli.choose do |menu|
|
37
|
+
menu.prompt = "Add/Remove Milestones (#{selected_milestones.map{|p| p.title}.join(', ')}): "
|
38
|
+
milestones.each do |m|
|
39
|
+
menu.choice(m.title) do
|
40
|
+
if selected_milestones.include? m
|
41
|
+
selected_milestones.delete(m)
|
42
|
+
else
|
43
|
+
selected_milestones.push(m)
|
44
|
+
end
|
45
|
+
end
|
39
46
|
end
|
47
|
+
menu.choice("Done Adding Milestones") { done = true }
|
40
48
|
end
|
41
|
-
|
42
|
-
|
43
|
-
issues, pull_request_issues = @github_client.issues.list(user: 'wildland', repo: selected_repo.name, milestone: selected_milestone.number, state: 'all').partition{|i| i.pull_request == nil}
|
44
|
-
|
45
|
-
pull_requests = pull_request_issues.map do |i|
|
46
|
-
@github_client.pull_requests.get(user: 'wildland', repo: selected_repo.name, number: i.number).body
|
49
|
+
break if done
|
47
50
|
end
|
48
51
|
|
49
52
|
# Harvest Client
|
50
|
-
harvest_username = cli.ask('Harvest Username: ')
|
51
|
-
harvest_password = cli.ask('Harvest Password: ') { |q| q.echo = false }
|
53
|
+
harvest_username = "joe@wild.land" #cli.ask('Harvest Username: ')
|
54
|
+
harvest_password = "]ztJyVszDnI{96uB" #cli.ask('Harvest Password: ') { |q| q.echo = false }
|
52
55
|
@harvest_client = Harvest.client(username: harvest_username, password: harvest_password, subdomain: 'wildland')
|
53
56
|
|
54
57
|
projects = @harvest_client.projects.all.sort_by{|p| p.name}
|
@@ -105,89 +108,97 @@ module FireWatch
|
|
105
108
|
"Labels"
|
106
109
|
]
|
107
110
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
else
|
114
|
-
match_data["issue_number"].eql? issue.number.to_s
|
115
|
-
end
|
111
|
+
selected_milestones.each do |selected_milestone|
|
112
|
+
issues, pull_request_issues = @github_client.issues.list(user: 'wildland', repo: selected_repo.name, milestone: selected_milestone.number, state: 'all').partition{|i| i.pull_request == nil}
|
113
|
+
|
114
|
+
pull_requests = pull_request_issues.map do |i|
|
115
|
+
@github_client.pull_requests.get(user: 'wildland', repo: selected_repo.name, number: i.number).body
|
116
116
|
end
|
117
117
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
""
|
125
|
-
|
126
|
-
issue.labels.nil? || issue.labels.find{|l| l.name.include?"size:"}.nil? ? "" : issue.labels.find{|l| l.name.include?"size:"}.name,
|
127
|
-
"",
|
128
|
-
issue.state,
|
129
|
-
"",
|
130
|
-
issue.labels.nil? ? "" : issue.labels.compact.map{|l| l.name}.join(', ')
|
131
|
-
]
|
132
|
-
else
|
133
|
-
relevant_time_entries.chunk{|i| i.user_id }.each do |user_id, user_time_entries|
|
134
|
-
user = harvest_users.find{|u| u.id == user_id}
|
135
|
-
csv << [
|
136
|
-
selected_repo.name,
|
137
|
-
selected_milestone.title,
|
138
|
-
issue.number,
|
139
|
-
issue.title,
|
140
|
-
projects.select{|p| user_time_entries.map(&:project_id).uniq.include? p.id}.map(&:name).join(', '),
|
141
|
-
"#{user.first_name} #{user.last_name}", # Who
|
142
|
-
issue.labels.nil? ? "" : issue.labels.find{|l| l.name.include?"size:"}.name,
|
143
|
-
user_time_entries.inject(0){|sum, e| sum + e.hours },
|
144
|
-
issue.state,
|
145
|
-
"",
|
146
|
-
issue.labels.nil? ? "" : issue.labels.map{|l| l.name}.join(', ')
|
147
|
-
]
|
118
|
+
issues.each do |issue|
|
119
|
+
relevant_time_entries, time_entries = time_entries.partition do |entry|
|
120
|
+
match_data = /.?#(?<issue_number>\d+)/.match(entry.notes)
|
121
|
+
if match_data.nil?
|
122
|
+
false
|
123
|
+
else
|
124
|
+
match_data["issue_number"].eql? issue.number.to_s
|
125
|
+
end
|
148
126
|
end
|
149
|
-
end
|
150
|
-
end
|
151
127
|
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
128
|
+
if relevant_time_entries.empty?
|
129
|
+
csv << [
|
130
|
+
selected_repo.name,
|
131
|
+
selected_milestone.title,
|
132
|
+
issue.number,
|
133
|
+
issue.title,
|
134
|
+
"",
|
135
|
+
"",
|
136
|
+
issue.labels.nil? || issue.labels.find{|l| l.name.include?"size:"}.nil? ? "" : issue.labels.find{|l| l.name.include?"size:"}.name,
|
137
|
+
"",
|
138
|
+
issue.state,
|
139
|
+
"",
|
140
|
+
issue.labels.nil? ? "" : issue.labels.compact.map{|l| l.name}.join(', ')
|
141
|
+
]
|
142
|
+
else
|
143
|
+
relevant_time_entries.chunk{|i| i.user_id }.each do |user_id, user_time_entries|
|
144
|
+
user = harvest_users.find{|u| u.id == user_id}
|
145
|
+
csv << [
|
146
|
+
selected_repo.name,
|
147
|
+
selected_milestone.title,
|
148
|
+
issue.number,
|
149
|
+
issue.title,
|
150
|
+
projects.select{|p| user_time_entries.map(&:project_id).uniq.include? p.id}.map(&:name).join(', '),
|
151
|
+
"#{user.first_name} #{user.last_name}", # Who
|
152
|
+
issue.labels.nil? ? "" : issue.labels.find{|l| l.name.include?"size:"}.name,
|
153
|
+
user_time_entries.inject(0){|sum, e| sum + e.hours },
|
154
|
+
issue.state,
|
155
|
+
"",
|
156
|
+
issue.labels.nil? ? "" : issue.labels.map{|l| l.name}.join(', ')
|
157
|
+
]
|
158
|
+
end
|
159
159
|
end
|
160
160
|
end
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
pr.labels.nil? ? "" : pr.labels.map{|l| l.name}.join(', ')
|
174
|
-
]
|
175
|
-
else
|
176
|
-
relevant_time_entries.chunk{|i| i.user_id }.each do |user_id, user_time_entries|
|
177
|
-
user = harvest_users.find{|u| u.id == user_id}
|
178
|
-
csv << [
|
161
|
+
|
162
|
+
pull_requests.each do |pr|
|
163
|
+
relevant_time_entries, time_entries = time_entries.partition do |entry|
|
164
|
+
match_data = /.?#(?<issue_number>\d+)/.match(entry.notes)
|
165
|
+
if match_data.nil?
|
166
|
+
false
|
167
|
+
else
|
168
|
+
match_data["issue_number"].eql? pr.number.to_s
|
169
|
+
end
|
170
|
+
end
|
171
|
+
if relevant_time_entries.empty?
|
172
|
+
csv << [
|
179
173
|
selected_repo.name,
|
180
174
|
selected_milestone.title,
|
181
175
|
pr.number,
|
182
176
|
pr.title,
|
183
|
-
|
184
|
-
"
|
185
|
-
pr.labels.nil? ? "" :
|
186
|
-
|
177
|
+
"",
|
178
|
+
"",
|
179
|
+
pr.labels.nil? ? "" : pr.labels.find{|l| l.name.include?"size:"}.name,
|
180
|
+
"",
|
187
181
|
pr.state,
|
188
182
|
pr.merged ? "Y" : "N",
|
189
|
-
pr.labels.nil? ? "" :
|
183
|
+
pr.labels.nil? ? "" : pr.labels.map{|l| l.name}.join(', ')
|
190
184
|
]
|
185
|
+
else
|
186
|
+
relevant_time_entries.chunk{|i| i.user_id }.each do |user_id, user_time_entries|
|
187
|
+
user = harvest_users.find{|u| u.id == user_id}
|
188
|
+
csv << [
|
189
|
+
selected_repo.name,
|
190
|
+
selected_milestone.title,
|
191
|
+
pr.number,
|
192
|
+
pr.title,
|
193
|
+
projects.select{|p| user_time_entries.map(&:project_id).uniq.include? p.id}.map(&:name).join(', '),
|
194
|
+
"#{user.first_name} #{user.last_name}", # Who
|
195
|
+
pr.labels.nil? ? "" : issue.labels.find{|l| l.name.include?"size:"}.name,
|
196
|
+
user_time_entries.inject(0){|sum, e| sum + e.hours },
|
197
|
+
pr.state,
|
198
|
+
pr.merged ? "Y" : "N",
|
199
|
+
pr.labels.nil? ? "" : issue.labels.map{|l| l.name}.join(', ')
|
200
|
+
]
|
201
|
+
end
|
191
202
|
end
|
192
203
|
end
|
193
204
|
end
|
data/lib/fire_watch/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fire_watch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Weakley
|
@@ -111,6 +111,7 @@ files:
|
|
111
111
|
- bin/console
|
112
112
|
- bin/setup
|
113
113
|
- exe/fire_watch
|
114
|
+
- fire_watch-0.1.0.gem
|
114
115
|
- fire_watch.gemspec
|
115
116
|
- lib/fire_watch.rb
|
116
117
|
- lib/fire_watch/runner.rb
|