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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 48916752484ddabddd8c8fe0444173b0746fb3b0
4
- data.tar.gz: 839961ba315d486a03d16e184f4ca66b94ee21a2
3
+ metadata.gz: 1fc4bf1112190b8cf13ac8fd1f19f02d7cfdba58
4
+ data.tar.gz: d59a610ffec4d26386657d512525b658bb81b354
5
5
  SHA512:
6
- metadata.gz: 088196f7b5f0290b75521ee6678d3c5d02f2acf8072af0f58aed7963e00c87581fd59f1f9227872c4d5a4c9234be18dd36732b306dbcb5775fbbe95baf9b850b
7
- data.tar.gz: ead16f0d9c9ed7c4e6bede5dbc05938ba715a60da7ed3c4cec0b06caf59ddf3ce4803ec61f9c7257d72e3465743aad09e786d59dcdfdf8c8edf18bf23e3d805f
6
+ metadata.gz: 75bfe76cf818d83c3de36df1398bdd828ccd4429573c1017ba6a4701a9a1ee5f4190fb0ea97171706e440fa36fba7c58056a69b1b25efd9a59e5ddaf3135670c
7
+ data.tar.gz: ff9b43e8f72f39c407f8ff7c75abe6cf336997a989cd9c87870102a5afc45c91a5d7bfc1db179a22ada41a85834111aaac392d5fec0262d330f77391eeb24aef
Binary file
@@ -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
- selected_milestone = nil
34
- cli.choose do |menu|
35
- menu.prompt = "Select Milestone:"
36
- milestones.each do |m|
37
- menu.choice(m.title) do
38
- selected_milestone = m
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
- end
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
- issues.each do |issue|
109
- relevant_time_entries, time_entries = time_entries.partition do |entry|
110
- match_data = /.?#(?<issue_number>\d+)/.match(entry.notes)
111
- if match_data.nil?
112
- false
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
- if relevant_time_entries.empty?
119
- csv << [
120
- selected_repo.name,
121
- selected_milestone.title,
122
- issue.number,
123
- issue.title,
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
- pull_requests.each do |pr|
153
- relevant_time_entries, time_entries = time_entries.partition do |entry|
154
- match_data = /.?#(?<issue_number>\d+)/.match(entry.notes)
155
- if match_data.nil?
156
- false
157
- else
158
- match_data["issue_number"].eql? pr.number.to_s
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
- if relevant_time_entries.empty?
162
- csv << [
163
- selected_repo.name,
164
- selected_milestone.title,
165
- pr.number,
166
- pr.title,
167
- "",
168
- "",
169
- pr.labels.nil? ? "" : pr.labels.find{|l| l.name.include?"size:"}.name,
170
- "",
171
- pr.state,
172
- pr.merged ? "Y" : "N",
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
- projects.select{|p| user_time_entries.map(&:project_id).uniq.include? p.id}.map(&:name).join(', '),
184
- "#{user.first_name} #{user.last_name}", # Who
185
- pr.labels.nil? ? "" : issue.labels.find{|l| l.name.include?"size:"}.name,
186
- user_time_entries.inject(0){|sum, e| sum + e.hours },
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? ? "" : issue.labels.map{|l| l.name}.join(', ')
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
@@ -1,3 +1,3 @@
1
1
  module FireWatch
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
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.1.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