app_store_connect 0.17.0 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 513dc52bf5480a65562d7ddeb78e974869a25e4a9692318f2b80f83674409dcd
4
- data.tar.gz: f3066573d1db092a69afe8fed6af086cce0e00dbd3a381d2e08f1e925e47517f
3
+ metadata.gz: 470b52247c4433c38efbfee411a366e9e1ab2f00a828c8cbd7616ed849d85a47
4
+ data.tar.gz: e4634c5f9d3c59961d4fda0d96d8b6390a50670e0ccb5ac375275d2f1b1d001d
5
5
  SHA512:
6
- metadata.gz: ce5132700e8643296e6f3dda8f9ca6566cc1587f204e33561c25c848e1f4e32c2d5a97c18236d384a332dc10344a3c3b3ef487c36144cc7717d42f813a7b38d4
7
- data.tar.gz: e8e14c9e489121ef2017d541dfb9d467eda1f586311fafc75dd5cac1c6cf76d61550ab7969785ec91b401705693ce4e06225cbba429a9eacf172740ce5393613
6
+ metadata.gz: c06fcfbbf3c9f779efed08c724bea67d6c6802b0724da68294d95cf41b8b18eb88f7a7b4f795dafd942beccd648e3c242694cbb302074b851c92eacdc65dd233
7
+ data.tar.gz: 4433deabcff03bdb79d8f7faada91c6525c643d2cc6d8eea7d36f7acbe2a72efe38586eccb7c9d7b63e015d9b3a3f6682be85e7a6c801400f8a87ab20350a010
@@ -0,0 +1,152 @@
1
+ ---
2
+ name: Default
3
+
4
+ on:
5
+ push:
6
+
7
+ jobs:
8
+ build:
9
+ name: Build
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Set up Ruby 2.6
15
+ uses: actions/setup-ruby@v1
16
+ with:
17
+ ruby-version: 2.6.x
18
+ - uses: actions/cache@v1
19
+ with:
20
+ path: vendor/bundle
21
+ key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
22
+ restore-keys: ${{ runner.os }}-gems-
23
+ - name: Install Bundler
24
+ run: gem install bundler
25
+ - name: Configure Bundler
26
+ run: bundle config path vendor/bundle
27
+ - name: Bundle Install
28
+ run: bundle install --jobs 4 --retry 3
29
+ - name: Set APP_STORE_CONNECT_VERSION
30
+ run: echo ::set-env name=APP_STORE_CONNECT_VERSION::$(bundle exec rake version:current)
31
+ - name: Build
32
+ run: bundle exec rake build
33
+ - name: Upload Gem
34
+ uses: actions/upload-artifact@v1
35
+ with:
36
+ name: app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem
37
+ path: app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem
38
+
39
+ lint:
40
+ name: Lint
41
+ runs-on: ubuntu-latest
42
+ needs: [build]
43
+
44
+ steps:
45
+ - uses: actions/checkout@v2
46
+ - name: Set up Ruby 2.6
47
+ uses: actions/setup-ruby@v1
48
+ with:
49
+ ruby-version: 2.6.x
50
+ - uses: actions/cache@v1
51
+ with:
52
+ path: vendor/bundle
53
+ key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
54
+ restore-keys: ${{ runner.os }}-gems-
55
+ - name: Install Bundler
56
+ run: gem install bundler
57
+ - name: Configure Bundler
58
+ run: bundle config path vendor/bundle
59
+ - name: Bundle Install
60
+ run: bundle install --jobs 4 --retry 3
61
+ - name: Run Rubocop
62
+ run: bundle exec rubocop
63
+
64
+ test:
65
+ name: Test
66
+ runs-on: ubuntu-latest
67
+ needs: [build]
68
+
69
+ steps:
70
+ - uses: actions/checkout@v2
71
+ - name: Set up Ruby 2.6
72
+ uses: actions/setup-ruby@v1
73
+ with:
74
+ ruby-version: 2.6.x
75
+ - uses: actions/cache@v1
76
+ with:
77
+ path: vendor/bundle
78
+ key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
79
+ restore-keys: ${{ runner.os }}-gems-
80
+ - name: Install Bundler
81
+ run: gem install bundler
82
+ - name: Configure Bundler
83
+ run: bundle config path vendor/bundle
84
+ - name: Bundle Install
85
+ run: bundle install --jobs 4 --retry 3
86
+ - name: Run RSpec
87
+ run: bundle exec rake spec
88
+
89
+ release:
90
+ name: Release
91
+ runs-on: ubuntu-latest
92
+ if: ${{ startsWith(github.ref, 'refs/tags/v') }}
93
+ needs: [test, lint]
94
+
95
+ steps:
96
+ - uses: actions/checkout@v2
97
+ - name: Set up Ruby 2.6
98
+ uses: actions/setup-ruby@v1
99
+ with:
100
+ ruby-version: 2.6.x
101
+ - uses: actions/cache@v1
102
+ with:
103
+ path: vendor/bundle
104
+ key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
105
+ restore-keys: ${{ runner.os }}-gems-
106
+ - name: Install Bundler
107
+ run: gem install bundler
108
+ - name: Configure Bundler
109
+ run: bundle config path vendor/bundle
110
+
111
+ - name: Configure Gem
112
+ run: |
113
+ mkdir -p $HOME/.gem
114
+ touch $HOME/.gem/credentials
115
+ chmod 0600 $HOME/.gem/credentials
116
+ printf -- "---\n:rubygems_api_key: ${{secrets.RUBYGEMS_API_KEY}}\n:github: Bearer ${{secrets.PERSONAL_ACCESS_TOKEN}}" > $HOME/.gem/credentials
117
+
118
+ - name: Bundle Install
119
+ run: bundle install --jobs 4 --retry 3
120
+ - name: Set APP_STORE_CONNECT_VERSION
121
+ run: echo ::set-env name=APP_STORE_CONNECT_VERSION::$(bundle exec rake version:current)
122
+ - uses: actions/download-artifact@v1
123
+ with:
124
+ name: app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem
125
+ path: /tmp
126
+ - run: mv /tmp/app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem .
127
+ - name: Push Gem to Rubygems
128
+ run: bundle exec rake release[rubygems]
129
+ continue-on-error: true
130
+ - name: Push Gem to Github Package Registry
131
+ run: bundle exec rake release[github]
132
+ continue-on-error: true
133
+ - name: Create Release
134
+ id: create_release
135
+ uses: actions/create-release@latest
136
+ env:
137
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
138
+ with:
139
+ tag_name: ${{ github.ref }}
140
+ release_name: ${{ github.ref }}
141
+ draft: false
142
+ prerelease: false
143
+ - name: Upload Release Asset
144
+ uses: actions/upload-release-asset@v1
145
+ env:
146
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
147
+ with:
148
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
149
+ asset_path: app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem
150
+ asset_name: app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem
151
+ asset_content_type: application/binary
152
+
@@ -1,24 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- app_store_connect (0.17.0)
5
- activesupport
4
+ app_store_connect (0.22.0)
5
+ activesupport (>= 6.0.3.1)
6
6
  jwt (>= 1.4, <= 2.2.1)
7
7
  mixpanel-ruby (<= 2.2.0)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activesupport (5.2.3)
12
+ activesupport (6.0.3.1)
13
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
14
14
  i18n (>= 0.7, < 2)
15
15
  minitest (~> 5.1)
16
16
  tzinfo (~> 1.1)
17
+ zeitwerk (~> 2.2, >= 2.2.2)
17
18
  addressable (2.6.0)
18
19
  public_suffix (>= 2.0.2, < 4.0)
19
20
  ast (2.4.0)
20
21
  coderay (1.1.2)
21
- concurrent-ruby (1.1.5)
22
+ concurrent-ruby (1.1.6)
22
23
  crack (0.4.3)
23
24
  safe_yaml (~> 1.0.0)
24
25
  diff-lcs (1.3)
@@ -42,7 +43,7 @@ GEM
42
43
  guard-compat (~> 1.1)
43
44
  rspec (>= 2.99.0, < 4.0)
44
45
  hashdiff (0.4.0)
45
- i18n (1.6.0)
46
+ i18n (1.8.2)
46
47
  concurrent-ruby (~> 1.0)
47
48
  jaro_winkler (1.5.3)
48
49
  json (2.2.0)
@@ -53,20 +54,21 @@ GEM
53
54
  ruby_dep (~> 1.2)
54
55
  lumberjack (1.0.13)
55
56
  method_source (0.9.2)
56
- minitest (5.11.3)
57
+ minitest (5.14.1)
57
58
  mixpanel-ruby (2.2.0)
58
59
  nenv (0.3.0)
59
60
  notiffany (0.1.1)
60
61
  nenv (~> 0.1)
61
62
  shellany (~> 0.0)
62
- parallel (1.17.0)
63
- parser (2.6.3.0)
63
+ parallel (1.18.0)
64
+ parser (2.6.5.0)
64
65
  ast (~> 2.4.0)
65
66
  pry (0.12.2)
66
67
  coderay (~> 1.1.0)
67
68
  method_source (~> 0.9.0)
68
69
  public_suffix (3.1.1)
69
70
  rainbow (3.0.0)
71
+ rake (13.0.1)
70
72
  rb-fsevent (0.10.3)
71
73
  rb-inotify (0.10.0)
72
74
  ffi (~> 1.0)
@@ -83,7 +85,7 @@ GEM
83
85
  diff-lcs (>= 1.2.0, < 2.0)
84
86
  rspec-support (~> 3.8.0)
85
87
  rspec-support (3.8.0)
86
- rubocop (0.71.0)
88
+ rubocop (0.75.1)
87
89
  jaro_winkler (~> 1.5.1)
88
90
  parallel (~> 1.10)
89
91
  parser (>= 2.6)
@@ -93,6 +95,7 @@ GEM
93
95
  ruby-progressbar (1.10.1)
94
96
  ruby_dep (1.5.0)
95
97
  safe_yaml (1.0.5)
98
+ semantic (1.6.1)
96
99
  shellany (0.0.1)
97
100
  simplecov (0.16.1)
98
101
  docile (~> 1.1)
@@ -102,13 +105,14 @@ GEM
102
105
  thor (0.20.3)
103
106
  thread_safe (0.3.6)
104
107
  timecop (0.9.1)
105
- tzinfo (1.2.5)
108
+ tzinfo (1.2.7)
106
109
  thread_safe (~> 0.1)
107
110
  unicode-display_width (1.6.0)
108
111
  webmock (3.6.0)
109
112
  addressable (>= 2.3.6)
110
113
  crack (>= 0.3.2)
111
114
  hashdiff (>= 0.4.0, < 2.0.0)
115
+ zeitwerk (2.3.0)
112
116
 
113
117
  PLATFORMS
114
118
  ruby
@@ -119,11 +123,13 @@ DEPENDENCIES
119
123
  factory_bot (~> 5.0.2)
120
124
  guard-rspec (~> 4.7.3)
121
125
  pry (~> 0.12)
126
+ rake (~> 13.0)
122
127
  rspec (~> 3.0)
123
- rubocop (~> 0.71.0)
128
+ rubocop (~> 0.75.0)
129
+ semantic (~> 1.5)
124
130
  simplecov (~> 0.16.1)
125
131
  timecop (~> 0.9.1)
126
132
  webmock (~> 3.6.0)
127
133
 
128
134
  BUNDLED WITH
129
- 2.0.2
135
+ 2.1.4
data/README.md CHANGED
@@ -35,215 +35,6 @@ app_store_connect.app(id: '1234')
35
35
  app_store_connect.builds(id: '1234')
36
36
  ```
37
37
 
38
- ## Web Service Endpoints
39
-
40
-
41
- ### Users
42
- - [X] List Users
43
- - [X] Read User Information
44
- - [X] Remove a User Account
45
- - [X] Modify a User Account
46
- - [X] Get All Visible App Resource IDs for a User
47
- - [X] List All Apps Visible to a User
48
- - [X] Remove Visible Apps from a User
49
- - [X] Add Visible Apps to a User
50
- - [X] Replace the List of Visible Apps for a User
51
-
52
- ### Bundle IDs
53
- - [X] Register a New Bundle ID
54
- - [X] Modify a Bundle ID
55
- - [X] Delete a Bundle ID
56
- - [X] Read Bundle ID Information
57
- - [X] List Bundle IDs
58
- - [X] Get All Profile IDs for a Bundle ID
59
- - [X] Get All Capabilility IDs for a Bundle ID
60
- - [X] List All Profiles for a Bundle ID
61
- - [X] List All Capabilities for a Bundle ID
62
-
63
- ### Certificates
64
- - [X] List and Download Certificates
65
- - [X] Create a Certificate
66
- - [X] Read and Download Certificate Information
67
- - [X] Revoke a Certificate
68
-
69
- ### User Invitations
70
- - [X] Read User Invitation Information
71
- - [X] List Invited Users
72
- - [X] Invite a User
73
- - [X] Cancel a User Invitation
74
- - [X] Get All App Resource IDs Visible to an Invited User
75
- - [X] List All Apps Visible to an Invited User
76
-
77
- ### Bundle ID Capabilities
78
- - [ ] Enable a Capability
79
- - [X] Disable a Capability
80
- - [X] Modify a Capability Configuration
81
-
82
- ### Devices
83
- - [X] List Devices
84
- - [X] Read Device Information
85
- - [X] Register a New Device
86
- - [X] Modify a Registered Device
87
-
88
- ### Sales and Finance Reports
89
- - [X] Download Sales and Trends Reports
90
- - [X] Download Finance Reports
91
-
92
- ### Profiles
93
- - [X] Create a Profile
94
- - [X] Delete a Profile
95
- - [X] List and Download Profiles
96
- - [X] Get the Bundle Resource ID in a Profile
97
- - [X] Read the Bundle ID in a Profile
98
- - [X] Read and Download Profile Information
99
- - [X] List All Certificates in a Profile
100
- - [X] Get All Certificate IDs in a Profile
101
- - [X] Get All Device Resource IDs in a Profile
102
- - [X] List All Devices in a Profile
103
-
104
- ### Beta Testers
105
- - [X] Create a Beta Tester
106
- - [X] Delete a Beta Tester
107
- - [X] Add a Beta Tester to Beta Groups
108
- - [X] List Beta Testers
109
- - [X] Read Beta Tester Information
110
- - [X] Individually Assign a Beta Tester to Builds
111
- - [X] Remove a Beta Tester from Beta Groups
112
- - [X] Remove a Beta Tester’s Access to Apps
113
- - [X] Get All App Resource IDs for a Beta Tester
114
- - [X] List All Builds Individually Assigned to a Beta Tester
115
- - [X] List All Apps for a Beta Tester
116
- - [X] Get All IDs of Builds Individually Assigned to a Beta Tester
117
- - [X] List All Beta Groups to Which a Beta Tester Belongs
118
- - [X] Get All Beta Group IDs of a Beta Tester's Groups
119
- - [X] Individually Unassign a Beta Tester from Builds
120
-
121
- ### Beta Tester Invitations
122
- - [ ] Send an Invitation to a Beta Tester
123
-
124
- ### Apps
125
- - [X] Remove Beta Testers from All Groups and Builds of an App
126
- - [X] Read App Information
127
- - [X] List All Beta Groups for an App
128
- - [X] List Apps
129
- - [X] Get All Build IDs of an App
130
- - [X] List All Builds of an App
131
- - [X] Get All Beta Group IDs for an App
132
- - [X] Get All Prerelease Version IDs for an App
133
- - [X] List All Prerelease Versions for an App
134
- - [X] Get the Beta App Review Details Resource ID for an App
135
- - [X] Read the Beta App Review Details Resource of an App
136
- - [X] List All Beta App Localizations of an App
137
- - [X] Read the Beta License Agreement of an App
138
- - [X] Get the Beta License Agreement ID for an App
139
- - [X] Get All Beta App Localization IDs of an App
140
-
141
- ### Beta Groups
142
- - [X] Create a Beta Group
143
- - [X] Modify a Beta Group
144
- - [X] List Beta Groups
145
- - [X] Read Beta Group Information
146
- - [X] Delete a Beta Group
147
- - [X] Read the App Information of a Beta Group
148
- - [X] Get the App Resource ID for a Beta Group
149
- - [X] Add Beta Testers to a Beta Group
150
- - [X] Remove Beta Testers from a Beta Group
151
- - [X] Remove Builds from a Beta Group
152
- - [X] List All Builds for a BetaGroup
153
- - [X] Add Builds to a Beta Group
154
- - [X] Get All Build IDs in a Beta Group
155
- - [X] Get All Beta Tester IDs in a Beta Group
156
- - [X] List All Beta Testers in a BetaGroup
157
-
158
- ### Prerelease Versions
159
- - [X] List Prerelease Versions
160
- - [X] Get the App Resource ID for a Prerelease Version
161
- - [X] Read Prerelease Version Information
162
- - [X] Read the App Information of a Prerelease Version
163
- - [X] List All Builds of a Prerelease Version
164
- - [X] Get All Build IDs of a Prerelease Version
165
-
166
- ### Beta App Localizations
167
- - [X] List Beta App Localizations
168
- - [X] Read Beta App Localization Information
169
- - [X] Read the App Information of a Beta App Localization
170
- - [X] Get the App Resource ID for a Beta App Localization
171
- - [X] Create a Beta App Localization
172
- - [X] Modify a Beta App Localization
173
- - [X] Delete a Beta App Localization
174
-
175
- ### App Encryption Declarations
176
- - [X] List App Encryption Declarations
177
- - [X] Read App Encryption Declaration Information
178
- - [X] Get the App Resource ID for an App Encryption Declaration
179
- - [X] Read the App Information of an App Encryption Declaration
180
- - [ ] Assign Builds to an App Encryption Declaration
181
-
182
- ### Build Beta Details
183
- - [X] Read Build Beta Detail Information
184
- - [X] List Build Beta Details
185
- - [X] Get the Build ID for a Build Beta Detail
186
- - [X] Modify a Build Beta Detail
187
- - [X] Read the Build Information of a Build Beta Detail
188
-
189
- ### Beta Build Localizations
190
- - [X] List Beta Build Localizations
191
- - [X] Read Beta Build Localization Information
192
- - [X] Read the Build Information of a Beta Build Localization
193
- - [X] Create a Beta Build Localization
194
- - [X] Delete a Beta Build Localization
195
- - [X] Modify a Beta Build Localization
196
- - [X] Get the Build ID for a Beta Build Localization
197
-
198
- ### Builds
199
- - [X] Read Build Information
200
- - [X] Get the App Resource ID for a Build
201
- - [X] List Builds
202
- - [X] Read the App Information of a Build
203
- - [X] Modify a Build
204
- - [X] Read the Prerelease Version of a Build
205
- - [X] Get All Resource IDs of Prerelease Versions for a Build
206
- - [X] Assign the App Encryption Declaration for a Build
207
- - [X] Remove Individual Testers from a Build
208
- - [X] Add Access for Beta Groups to a Build
209
- - [X] Remove Access for Beta Groups to a Build
210
- - [X] List All Individual Testers for a Build
211
- - [X] Assign Individual Testers to a Build
212
- - [X] Get All Resource IDs of Individual Testers for a Build
213
- - [X] Get the Beta App Review Submission ID of a Build
214
- - [X] Read the Beta App Review Submission of a Build
215
- - [X] Read the Build Beta Details Information of a Build
216
- - [X] Get the Build Beta Details Resource ID for a Build
217
- - [X] Get the App Encryption Declaration ID for a Build
218
- - [X] Get All Beta Build Localization IDs of a Build
219
- - [X] Read the App Encryption Declaration of a Build
220
- - [X] List All Beta Build Localizations of a Build
221
-
222
- ### Beta App Review Detail
223
- - [X] List Beta App Review Details
224
- - [X] Read Beta App Review Detail Information
225
- - [X] Read the App Information of a Beta App Review Detail
226
- - [X] Get the App Resource ID for a Beta App Review Details Resource
227
- - [X] Modify a Beta App Review Detail
228
-
229
- ### Beta App Review Submissions
230
- - [X] Read Beta App Review Submission Information
231
- - [X] Submit an App for Beta Review
232
- - [X] Read the Build Information of a Beta App Review Submission
233
- - [X] List Beta App Review Submissions
234
- - [X] Get the Build ID for a Beta App Review Submission
235
-
236
- ### Build Beta Notifications
237
- - [ ] Send Notification of an Available Build
238
-
239
- ### Beta License Agreements
240
- - [X] Read Beta License Agreement Information
241
- - [X] Read the App Information of a Beta License Agreement
242
- - [X] Get the App Resource ID for a Beta License Agreement
243
- - [X] Modify a Beta License Agreement
244
- - [X] List Beta License Agreements
245
-
246
-
247
38
  ### Create Bundle ID
248
39
 
249
40
  ```ruby
@@ -271,8 +62,6 @@ app_store_connect.sales_reports(
271
62
 
272
63
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
273
64
 
274
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
275
-
276
65
  ## Contributing
277
66
 
278
67
  Bug reports and pull requests are welcome on GitHub at https://github.com/kyledecot/app_store_connect.
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rspec/core/rake_task'
4
+
5
+ Dir.glob('lib/tasks/*.rake').each { |r| load r }
6
+
7
+ RSpec::Core::RakeTask.new(:spec)
8
+ task default: :spec
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.require_paths = ['lib']
22
22
 
23
- spec.add_runtime_dependency 'activesupport'
23
+ spec.add_runtime_dependency 'activesupport', '>= 6.0.3.1'
24
24
  spec.add_runtime_dependency 'jwt', '>= 1.4', '<= 2.2.1'
25
25
  spec.add_runtime_dependency 'mixpanel-ruby', '<= 2.2.0'
26
26
 
@@ -28,8 +28,10 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency 'factory_bot', '~> 5.0.2'
29
29
  spec.add_development_dependency 'guard-rspec', '~> 4.7.3'
30
30
  spec.add_development_dependency 'pry', '~> 0.12'
31
+ spec.add_development_dependency 'rake', '~> 13.0'
31
32
  spec.add_development_dependency 'rspec', '~> 3.0'
32
- spec.add_development_dependency 'rubocop', '~> 0.71.0'
33
+ spec.add_development_dependency 'rubocop', '~> 0.75.0'
34
+ spec.add_development_dependency 'semantic', '~> 1.5'
33
35
  spec.add_development_dependency 'simplecov', '~> 0.16.1'
34
36
  spec.add_development_dependency 'timecop', '~> 0.9.1'
35
37
  spec.add_development_dependency 'webmock', '~> 3.6.0'
@@ -8,6 +8,7 @@ require 'app_store_connect/client/authorization'
8
8
  require 'app_store_connect/client/options'
9
9
  require 'app_store_connect/client/usage'
10
10
  require 'app_store_connect/client/registry'
11
+ require 'app_store_connect/client/utils'
11
12
 
12
13
  module AppStoreConnect
13
14
  class Client
@@ -50,7 +51,7 @@ module AppStoreConnect
50
51
  @usage.track
51
52
  response = request.execute
52
53
 
53
- JSON.parse(response.body) if response.body
54
+ Utils.decode(response.body, response.content_type) if response.body
54
55
  end
55
56
 
56
57
  def build_uri(web_service_endpoint, **kwargs)
@@ -64,12 +65,10 @@ module AppStoreConnect
64
65
  end
65
66
 
66
67
  def http_body(web_service_endpoint, **kwargs)
67
- "AppStoreConnect::#{web_service_endpoint.http_body_type}"
68
+ Utils.encode("AppStoreConnect::#{web_service_endpoint.http_body_type}"
68
69
  .constantize
69
70
  .new(**kwargs)
70
- .to_h
71
- .deep_transform_keys { |k| k.to_s.camelize(:lower) }
72
- .to_json
71
+ .to_h)
73
72
  end
74
73
 
75
74
  def build_request(web_service_endpoint, **kwargs)
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'mixpanel-ruby'
4
4
  require 'securerandom'
5
+ require 'app_store_connect/version'
5
6
 
6
7
  module AppStoreConnect
7
8
  class Client
@@ -20,7 +21,7 @@ module AppStoreConnect
20
21
  def track
21
22
  return false unless @enabled
22
23
 
23
- @tracker.track(@distinct_id, 'usage')
24
+ @tracker.track(@distinct_id, 'usage', version: VERSION)
24
25
  end
25
26
  end
26
27
  end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnect
4
+ class Client
5
+ class Utils
6
+ def self.encode(hash)
7
+ hash
8
+ .deep_transform_keys { |s| s.to_s.camelize(:lower) }
9
+ .to_json
10
+ end
11
+
12
+ # Right now this only supports gzip and json responses.
13
+ # If you need to support a different type then add it.
14
+ def self.decode(string, content_type = 'application/json')
15
+ decoded_data = nil
16
+
17
+ case content_type
18
+ when 'application/a-gzip'
19
+ sio = StringIO.new string
20
+ gz = Zlib::GzipReader.new sio
21
+ decoded_data = gz.read
22
+ else # Assume JSON
23
+ decoded_data = JSON
24
+ .parse(string)
25
+ .deep_transform_keys { |k| k.underscore.to_sym }
26
+ end
27
+
28
+ decoded_data
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppStoreConnect
4
- VERSION = '0.17.0'
4
+ VERSION = '0.22.0'
5
5
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'app_store_connect/version'
4
+
5
+ desc "Build app_store_connect-#{AppStoreConnect::VERSION}.gem"
6
+ task :build do
7
+ sh %(gem build app_store_connect.gemspec)
8
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pry'
4
+ require 'app_store_connect'
5
+
6
+ desc 'Start a pry console'
7
+ task :console do
8
+ Pry.start(AppStoreConnect::Client.new)
9
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'app_store_connect/version'
4
+
5
+ version = AppStoreConnect::VERSION
6
+
7
+ desc "Release app_store_connect-#{version}.gem"
8
+ task :release, [:key] do |_task, args|
9
+ args.with_defaults(key: 'rubygems')
10
+
11
+ key = args.key.to_sym
12
+ host = {
13
+ rubygems: 'https://rubygems.org',
14
+ github: 'https://rubygems.pkg.github.com/kyledecot'
15
+ }.fetch(key)
16
+
17
+ sh %(gem push --key=#{key} --host=#{host} app_store_connect-#{version}.gem)
18
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'app_store_connect/version'
4
+ require 'semantic'
5
+
6
+ namespace :version do
7
+ desc 'Print current version'
8
+ task :current do
9
+ puts AppStoreConnect::VERSION
10
+ end
11
+
12
+ desc 'Increment version'
13
+ task :increment do
14
+ version = Semantic::Version.new(AppStoreConnect::VERSION)
15
+ path = File.expand_path(File.join('..', 'app_store_connect', 'version.rb'), __dir__)
16
+
17
+ File.open(path, 'r+') do |file|
18
+ contents = file.read
19
+ contents.gsub!(AppStoreConnect::VERSION, version.increment!(:minor).to_s)
20
+
21
+ file.rewind
22
+ file.write(contents)
23
+ end
24
+ end
25
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: app_store_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Decot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-22 00:00:00.000000000 Z
11
+ date: 2020-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 6.0.3.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 6.0.3.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jwt
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -114,6 +114,20 @@ dependencies:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0.12'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rake
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '13.0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '13.0'
117
131
  - !ruby/object:Gem::Dependency
118
132
  name: rspec
119
133
  requirement: !ruby/object:Gem::Requirement
@@ -134,14 +148,28 @@ dependencies:
134
148
  requirements:
135
149
  - - "~>"
136
150
  - !ruby/object:Gem::Version
137
- version: 0.71.0
151
+ version: 0.75.0
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: 0.75.0
159
+ - !ruby/object:Gem::Dependency
160
+ name: semantic
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '1.5'
138
166
  type: :development
139
167
  prerelease: false
140
168
  version_requirements: !ruby/object:Gem::Requirement
141
169
  requirements:
142
170
  - - "~>"
143
171
  - !ruby/object:Gem::Version
144
- version: 0.71.0
172
+ version: '1.5'
145
173
  - !ruby/object:Gem::Dependency
146
174
  name: simplecov
147
175
  requirement: !ruby/object:Gem::Requirement
@@ -193,9 +221,7 @@ extra_rdoc_files: []
193
221
  files:
194
222
  - ".github/ISSUE_TEMPLATE/bug_report.md"
195
223
  - ".github/ISSUE_TEMPLATE/feature_request.md"
196
- - ".github/workflows/lint.yml"
197
- - ".github/workflows/publish.yml"
198
- - ".github/workflows/test.yml"
224
+ - ".github/workflows/default.yml"
199
225
  - ".gitignore"
200
226
  - ".rspec"
201
227
  - ".rubocop.yml"
@@ -206,9 +232,8 @@ files:
206
232
  - Guardfile
207
233
  - LICENSE.txt
208
234
  - README.md
235
+ - Rakefile
209
236
  - app_store_connect.gemspec
210
- - bin/console
211
- - bin/publish
212
237
  - bin/setup
213
238
  - lib/app_store_connect.rb
214
239
  - lib/app_store_connect/bundle_id_create_request.rb
@@ -218,6 +243,7 @@ files:
218
243
  - lib/app_store_connect/client/options.rb
219
244
  - lib/app_store_connect/client/registry.rb
220
245
  - lib/app_store_connect/client/usage.rb
246
+ - lib/app_store_connect/client/utils.rb
221
247
  - lib/app_store_connect/create_request.rb
222
248
  - lib/app_store_connect/device_create_request.rb
223
249
  - lib/app_store_connect/object/attributes.rb
@@ -233,6 +259,10 @@ files:
233
259
  - lib/app_store_connect/user_invitation_create_request.rb
234
260
  - lib/app_store_connect/version.rb
235
261
  - lib/config/schema.json
262
+ - lib/tasks/build.rake
263
+ - lib/tasks/console.rake
264
+ - lib/tasks/release.rake
265
+ - lib/tasks/version.rake
236
266
  homepage: https://github.com/kyledecot/app_store_connect
237
267
  licenses:
238
268
  - MIT
@@ -252,7 +282,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
282
  - !ruby/object:Gem::Version
253
283
  version: '0'
254
284
  requirements: []
255
- rubygems_version: 3.0.3
285
+ rubygems_version: 3.1.2
256
286
  signing_key:
257
287
  specification_version: 4
258
288
  summary: A Ruby interface to the App Store Connect API
@@ -1,22 +0,0 @@
1
- name: Lint
2
-
3
- on:
4
- push:
5
-
6
- jobs:
7
- build:
8
- name: Rubocop
9
- runs-on: ubuntu-latest
10
-
11
- steps:
12
- - uses: actions/checkout@master
13
- - name: Set up Ruby 2.6
14
- uses: actions/setup-ruby@v1
15
- with:
16
- ruby-version: 2.6.x
17
- - name: Install dependencies
18
- run: |
19
- gem install bundler
20
- bundle install --jobs=3 --retry=3
21
- - name: Run rubocop
22
- run: rubocop
@@ -1,40 +0,0 @@
1
- name: Publish
2
-
3
- on:
4
- push:
5
- tags:
6
- - v*
7
-
8
- jobs:
9
- build:
10
- name: Build + Publish
11
- runs-on: ubuntu-latest
12
-
13
- steps:
14
- - uses: actions/checkout@master
15
- - name: Set up Ruby 2.6
16
- uses: actions/setup-ruby@v1
17
- with:
18
- ruby-version: 2.6.x
19
- - name: Configure Bundler
20
- run: |
21
- gem install bundler
22
- bundle install --jobs=3 --retry=3
23
- mkdir -p $HOME/.gem
24
- touch $HOME/.gem/credentials
25
- chmod 0600 $HOME/.gem/credentials
26
- printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n:github: Bearer ${GITHUB_PACKAGE_REPOSITORY_AUTH_TOKEN}" > $HOME/.gem/credentials
27
- env:
28
- GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
29
- GITHUB_PACKAGE_REPOSITORY_AUTH_TOKEN: ${{secrets.GITHUB_PACKAGE_REPOSITORY_AUTH_TOKEN}}
30
-
31
- - name: Build Gem
32
- run: |
33
- gem build *.gemspec
34
-
35
- - name: Publish to RubyGems
36
- run: bundle exec ./bin/publish --rubygems
37
-
38
- - name: Publish to Github Package Repository
39
- run: bundle exec ./bin/publish --github
40
-
@@ -1,31 +0,0 @@
1
- name: Test
2
-
3
- on:
4
- push:
5
- schedule:
6
- - cron: 0 2 * * 1-5
7
-
8
- jobs:
9
- rspec:
10
- name: RSpec
11
- runs-on: ubuntu-latest
12
-
13
- steps:
14
- - uses: actions/checkout@master
15
- - name: Set up Ruby 2.6
16
- uses: actions/setup-ruby@v1
17
- with:
18
- ruby-version: 2.6.x
19
- - name: Install dependencies
20
- run: |
21
- gem install bundler
22
- bundle install --jobs=3 --retry=3
23
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
24
- chmod +x ./cc-test-reporter
25
- ./cc-test-reporter before-build
26
- - name: Run rspec
27
- run: |
28
- rspec
29
- ./cc-test-reporter after-build --exit-code $? -t simplecov
30
- env:
31
- CC_TEST_REPORTER_ID: ${{secrets.CC_TEST_REPORTER_ID}}
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require 'bundler/setup'
5
- require 'app_store_connect'
6
- require 'pry'
7
-
8
- Pry.start(AppStoreConnect::Client.new)
@@ -1,38 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require 'optparse'
5
- require 'app_store_connect/version'
6
-
7
- OPTIONS = {
8
- hosts: [],
9
- version: AppStoreConnect::VERSION
10
- }.freeze
11
-
12
- HOSTS = {
13
- rubygems: 'https://rubygems.org',
14
- github: 'https://rubygems.pkg.github.com/kyledecot'
15
- }.freeze
16
-
17
- OptionParser.new do |parser|
18
- HOSTS.keys.each do |key|
19
- parser.on("--#{key}") do
20
- OPTIONS[:hosts] << key
21
- end
22
- end
23
-
24
- parser.on('--version VERSION') do |version|
25
- OPTIONS[:version] = version
26
- end
27
-
28
- parser.on('--help', '-h') do
29
- puts parser
30
- exit(0)
31
- end
32
- end.parse!
33
-
34
- OPTIONS[:hosts].each do |key|
35
- ENV['RUBYGEMS_HOST'] = HOSTS.fetch(key)
36
-
37
- system "gem push -k #{key} app_store_connect-#{OPTIONS[:version]}.gem"
38
- end