gerrit 0.3.0 → 0.4.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: c14a9161708725543c0375055c068e864a8e0d00
4
- data.tar.gz: 1aab149820844fe5cebae082f3f77bd728062b65
3
+ metadata.gz: d050a0ac17abfa314ecaa5b6fd07037499f8e471
4
+ data.tar.gz: 72446d0641f5ed8ca4e4963234b126166e01f36a
5
5
  SHA512:
6
- metadata.gz: f44d2871bc42bf4dee823f3ee878fc8c01657e0a942d10b2a12f92f521b2c81cf3e82cd127317996ff20f94e2f6b8b059a4cf4d95fd97c1b360d6d91407fff0f
7
- data.tar.gz: 0d7d9d5fd9631a66ad805e452570ac917a8e03cb90f8062aa39e99bcbd95d4a97027147d147345ca5c0e9c0c6a0de5fad19b3275072e67eeeadcc5c71e2205c7
6
+ metadata.gz: 9dd2197c2035696ea52a8cf13595b88ecdcbaabeb2dfede9d60299f11d3097b54bf7e3ae7843d3dae75984433c0dd4b6b1f4bbc66384369c3f82af3fa62bcbb0
7
+ data.tar.gz: 6b403e7c5c7dae06f10734d94a8de8a681f484f701946634b042b8c8ca71586e33e85b90b6267c7bc472655d956642a25a4baad72b6355d986d78edf0c09ef99
@@ -10,19 +10,34 @@ module Gerrit::Command
10
10
  if commit_hash?(arguments[1]) || arguments[1] == 'HEAD'
11
11
  ref = arguments[1]
12
12
  reviewer_args = arguments[2..-1] || []
13
- target_branch = 'master'
14
13
  type = 'publish'
15
14
  topic = nil
15
+ target_branch = 'master'
16
16
  else
17
17
  ref = 'HEAD'
18
18
  reviewer_args = arguments[1..-1] || []
19
- target_branch = ask_target_branch
20
19
  type = ask_review_type
21
20
  topic = ask_topic
21
+ target_branch = ask_target_branch
22
22
  end
23
23
 
24
24
  reviewers = extract_reviewers(reviewer_args)
25
25
 
26
+ if reviewers.size > 3
27
+ ui.newline
28
+ ui.info("You are adding #{reviewers.size} people as reviewers for this change")
29
+
30
+ reviewers.each do |username|
31
+ ui.print username
32
+ end
33
+
34
+ until %w[y n].include?(ui.ask('Is this ok? (y/n) ')
35
+ .argument(:required)
36
+ .modify(:downcase)
37
+ .read_string)
38
+ end
39
+ end
40
+
26
41
  push_changes(remote_url, ref, reviewers, target_branch, type, topic)
27
42
  end
28
43
 
@@ -56,7 +71,7 @@ module Gerrit::Command
56
71
 
57
72
  def extract_reviewers(reviewer_args)
58
73
  if reviewer_args.empty?
59
- reviewer_args = ui.ask('Enter users/groups you would like to review your changes')
74
+ reviewer_args = ui.ask('Enter users/groups you would like to review your changes: ')
60
75
  .argument(:required)
61
76
  .read_string
62
77
  .split(/\s*,\s*/)
@@ -64,15 +79,21 @@ module Gerrit::Command
64
79
 
65
80
  return [] if reviewer_args.empty?
66
81
 
67
- ui.spinner('Finding matching users/groups...') do
68
- extract_users(reviewer_args)
69
- end
82
+ extract_users(reviewer_args)
70
83
  end
71
84
 
72
85
  def extract_users(reviewer_args)
73
86
  usernames = []
74
- groups = client.groups
75
- users = client.users
87
+ groups = nil
88
+ users = nil
89
+
90
+ # HACK: We wrap these slow calls in a spinner since other parts of this
91
+ # helper can prompt for input, which doesn't play well with the spinner
92
+ # animation.
93
+ ui.spinner('Finding matching users/groups...') do
94
+ groups = client.groups
95
+ users = client.users
96
+ end
76
97
 
77
98
  reviewer_args.each do |arg|
78
99
  users_or_groups = arg.split(/\s*,\s*|\s+/)
@@ -91,7 +112,27 @@ module Gerrit::Command
91
112
  # Don't scan users since we already matched a group
92
113
  return group_users if group_users.any?
93
114
 
94
- users.grep(/#{pattern}/i)
115
+ matching_users = users.grep(/#{pattern}/i)
116
+
117
+ # If more than one match for an individual user, confirm which one.
118
+ if matching_users.size >= 2
119
+ ui.info("Multiple users match the pattern '#{pattern}':")
120
+ matching_users.each_with_index do |username, index|
121
+ ui.print "#{index + 1}. #{username}"
122
+ end
123
+
124
+ while matching_users.size >= 2
125
+ index = ui.ask('Enter the number of the user you meant: ')
126
+ .argument(:required)
127
+ .read_int
128
+
129
+ if index > 0 && index <= matching_users.size
130
+ matching_users = [matching_users[index - 1]]
131
+ end
132
+ end
133
+ end
134
+
135
+ matching_users
95
136
  end
96
137
 
97
138
  def users_from_group(groups, group)
@@ -103,7 +144,7 @@ module Gerrit::Command
103
144
  end
104
145
 
105
146
  def ask_target_branch
106
- target = ui.ask('Target branch (default master)')
147
+ target = ui.ask('Target branch [master] ')
107
148
  .modify(:trim)
108
149
  .read_string
109
150
 
@@ -111,7 +152,7 @@ module Gerrit::Command
111
152
  end
112
153
 
113
154
  def ask_review_type
114
- draft = ui.ask('Are you pushing this as a draft? (y/n) [n]')
155
+ draft = ui.ask('Are you pushing this as a draft? (y/n) [n] ')
115
156
  .argument(:required)
116
157
  .default('n')
117
158
  .modify(:downcase)
@@ -121,13 +162,12 @@ module Gerrit::Command
121
162
  end
122
163
 
123
164
  def ask_topic
124
- topic = ui.ask('Topic name (optional; enter * to autofill with your current branch:')
165
+ topic = ui.ask('Enter topic name (optional; enter * to use current branch name) ')
125
166
  .argument(:optional)
126
167
  .read_string
127
168
 
128
169
  topic = repo.branch('HEAD') if topic == '*'
129
170
  topic.strip.empty? ? nil : topic
130
171
  end
131
-
132
172
  end
133
173
  end
@@ -1,4 +1,4 @@
1
1
  # Defines the gem version.
2
2
  module Gerrit
3
- VERSION = '0.3.0'
3
+ VERSION = '0.4.0'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gerrit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane da Silva