michael 0.1.1 → 0.2.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -1
  3. data/Gemfile.lock +6 -71
  4. data/exe/michael +2 -2
  5. data/lib/michael.rb +1 -0
  6. data/lib/michael/cli.rb +15 -1
  7. data/lib/michael/commands/auth.rb +11 -21
  8. data/lib/michael/commands/repos.rb +39 -2
  9. data/lib/michael/commands/repos/edit.rb +13 -9
  10. data/lib/michael/commands/repos/pull_requests.rb +38 -97
  11. data/lib/michael/constants.rb +7 -0
  12. data/lib/michael/models/pull_request.rb +139 -0
  13. data/lib/michael/models/repository.rb +45 -0
  14. data/lib/michael/models/review.rb +57 -0
  15. data/lib/michael/models/status.rb +43 -0
  16. data/lib/michael/models/user.rb +18 -0
  17. data/lib/michael/services/configuration.rb +44 -0
  18. data/lib/michael/{models/github/octokit_initializer.rb → services/github/initializer.rb} +9 -7
  19. data/lib/michael/services/github/pull_requests.rb +46 -0
  20. data/lib/michael/services/github/token.rb +41 -0
  21. data/lib/michael/services/github/users.rb +16 -0
  22. data/lib/michael/services/repositories.rb +34 -0
  23. data/lib/michael/version.rb +1 -1
  24. data/michael.gemspec +2 -18
  25. metadata +19 -245
  26. data/lib/michael/command.rb +0 -131
  27. data/lib/michael/models/configuration.rb +0 -69
  28. data/lib/michael/models/github/pr_wrapper.rb +0 -84
  29. data/lib/michael/models/github/pull_request.rb +0 -51
  30. data/lib/michael/models/github/review.rb +0 -41
  31. data/lib/michael/models/github/reviewer.rb +0 -17
  32. data/lib/michael/models/github/status.rb +0 -25
  33. data/lib/michael/models/github/team.rb +0 -17
  34. data/lib/michael/models/github/token_validator.rb +0 -30
  35. data/lib/michael/models/github/user.rb +0 -21
  36. data/lib/michael/models/guard.rb +0 -20
  37. data/lib/michael/models/pull_request_formatter.rb +0 -116
  38. data/lib/michael/models/repository_formatter.rb +0 -26
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'initializer'
4
+ require 'michael/models/user'
5
+
6
+ module Michael
7
+ module Services
8
+ module Github
9
+ class Users < Initializer
10
+ def user
11
+ Michael::Models::User.new(octokit.user)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'parallel'
4
+
5
+ require_relative '../models/repository'
6
+
7
+ module Michael
8
+ module Services
9
+ class Repositories
10
+ def initialize(prs, threads = 5)
11
+ raise Fatal, 'uninitialized prs' if prs.nil?
12
+
13
+ @prs = prs
14
+ @threads = threads
15
+ end
16
+
17
+ def pull_requests(org_repos_list, queue = nil, params = {})
18
+ repos = Parallel.map(org_repos_list, in_threads: threads) do |org_repo|
19
+ queue << org_repo unless queue.nil?
20
+ list = prs.search(org_repo, params)
21
+ Michael::Models::Repository.new(org_repo, prs: list)
22
+ end
23
+
24
+ queue&.close
25
+
26
+ repos
27
+ end
28
+
29
+ private
30
+
31
+ attr_reader :prs, :threads
32
+ end
33
+ end
34
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Michael
4
- VERSION = '0.1.1'
4
+ VERSION = '0.2.0'
5
5
  end
data/michael.gemspec CHANGED
@@ -35,32 +35,16 @@ Gem::Specification.new do |spec|
35
35
  spec.add_dependency 'pastel', '~> 0.7.2'
36
36
  spec.add_dependency 'ruby-duration', '~> 3.2.3'
37
37
  spec.add_dependency 'thor', '~> 0.20.0'
38
- spec.add_dependency 'tty-box', '~> 0.4.1'
39
- spec.add_dependency 'tty-color', '~> 0.5'
40
- spec.add_dependency 'tty-command', '~> 0.9.0'
41
38
  spec.add_dependency 'tty-config', '~> 0.3.2'
42
- spec.add_dependency 'tty-cursor', '~> 0.7'
43
39
  spec.add_dependency 'tty-editor', '~> 0.5'
44
- spec.add_dependency 'tty-file', '~> 0.8.0'
45
- spec.add_dependency 'tty-font', '~> 0.4.0'
46
40
  spec.add_dependency 'tty-logger', '~> 0.2.0'
47
- spec.add_dependency 'tty-markdown', '~> 0.6.0'
48
- spec.add_dependency 'tty-pager', '~> 0.12'
49
- spec.add_dependency 'tty-pie', '~> 0.3.0'
50
- spec.add_dependency 'tty-platform', '~> 0.2'
51
- spec.add_dependency 'tty-progressbar', '~> 0.17'
52
41
  spec.add_dependency 'tty-prompt', '~> 0.19'
53
- spec.add_dependency 'tty-screen', '~> 0.7'
54
- spec.add_dependency 'tty-spinner', '~> 0.9'
55
- spec.add_dependency 'tty-table', '~> 0.11.0'
56
- spec.add_dependency 'tty-tree', '~> 0.3'
57
- spec.add_dependency 'tty-which', '~> 0.4'
58
42
 
59
43
  spec.add_development_dependency 'bundler', '~> 1.17'
60
- spec.add_development_dependency 'pry'
44
+ spec.add_development_dependency 'pry', '~> 0.12.2'
61
45
  spec.add_development_dependency 'rake', '~> 10.0'
62
46
  spec.add_development_dependency 'rspec', '~> 3.0'
63
47
  spec.add_development_dependency 'simplecov', '~> 0.17.0'
64
48
 
65
- spec.required_ruby_version = '>= 2.4.1'
49
+ spec.required_ruby_version = '>= 2.5.0'
66
50
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: michael
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vitaliy Kudryk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-25 00:00:00.000000000 Z
11
+ date: 2019-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit
@@ -80,48 +80,6 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.20.0
83
- - !ruby/object:Gem::Dependency
84
- name: tty-box
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 0.4.1
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 0.4.1
97
- - !ruby/object:Gem::Dependency
98
- name: tty-color
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '0.5'
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '0.5'
111
- - !ruby/object:Gem::Dependency
112
- name: tty-command
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: 0.9.0
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: 0.9.0
125
83
  - !ruby/object:Gem::Dependency
126
84
  name: tty-config
127
85
  requirement: !ruby/object:Gem::Requirement
@@ -136,20 +94,6 @@ dependencies:
136
94
  - - "~>"
137
95
  - !ruby/object:Gem::Version
138
96
  version: 0.3.2
139
- - !ruby/object:Gem::Dependency
140
- name: tty-cursor
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '0.7'
146
- type: :runtime
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '0.7'
153
97
  - !ruby/object:Gem::Dependency
154
98
  name: tty-editor
155
99
  requirement: !ruby/object:Gem::Requirement
@@ -164,34 +108,6 @@ dependencies:
164
108
  - - "~>"
165
109
  - !ruby/object:Gem::Version
166
110
  version: '0.5'
167
- - !ruby/object:Gem::Dependency
168
- name: tty-file
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: 0.8.0
174
- type: :runtime
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: 0.8.0
181
- - !ruby/object:Gem::Dependency
182
- name: tty-font
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: 0.4.0
188
- type: :runtime
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: 0.4.0
195
111
  - !ruby/object:Gem::Dependency
196
112
  name: tty-logger
197
113
  requirement: !ruby/object:Gem::Requirement
@@ -206,76 +122,6 @@ dependencies:
206
122
  - - "~>"
207
123
  - !ruby/object:Gem::Version
208
124
  version: 0.2.0
209
- - !ruby/object:Gem::Dependency
210
- name: tty-markdown
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - "~>"
214
- - !ruby/object:Gem::Version
215
- version: 0.6.0
216
- type: :runtime
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - "~>"
221
- - !ruby/object:Gem::Version
222
- version: 0.6.0
223
- - !ruby/object:Gem::Dependency
224
- name: tty-pager
225
- requirement: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - "~>"
228
- - !ruby/object:Gem::Version
229
- version: '0.12'
230
- type: :runtime
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - "~>"
235
- - !ruby/object:Gem::Version
236
- version: '0.12'
237
- - !ruby/object:Gem::Dependency
238
- name: tty-pie
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - "~>"
242
- - !ruby/object:Gem::Version
243
- version: 0.3.0
244
- type: :runtime
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - "~>"
249
- - !ruby/object:Gem::Version
250
- version: 0.3.0
251
- - !ruby/object:Gem::Dependency
252
- name: tty-platform
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - "~>"
256
- - !ruby/object:Gem::Version
257
- version: '0.2'
258
- type: :runtime
259
- prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - "~>"
263
- - !ruby/object:Gem::Version
264
- version: '0.2'
265
- - !ruby/object:Gem::Dependency
266
- name: tty-progressbar
267
- requirement: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - "~>"
270
- - !ruby/object:Gem::Version
271
- version: '0.17'
272
- type: :runtime
273
- prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - "~>"
277
- - !ruby/object:Gem::Version
278
- version: '0.17'
279
125
  - !ruby/object:Gem::Dependency
280
126
  name: tty-prompt
281
127
  requirement: !ruby/object:Gem::Requirement
@@ -290,76 +136,6 @@ dependencies:
290
136
  - - "~>"
291
137
  - !ruby/object:Gem::Version
292
138
  version: '0.19'
293
- - !ruby/object:Gem::Dependency
294
- name: tty-screen
295
- requirement: !ruby/object:Gem::Requirement
296
- requirements:
297
- - - "~>"
298
- - !ruby/object:Gem::Version
299
- version: '0.7'
300
- type: :runtime
301
- prerelease: false
302
- version_requirements: !ruby/object:Gem::Requirement
303
- requirements:
304
- - - "~>"
305
- - !ruby/object:Gem::Version
306
- version: '0.7'
307
- - !ruby/object:Gem::Dependency
308
- name: tty-spinner
309
- requirement: !ruby/object:Gem::Requirement
310
- requirements:
311
- - - "~>"
312
- - !ruby/object:Gem::Version
313
- version: '0.9'
314
- type: :runtime
315
- prerelease: false
316
- version_requirements: !ruby/object:Gem::Requirement
317
- requirements:
318
- - - "~>"
319
- - !ruby/object:Gem::Version
320
- version: '0.9'
321
- - !ruby/object:Gem::Dependency
322
- name: tty-table
323
- requirement: !ruby/object:Gem::Requirement
324
- requirements:
325
- - - "~>"
326
- - !ruby/object:Gem::Version
327
- version: 0.11.0
328
- type: :runtime
329
- prerelease: false
330
- version_requirements: !ruby/object:Gem::Requirement
331
- requirements:
332
- - - "~>"
333
- - !ruby/object:Gem::Version
334
- version: 0.11.0
335
- - !ruby/object:Gem::Dependency
336
- name: tty-tree
337
- requirement: !ruby/object:Gem::Requirement
338
- requirements:
339
- - - "~>"
340
- - !ruby/object:Gem::Version
341
- version: '0.3'
342
- type: :runtime
343
- prerelease: false
344
- version_requirements: !ruby/object:Gem::Requirement
345
- requirements:
346
- - - "~>"
347
- - !ruby/object:Gem::Version
348
- version: '0.3'
349
- - !ruby/object:Gem::Dependency
350
- name: tty-which
351
- requirement: !ruby/object:Gem::Requirement
352
- requirements:
353
- - - "~>"
354
- - !ruby/object:Gem::Version
355
- version: '0.4'
356
- type: :runtime
357
- prerelease: false
358
- version_requirements: !ruby/object:Gem::Requirement
359
- requirements:
360
- - - "~>"
361
- - !ruby/object:Gem::Version
362
- version: '0.4'
363
139
  - !ruby/object:Gem::Dependency
364
140
  name: bundler
365
141
  requirement: !ruby/object:Gem::Requirement
@@ -378,16 +154,16 @@ dependencies:
378
154
  name: pry
379
155
  requirement: !ruby/object:Gem::Requirement
380
156
  requirements:
381
- - - ">="
157
+ - - "~>"
382
158
  - !ruby/object:Gem::Version
383
- version: '0'
159
+ version: 0.12.2
384
160
  type: :development
385
161
  prerelease: false
386
162
  version_requirements: !ruby/object:Gem::Requirement
387
163
  requirements:
388
- - - ">="
164
+ - - "~>"
389
165
  - !ruby/object:Gem::Version
390
- version: '0'
166
+ version: 0.12.2
391
167
  - !ruby/object:Gem::Dependency
392
168
  name: rake
393
169
  requirement: !ruby/object:Gem::Requirement
@@ -450,25 +226,23 @@ files:
450
226
  - exe/michael
451
227
  - lib/michael.rb
452
228
  - lib/michael/cli.rb
453
- - lib/michael/command.rb
454
229
  - lib/michael/commands/.gitkeep
455
230
  - lib/michael/commands/auth.rb
456
231
  - lib/michael/commands/repos.rb
457
232
  - lib/michael/commands/repos/edit.rb
458
233
  - lib/michael/commands/repos/pull_requests.rb
459
- - lib/michael/models/configuration.rb
460
- - lib/michael/models/github/octokit_initializer.rb
461
- - lib/michael/models/github/pr_wrapper.rb
462
- - lib/michael/models/github/pull_request.rb
463
- - lib/michael/models/github/review.rb
464
- - lib/michael/models/github/reviewer.rb
465
- - lib/michael/models/github/status.rb
466
- - lib/michael/models/github/team.rb
467
- - lib/michael/models/github/token_validator.rb
468
- - lib/michael/models/github/user.rb
469
- - lib/michael/models/guard.rb
470
- - lib/michael/models/pull_request_formatter.rb
471
- - lib/michael/models/repository_formatter.rb
234
+ - lib/michael/constants.rb
235
+ - lib/michael/models/pull_request.rb
236
+ - lib/michael/models/repository.rb
237
+ - lib/michael/models/review.rb
238
+ - lib/michael/models/status.rb
239
+ - lib/michael/models/user.rb
240
+ - lib/michael/services/configuration.rb
241
+ - lib/michael/services/github/initializer.rb
242
+ - lib/michael/services/github/pull_requests.rb
243
+ - lib/michael/services/github/token.rb
244
+ - lib/michael/services/github/users.rb
245
+ - lib/michael/services/repositories.rb
472
246
  - lib/michael/version.rb
473
247
  - michael.gemspec
474
248
  homepage: https://github.com/kudrykv/michael
@@ -485,7 +259,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
485
259
  requirements:
486
260
  - - ">="
487
261
  - !ruby/object:Gem::Version
488
- version: 2.4.1
262
+ version: 2.5.0
489
263
  required_rubygems_version: !ruby/object:Gem::Requirement
490
264
  requirements:
491
265
  - - ">="
@@ -1,131 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'forwardable'
4
-
5
- module Michael
6
- class Command
7
- extend Forwardable
8
-
9
- def_delegators :command, :run
10
-
11
- # Execute this command
12
- #
13
- # @api public
14
- def execute(*)
15
- raise(
16
- NotImplementedError,
17
- "#{self.class}##{__method__} must be implemented"
18
- )
19
- end
20
-
21
- # The external commands runner
22
- #
23
- # @see http://www.rubydoc.info/gems/tty-command
24
- #
25
- # @api public
26
- def command(**options)
27
- require 'tty-command'
28
- TTY::Command.new(options)
29
- end
30
-
31
- # The cursor movement
32
- #
33
- # @see http://www.rubydoc.info/gems/tty-cursor
34
- #
35
- # @api public
36
- def cursor
37
- require 'tty-cursor'
38
- TTY::Cursor
39
- end
40
-
41
- # Open a file or text in the user's preferred editor
42
- #
43
- # @see http://www.rubydoc.info/gems/tty-editor
44
- #
45
- # @api public
46
- def editor
47
- require 'tty-editor'
48
- TTY::Editor
49
- end
50
-
51
- # File manipulation utility methods
52
- #
53
- # @see http://www.rubydoc.info/gems/tty-file
54
- #
55
- # @api public
56
- def generator
57
- require 'tty-file'
58
- TTY::File
59
- end
60
-
61
- def spinner(*args)
62
- require 'tty-spinner'
63
- TTY::Spinner.new(*args)
64
- end
65
-
66
- # Terminal output paging
67
- #
68
- # @see http://www.rubydoc.info/gems/tty-pager
69
- #
70
- # @api public
71
- def pager(**options)
72
- require 'tty-pager'
73
- TTY::Pager.new(options)
74
- end
75
-
76
- # Terminal platform and OS properties
77
- #
78
- # @see http://www.rubydoc.info/gems/tty-pager
79
- #
80
- # @api public
81
- def platform
82
- require 'tty-platform'
83
- TTY::Platform.new
84
- end
85
-
86
- # The interactive prompt
87
- #
88
- # @see http://www.rubydoc.info/gems/tty-prompt
89
- #
90
- # @api public
91
- def prompt(**options)
92
- require 'tty-prompt'
93
- TTY::Prompt.new(options)
94
- end
95
-
96
- def pastel
97
- require 'pastel'
98
- Pastel.new
99
- end
100
-
101
- # Get terminal screen properties
102
- #
103
- # @see http://www.rubydoc.info/gems/tty-screen
104
- #
105
- # @api public
106
- def screen
107
- require 'tty-screen'
108
- TTY::Screen
109
- end
110
-
111
- # The unix which utility
112
- #
113
- # @see http://www.rubydoc.info/gems/tty-which
114
- #
115
- # @api public
116
- def which(*args)
117
- require 'tty-which'
118
- TTY::Which.which(*args)
119
- end
120
-
121
- # Check if executable exists
122
- #
123
- # @see http://www.rubydoc.info/gems/tty-which
124
- #
125
- # @api public
126
- def exec_exist?(*args)
127
- require 'tty-which'
128
- TTY::Which.exist?(*args)
129
- end
130
- end
131
- end