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 +4 -4
- data/.github/workflows/default.yml +152 -0
- data/Gemfile.lock +18 -12
- data/README.md +0 -211
- data/Rakefile +8 -0
- data/app_store_connect.gemspec +4 -2
- data/lib/app_store_connect/client.rb +4 -5
- data/lib/app_store_connect/client/usage.rb +2 -1
- data/lib/app_store_connect/client/utils.rb +32 -0
- data/lib/app_store_connect/version.rb +1 -1
- data/lib/tasks/build.rake +8 -0
- data/lib/tasks/console.rake +9 -0
- data/lib/tasks/release.rake +18 -0
- data/lib/tasks/version.rake +25 -0
- metadata +42 -12
- data/.github/workflows/lint.yml +0 -22
- data/.github/workflows/publish.yml +0 -40
- data/.github/workflows/test.yml +0 -31
- data/bin/console +0 -8
- data/bin/publish +0 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 470b52247c4433c38efbfee411a366e9e1ab2f00a828c8cbd7616ed849d85a47
|
4
|
+
data.tar.gz: e4634c5f9d3c59961d4fda0d96d8b6390a50670e0ccb5ac375275d2f1b1d001d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
+
|
data/Gemfile.lock
CHANGED
@@ -1,24 +1,25 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
app_store_connect (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 (
|
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.
|
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.
|
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.
|
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.
|
63
|
-
parser (2.6.
|
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.
|
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.
|
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.
|
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.
|
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.
|
data/Rakefile
ADDED
data/app_store_connect.gemspec
CHANGED
@@ -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.
|
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
|
-
|
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
|
@@ -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.
|
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:
|
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:
|
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:
|
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.
|
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:
|
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/
|
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.
|
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
|
data/.github/workflows/lint.yml
DELETED
@@ -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
|
-
|
data/.github/workflows/test.yml
DELETED
@@ -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}}
|
data/bin/console
DELETED
data/bin/publish
DELETED
@@ -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
|