spaceship 0.21.1 → 0.22.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.
- checksums.yaml +4 -4
- data/lib/spaceship/portal/device.rb +1 -1
- data/lib/spaceship/portal/portal_client.rb +4 -4
- data/lib/spaceship/tunes/app_version_history.rb +59 -0
- data/lib/spaceship/tunes/app_version_states_history.rb +34 -0
- data/lib/spaceship/tunes/application.rb +16 -0
- data/lib/spaceship/tunes/tunes.rb +2 -0
- data/lib/spaceship/tunes/tunes_client.rb +13 -0
- data/lib/spaceship/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9dabed49c4d052da742b042c98736c63fafc03b5
|
4
|
+
data.tar.gz: 40407f493497ce523fd4bdc84ab5924624582e7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2529e7e6f98a626626ce8036a20f94cc18843f79bfbe8d63b118ea2aacded8504d406b34ffd455481d537f15ebae708586e5c5a7cc9b7ff8f399a348790b33bb
|
7
|
+
data.tar.gz: 119f3f29a9c16a7fbb5ebb6889658621abdf5e061c6674031c3f2508d8f54f6eada1e3879750b7dba87a159cae03bd2c8f0af7b925ecc26d1498f048c790488a
|
@@ -121,7 +121,7 @@ module Spaceship
|
|
121
121
|
# @return (Device) Find a device based on the UDID of the device. nil if no device was found.
|
122
122
|
def find_by_udid(device_udid, mac: false)
|
123
123
|
all(mac: mac).find do |device|
|
124
|
-
device.udid ==
|
124
|
+
device.udid.casecmp(device_udid) == 0
|
125
125
|
end
|
126
126
|
end
|
127
127
|
|
@@ -299,9 +299,9 @@ module Spaceship
|
|
299
299
|
def download_certificate(certificate_id, type, mac: false)
|
300
300
|
{ type: type, certificate_id: certificate_id }.each { |k, v| raise "#{k} must not be nil" if v.nil? }
|
301
301
|
|
302
|
-
r = request(:
|
302
|
+
r = request(:get, "account/#{platform_slug(mac)}/certificate/downloadCertificateContent.action", {
|
303
303
|
teamId: team_id,
|
304
|
-
|
304
|
+
certificateId: certificate_id,
|
305
305
|
type: type
|
306
306
|
})
|
307
307
|
a = parse_response(r)
|
@@ -353,9 +353,9 @@ module Spaceship
|
|
353
353
|
end
|
354
354
|
|
355
355
|
def download_provisioning_profile(profile_id, mac: false)
|
356
|
-
r = request(:get, "
|
356
|
+
r = request(:get, "account/#{platform_slug(mac)}/profile/downloadProfileContent", {
|
357
357
|
teamId: team_id,
|
358
|
-
|
358
|
+
provisioningProfileId: profile_id
|
359
359
|
})
|
360
360
|
a = parse_response(r)
|
361
361
|
if r.success? && a.include?("DOCTYPE plist PUBLIC")
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Spaceship
|
2
|
+
module Tunes
|
3
|
+
# Represents a read only version of an iTunes Connect Versions State History
|
4
|
+
class AppVersionHistory < TunesBase
|
5
|
+
# @return (Spaceship::Tunes::Application) A reference to the application
|
6
|
+
# this version is for
|
7
|
+
attr_accessor :application
|
8
|
+
|
9
|
+
# @return (String) The version in string format (e.g. "1.0")
|
10
|
+
attr_reader :version_string
|
11
|
+
|
12
|
+
# @return (String) The platform value of this version.
|
13
|
+
attr_reader :version_id
|
14
|
+
|
15
|
+
# @return ([Spaceship::Tunes::AppVersionStatesHistory]) the array of version states
|
16
|
+
attr_reader :items
|
17
|
+
|
18
|
+
attr_mapping({
|
19
|
+
'versionString' => :version_string,
|
20
|
+
'versionId' => :version_id,
|
21
|
+
'items' => :items
|
22
|
+
})
|
23
|
+
|
24
|
+
class << self
|
25
|
+
# Create a new object based on a hash.
|
26
|
+
# This is used to create a new object based on the server response.
|
27
|
+
def factory(attrs)
|
28
|
+
obj = self.new(attrs)
|
29
|
+
return obj
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Returns an array of all builds that can be sent to review
|
34
|
+
def items
|
35
|
+
@items ||= fetch_items
|
36
|
+
end
|
37
|
+
|
38
|
+
# Private methods
|
39
|
+
def setup
|
40
|
+
# Properly parse the AppStatus
|
41
|
+
items = raw_data['items']
|
42
|
+
@items = map_items(items) if items
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def map_items(items)
|
48
|
+
items.map do |attrs|
|
49
|
+
Tunes::AppVersionStatesHistory.factory(attrs)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def fetch_items
|
54
|
+
items = client.version_states_history(application.apple_id, application.platform, version_id)['items']
|
55
|
+
map_items(items)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Spaceship
|
2
|
+
module Tunes
|
3
|
+
# Represents a read only version of an iTunes Connect Versions State History
|
4
|
+
class AppVersionStatesHistory < TunesBase
|
5
|
+
# @return (String) the state
|
6
|
+
attr_reader :state_key
|
7
|
+
|
8
|
+
# @return (String) The name of the user who made the change
|
9
|
+
attr_reader :user_name
|
10
|
+
|
11
|
+
# @return (String) the email of the user or nil
|
12
|
+
attr_reader :user_email
|
13
|
+
|
14
|
+
# @return (Integer) the date of the state
|
15
|
+
attr_reader :date
|
16
|
+
|
17
|
+
attr_mapping({
|
18
|
+
'stateKey' => :state_key,
|
19
|
+
'userName' => :user_name,
|
20
|
+
'userEmail' => :user_email,
|
21
|
+
'date' => :date
|
22
|
+
})
|
23
|
+
|
24
|
+
class << self
|
25
|
+
# Create a new object based on a hash.
|
26
|
+
# This is used to create a new object based on the server response.
|
27
|
+
def factory(attrs)
|
28
|
+
obj = self.new(attrs)
|
29
|
+
return obj
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -134,6 +134,15 @@ module Spaceship
|
|
134
134
|
Tunes::AppDetails.factory(attrs)
|
135
135
|
end
|
136
136
|
|
137
|
+
def versions_history
|
138
|
+
ensure_not_a_bundle
|
139
|
+
versions = client.versions_history(apple_id, platform)
|
140
|
+
versions.map do |attrs|
|
141
|
+
attrs.merge!(application: self)
|
142
|
+
Tunes::AppVersionHistory.factory(attrs)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
137
146
|
#####################################################
|
138
147
|
# @!group Modifying
|
139
148
|
#####################################################
|
@@ -335,6 +344,13 @@ module Spaceship
|
|
335
344
|
|
336
345
|
tester.remove_from_app!(self.apple_id)
|
337
346
|
end
|
347
|
+
|
348
|
+
# private to module
|
349
|
+
def ensure_not_a_bundle
|
350
|
+
# we only support applications
|
351
|
+
platform = Spaceship::Tunes::AppVersionCommon.find_platform(raw_data['versionSets'])
|
352
|
+
raise "We do not support BUNDLE types right now" if platform['type'] == 'BUNDLE'
|
353
|
+
end
|
338
354
|
end
|
339
355
|
end
|
340
356
|
end
|
@@ -8,6 +8,8 @@ require 'spaceship/tunes/language_item'
|
|
8
8
|
require 'spaceship/tunes/app_status'
|
9
9
|
require 'spaceship/tunes/app_image'
|
10
10
|
require 'spaceship/tunes/app_version_ref'
|
11
|
+
require 'spaceship/tunes/app_version_history'
|
12
|
+
require 'spaceship/tunes/app_version_states_history'
|
11
13
|
require 'spaceship/tunes/transit_app_file'
|
12
14
|
require 'spaceship/tunes/user_detail'
|
13
15
|
require 'spaceship/tunes/app_screenshot'
|
@@ -790,6 +790,19 @@ module Spaceship
|
|
790
790
|
update_tester_from_app!(tester, app_id, false)
|
791
791
|
end
|
792
792
|
|
793
|
+
#####################################################
|
794
|
+
# @!group State History
|
795
|
+
#####################################################
|
796
|
+
def versions_history(app_id, platform)
|
797
|
+
r = request(:get, "ra/apps/#{app_id}/stateHistory?platform=#{platform}")
|
798
|
+
parse_response(r, 'data')['versions']
|
799
|
+
end
|
800
|
+
|
801
|
+
def version_states_history(app_id, platform, version_id)
|
802
|
+
r = request(:get, "ra/apps/#{app_id}/versions/#{version_id}/stateHistory?platform=#{platform}")
|
803
|
+
parse_response(r, 'data')
|
804
|
+
end
|
805
|
+
|
793
806
|
private
|
794
807
|
|
795
808
|
def with_tunes_retry(tries = 5, &_block)
|
data/lib/spaceship/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spaceship
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.22.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-03-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: credentials_manager
|
@@ -292,7 +292,9 @@ files:
|
|
292
292
|
- lib/spaceship/tunes/app_trailer.rb
|
293
293
|
- lib/spaceship/tunes/app_version.rb
|
294
294
|
- lib/spaceship/tunes/app_version_common.rb
|
295
|
+
- lib/spaceship/tunes/app_version_history.rb
|
295
296
|
- lib/spaceship/tunes/app_version_ref.rb
|
297
|
+
- lib/spaceship/tunes/app_version_states_history.rb
|
296
298
|
- lib/spaceship/tunes/application.rb
|
297
299
|
- lib/spaceship/tunes/build.rb
|
298
300
|
- lib/spaceship/tunes/build_train.rb
|
@@ -329,7 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
329
331
|
version: '0'
|
330
332
|
requirements: []
|
331
333
|
rubyforge_project:
|
332
|
-
rubygems_version: 2.
|
334
|
+
rubygems_version: 2.4.0
|
333
335
|
signing_key:
|
334
336
|
specification_version: 4
|
335
337
|
summary: Because you would rather spend your time building stuff than fighting provisioning
|