pilot 1.11.2 → 1.12.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: 8659c1dc2b679c36a474876a7999751430f87e39
4
- data.tar.gz: 0a4c133f4e50ca4d9bb2e0d90760949447c9fd88
3
+ metadata.gz: 6c19ab12fd9eb4f2b46c5961a6870233fdd6fa01
4
+ data.tar.gz: c58e66f0b5e5e8463cda286447567f591a74e73f
5
5
  SHA512:
6
- metadata.gz: d052b226d6f1dfb826cd8c172ade0c62efc1705c3ca66f9bff5f0fcef269bb065c7fb1958ff11e147ff5b135cfe227ea2bd49999ec8dc642190c5907e7e028bb
7
- data.tar.gz: 0803a4ae7f6609bb36b1e185691507088ed5109386139294ac9a5845c98e31b544a7f32bc3c413042e8a08f1a54db72024496d1b0c565d2647e9d97782d8fd6d
6
+ metadata.gz: 4b0864facb06d0871f2c165ad6152369fb86998b4c8559a4383ed21300260bf40c847ac50c26b286b05b62d138bebb96bef009fb29e7168b6f7eb7bc79047e5c
7
+ data.tar.gz: f292781750358270c18fd16f73faa2b6958e5d0ac1fb09c4e404d4d9b9aa08341e13856a5279c37c428d67feeb61ff720db8555b7185b44608ed934a2c6ee0fc
@@ -131,7 +131,16 @@ module Pilot
131
131
  FastlaneCore::ConfigItem.new(key: :itc_provider,
132
132
  env_name: "PILOT_ITC_PROVIDER",
133
133
  description: "The provider short name to be used with the iTMSTransporter to identify your team",
134
- optional: true)
134
+ optional: true),
135
+ FastlaneCore::ConfigItem.new(key: :groups,
136
+ short_option: "-g",
137
+ env_name: "PILOT_GROUPS",
138
+ description: "Associate tester to one group or more by group name / group id. E.g. '-g \"Team 1\",\"Team 2\"'",
139
+ optional: true,
140
+ type: Array,
141
+ verify_block: proc do |value|
142
+ UI.user_error!("Could not evaluate array from '#{value}'") unless value.kind_of?(Array)
143
+ end)
135
144
  ]
136
145
  end
137
146
  end
@@ -20,21 +20,14 @@ module Pilot
20
20
  file = config[:testers_file_path]
21
21
 
22
22
  CSV.open(file, "w") do |csv|
23
- csv << ['First', 'Last', 'Email', 'Devices', 'Groups', 'Installed Version', 'Install Date']
23
+ csv << ['First', 'Last', 'Email', 'Groups', 'Devices', 'Installed Version', 'Install Date']
24
24
 
25
25
  testers.each do |tester|
26
- groups = tester.raw_data.get("groups")
27
-
28
- group_names = ""
29
- if groups && groups.length > 0
30
- names = groups.map { |group| group["name"]["value"] }
31
- group_names = names.join(';')
32
- end
33
-
26
+ group_names = tester.groups_list(';') || ""
34
27
  install_version = tester.full_version || ""
35
28
  pretty_date = tester.pretty_install_date || ""
36
29
 
37
- csv << [tester.first_name, tester.last_name, tester.email, tester.devices.count, group_names, install_version, pretty_date]
30
+ csv << [tester.first_name, tester.last_name, tester.email, group_names, tester.devices.count, install_version, pretty_date]
38
31
  end
39
32
 
40
33
  UI.success("Successfully exported CSV to #{file}")
@@ -13,8 +13,10 @@ module Pilot
13
13
  tester_manager = Pilot::TesterManager.new
14
14
  imported_tester_count = 0
15
15
 
16
+ groups = options[:groups]
17
+
16
18
  CSV.foreach(file, "r") do |row|
17
- first_name, last_name, email = row
19
+ first_name, last_name, email, testing_groups = row
18
20
 
19
21
  unless email
20
22
  UI.error("No email found in row: #{row}")
@@ -30,6 +32,10 @@ module Pilot
30
32
  config[:first_name] = first_name
31
33
  config[:last_name] = last_name
32
34
  config[:email] = email
35
+ config[:groups] = groups
36
+ if testing_groups
37
+ config[:groups] = testing_groups.split(";")
38
+ end
33
39
 
34
40
  begin
35
41
  tester_manager.add_tester(config)
@@ -7,6 +7,17 @@ module Pilot
7
7
  def add_tester(options)
8
8
  start(options)
9
9
 
10
+ if config[:groups]
11
+ groups = Spaceship::Tunes::Tester::External.groups
12
+ selected_groups = []
13
+ config[:groups].each do |group|
14
+ group_id = groups.find { |k, v| v == group || k == group }
15
+ raise "Group '#{group}' not found for #{config[:email]}" unless group_id
16
+ selected_groups.push(group_id[0])
17
+ end
18
+ config[:groups] = selected_groups
19
+ end
20
+
10
21
  begin
11
22
  tester = Spaceship::Tunes::Tester::Internal.find(config[:email])
12
23
  tester ||= Spaceship::Tunes::Tester::External.find(config[:email])
@@ -16,7 +27,8 @@ module Pilot
16
27
  else
17
28
  tester = Spaceship::Tunes::Tester::External.create!(email: config[:email],
18
29
  first_name: config[:first_name],
19
- last_name: config[:last_name])
30
+ last_name: config[:last_name],
31
+ groups: config[:groups])
20
32
  UI.success("Successfully invited tester: #{tester.email}")
21
33
  end
22
34
 
@@ -120,12 +132,13 @@ module Pilot
120
132
  end
121
133
 
122
134
  def list_global(all_testers, title)
123
- headers = ["First", "Last", "Email", "Devices", "Latest Version", "Latest Install Date"]
135
+ headers = ["First", "Last", "Email", "Groups", "Devices", "Latest Version", "Latest Install Date"]
124
136
  list(all_testers, title, headers) do |tester|
125
137
  [
126
138
  tester.first_name,
127
139
  tester.last_name,
128
140
  tester.email,
141
+ tester.groups_list,
129
142
  tester.devices.count,
130
143
  tester.full_version,
131
144
  tester.pretty_install_date
@@ -134,12 +147,13 @@ module Pilot
134
147
  end
135
148
 
136
149
  def list_by_app(all_testers, title)
137
- headers = ["First", "Last", "Email"]
150
+ headers = ["First", "Last", "Email", "Groups"]
138
151
  list(all_testers, title, headers) do |tester|
139
152
  [
140
153
  tester.first_name,
141
154
  tester.last_name,
142
- tester.email
155
+ tester.email,
156
+ tester.groups_list
143
157
  # Testers returned by the query made in the context of an app do not contain
144
158
  # the devices, version, or install date information
145
159
  ]
@@ -165,11 +179,8 @@ module Pilot
165
179
  rows << ["Last name", tester.last_name]
166
180
  rows << ["Email", tester.email]
167
181
 
168
- groups = tester.raw_data.get("groups")
169
-
170
- if groups && groups.length > 0
171
- group_names = groups.map { |group| group["name"]["value"] }
172
- rows << ["Groups", group_names.join(', ')]
182
+ if tester.groups.length > 0
183
+ rows << ["Groups", tester.groups_list]
173
184
  end
174
185
 
175
186
  if tester.latest_install_date
@@ -1,4 +1,4 @@
1
1
  module Pilot
2
- VERSION = "1.11.2"
2
+ VERSION = "1.12.0"
3
3
  DESCRIPTION = "The best way to manage your TestFlight testers and builds from your terminal"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pilot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.2
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-01 00:00:00.000000000 Z
11
+ date: 2016-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastlane_core
@@ -36,7 +36,7 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 0.36.2
39
+ version: 0.37.0
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
42
  version: 1.0.0
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.36.2
49
+ version: 0.37.0
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: 1.0.0