app_store_connect 0.4.0 → 0.5.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: 981dee27af144a014c32c7bdbc11287a99de7bf0105448625a24a8023c61d4fc
4
- data.tar.gz: a7ba2630349bf2761f3b136968b9fa5aedf6fdec9a6f2278952bb1c44da90e0b
3
+ metadata.gz: a5f4c797a32fb88d807db77e401dac1f6d0d6fe74e027735eec4d855d4896115
4
+ data.tar.gz: f2d5a2e9e29687b1ae1dffa5d2e716fff950267149cad74d835482bfa987db6e
5
5
  SHA512:
6
- metadata.gz: d6850e6d871b0f651381cfe0862d26e56be84a59ec8b8d848190168ec5fe39bc9db9079968c10ec4f88b713dab7840edcf4ea20f1d727febbfff67133d61c2b7
7
- data.tar.gz: e7ce9a165daed457422bdee412aa8f06ba33d9c37d5a0fcaa3a455bb813e828b5d597b96bd6df16b69d906983fb46cabe28f438ecb7a9210749c5620e74c86d5
6
+ metadata.gz: 1a080cac1b6c67278e1aa3f909cae54cc1b7c7d14147ea08facfdac81ca7701c6732e11dbe3a8d4fc3c9556d2958308b46982de46ee5b58a7c5b863b57eca83c
7
+ data.tar.gz: 7dbae88cb1af01353d7d296269dfa673dc1cd96c4aaec3bc3c4ae2a196a8dd2296be84b4cbec866da85e0fb8e3caba3d11910696015f9c076e6d0a5ec3149916
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **Desktop (please complete the following information):**
27
+ - OS: [e.g. iOS]
28
+ - Browser [e.g. chrome, safari]
29
+ - Version [e.g. 22]
30
+
31
+ **Smartphone (please complete the following information):**
32
+ - Device: [e.g. iPhone6]
33
+ - OS: [e.g. iOS8.1]
34
+ - Browser [e.g. stock browser, safari]
35
+ - Version [e.g. 22]
36
+
37
+ **Additional context**
38
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
data/.rubocop.yml CHANGED
@@ -9,6 +9,12 @@
9
9
  #
10
10
  # See https://github.com/rubocop-hq/rubocop/blob/master/manual/configuration.md
11
11
  #
12
+ Metrics/MethodLength:
13
+ Enabled: false
14
+
15
+ Metrics/BlockLength:
16
+ Enabled: false
17
+
12
18
  Style/Documentation:
13
19
  Enabled: false
14
20
 
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.3
1
+ ruby-2.6.3
data/.travis.yml CHANGED
@@ -1,11 +1,14 @@
1
1
  ---
2
- sudo: false
3
2
  language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.5.1
7
- before_install: gem install bundler -v 2.0.1
8
-
3
+ before_install:
4
+ - gem update --system --no-document
5
+ - gem install bundler --no-document
6
+ before_script:
7
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
8
+ - chmod +x ./cc-test-reporter
9
+ - ./cc-test-reporter before-build
9
10
  script:
10
11
  - bundle exec rspec
11
12
  - bundle exec rubocop
13
+ after_script:
14
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT -t simplecov
@@ -0,0 +1,76 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, sex characteristics, gender identity and expression,
9
+ level of experience, education, socio-economic status, nationality, personal
10
+ appearance, race, religion, or sexual identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at kyle.decot@icloud.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72
+
73
+ [homepage]: https://www.contributor-covenant.org
74
+
75
+ For answers to common questions about this code of conduct, see
76
+ https://www.contributor-covenant.org/faq
data/Gemfile.lock CHANGED
@@ -15,10 +15,15 @@ GEM
15
15
  i18n (>= 0.7, < 2)
16
16
  minitest (~> 5.1)
17
17
  tzinfo (~> 1.1)
18
+ addressable (2.6.0)
19
+ public_suffix (>= 2.0.2, < 4.0)
18
20
  ast (2.4.0)
19
21
  coderay (1.1.2)
20
22
  concurrent-ruby (1.1.5)
23
+ crack (0.4.3)
24
+ safe_yaml (~> 1.0.0)
21
25
  diff-lcs (1.3)
26
+ docile (1.3.2)
22
27
  factory_bot (5.0.2)
23
28
  activesupport (>= 4.2.0)
24
29
  ffi (1.11.1)
@@ -38,12 +43,14 @@ GEM
38
43
  guard (~> 2.1)
39
44
  guard-compat (~> 1.1)
40
45
  rspec (>= 2.99.0, < 4.0)
46
+ hashdiff (0.4.0)
41
47
  httparty (0.17.0)
42
48
  mime-types (~> 3.0)
43
49
  multi_xml (>= 0.5.2)
44
50
  i18n (1.6.0)
45
51
  concurrent-ruby (~> 1.0)
46
52
  jaro_winkler (1.5.3)
53
+ json (2.2.0)
47
54
  jwt (2.2.1)
48
55
  listen (3.1.5)
49
56
  rb-fsevent (~> 0.9, >= 0.9.4)
@@ -66,6 +73,7 @@ GEM
66
73
  pry (0.12.2)
67
74
  coderay (~> 1.1.0)
68
75
  method_source (~> 0.9.0)
76
+ public_suffix (3.1.1)
69
77
  rainbow (3.0.0)
70
78
  rake (10.5.0)
71
79
  rb-fsevent (0.10.3)
@@ -93,12 +101,23 @@ GEM
93
101
  unicode-display_width (>= 1.4.0, < 1.7)
94
102
  ruby-progressbar (1.10.1)
95
103
  ruby_dep (1.5.0)
104
+ safe_yaml (1.0.5)
96
105
  shellany (0.0.1)
106
+ simplecov (0.16.1)
107
+ docile (~> 1.1)
108
+ json (>= 1.8, < 3)
109
+ simplecov-html (~> 0.10.0)
110
+ simplecov-html (0.10.2)
97
111
  thor (0.20.3)
98
112
  thread_safe (0.3.6)
113
+ timecop (0.9.1)
99
114
  tzinfo (1.2.5)
100
115
  thread_safe (~> 0.1)
101
116
  unicode-display_width (1.6.0)
117
+ webmock (3.6.0)
118
+ addressable (>= 2.3.6)
119
+ crack (>= 0.3.2)
120
+ hashdiff (>= 0.4.0, < 2.0.0)
102
121
 
103
122
  PLATFORMS
104
123
  ruby
@@ -112,6 +131,9 @@ DEPENDENCIES
112
131
  rake (~> 10.0)
113
132
  rspec (~> 3.0)
114
133
  rubocop (~> 0.71.0)
134
+ simplecov (~> 0.16.1)
135
+ timecop (~> 0.9.1)
136
+ webmock (~> 3.6.0)
115
137
 
116
138
  BUNDLED WITH
117
139
  2.0.2
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
- # AppStoreConnect [![Build Status](https://travis-ci.com/kyledecot/app_store_connect.svg?branch=master)](https://travis-ci.com/kyledecot/app_store_connect) [![Gem Version](https://badge.fury.io/rb/app_store_connect.svg)](https://badge.fury.io/rb/app_store_connect)
1
+ # App Store Connect
2
2
 
3
- TODO
3
+ [![Build Status](https://travis-ci.com/kyledecot/app_store_connect.svg?branch=master)](https://travis-ci.com/kyledecot/app_store_connect) [![Gem Version](https://badge.fury.io/rb/app_store_connect.svg)](https://badge.fury.io/rb/app_store_connect) [![Maintainability](https://api.codeclimate.com/v1/badges/eb09ffa68f84f8da0b6d/maintainability)](https://codeclimate.com/github/kyledecot/app_store_connect/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/eb09ffa68f84f8da0b6d/test_coverage)](https://codeclimate.com/github/kyledecot/app_store_connect/test_coverage)
4
+
5
+ A Ruby interface to the [App Store Connect API](https://developer.apple.com/app-store-connect/api/)
4
6
 
5
7
  ## Installation
6
8
 
@@ -20,7 +22,17 @@ Or install it yourself as:
20
22
 
21
23
  ## Usage
22
24
 
23
- TODO
25
+ ```ruby
26
+ client = AppStoreConnect::Client.new(
27
+ issuer_id: issuer_id,
28
+ key_id: key_id,
29
+ private_key: private_key
30
+ )
31
+
32
+ client.apps
33
+ client.app('1234')
34
+ client.builds('1234')
35
+ ```
24
36
 
25
37
  ## Development
26
38
 
@@ -34,4 +34,7 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency 'rake', '~> 10.0'
35
35
  spec.add_development_dependency 'rspec', '~> 3.0'
36
36
  spec.add_development_dependency 'rubocop', '~> 0.71.0'
37
+ spec.add_development_dependency 'simplecov', '~> 0.16.1'
38
+ spec.add_development_dependency 'timecop', '~> 0.9.1'
39
+ spec.add_development_dependency 'webmock', '~> 3.6.0'
37
40
  end
@@ -4,11 +4,22 @@ require 'jwt'
4
4
  require 'httparty'
5
5
 
6
6
  require 'app_store_connect/authorization'
7
+ require 'app_store_connect/parser'
7
8
  require 'app_store_connect/client'
8
9
  require 'app_store_connect/cli'
9
10
  require 'app_store_connect/bundle_id_create_request'
10
11
  require 'app_store_connect/user_invitation_create_request'
11
12
  require 'app_store_connect/version'
13
+ require 'app_store_connect/config'
14
+
15
+ require 'app_store_connect/type'
16
+ require 'app_store_connect/type/enum'
17
+
18
+ require 'app_store_connect/factory'
19
+ require 'app_store_connect/factory/builder/enum'
12
20
 
13
21
  module AppStoreConnect
22
+ Factory.register('enum', Factory::Builder::Enum)
23
+
24
+ Parser.parse!(Config::API)
14
25
  end
@@ -3,6 +3,9 @@
3
3
  module AppStoreConnect
4
4
  class Authorization
5
5
  AUDIENCE = 'appstoreconnect-v1'
6
+ ALGORITHM = 'ES256'
7
+
8
+ attr_reader :key_id, :issuer_id, :private_key
6
9
 
7
10
  def initialize(key_id:, issuer_id:, private_key:)
8
11
  @key_id = key_id
@@ -13,13 +16,17 @@ module AppStoreConnect
13
16
  def payload
14
17
  {
15
18
  exp: Time.now.to_i + 20 * 60,
16
- iss: @issuer_id,
19
+ iss: issuer_id,
17
20
  aud: AUDIENCE
18
21
  }
19
22
  end
20
23
 
24
+ def header_fields
25
+ { kid: key_id }
26
+ end
27
+
21
28
  def token
22
- JWT.encode(payload, @private_key, 'ES256', kid: @key_id)
29
+ JWT.encode(payload, private_key, ALGORITHM, header_fields)
23
30
  end
24
31
  end
25
32
  end
@@ -10,9 +10,9 @@ module AppStoreConnect
10
10
  @data = Data.new(*args)
11
11
  end
12
12
 
13
- def to_hash
13
+ def to_h
14
14
  {
15
- data: data.to_hash
15
+ data: data.to_h
16
16
  }
17
17
  end
18
18
  end
@@ -17,9 +17,9 @@ module AppStoreConnect
17
17
  TYPE
18
18
  end
19
19
 
20
- def to_hash
20
+ def to_h
21
21
  {
22
- attributes: attributes.to_hash,
22
+ attributes: attributes.to_h,
23
23
  type: type
24
24
  }
25
25
  end
@@ -6,20 +6,21 @@ module AppStoreConnect
6
6
  class Attributes
7
7
  attr_accessor :identifier, :name, :platform, :seed_id
8
8
 
9
- def initialize(identifier:, name:, platform:, seed_id:)
9
+ def initialize(identifier:, name:, platform:, seed_id: nil)
10
10
  self.identifier = identifier
11
11
  self.name = name
12
12
  self.platform = platform
13
13
  self.seed_id = seed_id
14
14
  end
15
15
 
16
- def to_hash
16
+ def to_h
17
17
  {
18
18
  identifier: identifier,
19
19
  name: name,
20
- platform: platform,
21
- seed_id: seed_id
22
- }
20
+ platform: platform
21
+ }.tap do |hash|
22
+ hash[:seed_id] = seed_id unless seed_id.nil?
23
+ end
23
24
  end
24
25
  end
25
26
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnect
4
+ module Config
5
+ API = JSON.parse(
6
+ File.read(
7
+ File.join(__dir__, '../config/api.json')
8
+ )
9
+ )
10
+ end
11
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnect
4
+ class Factory
5
+ class BuilderNotRegistered < StandardError
6
+ def initialize(name)
7
+ super("Builder not registered: #{name}")
8
+ end
9
+ end
10
+
11
+ def self.register(name, builder)
12
+ builders[name] = builder
13
+ end
14
+
15
+ def self.builders
16
+ @builders ||= {}
17
+ end
18
+
19
+ def self.build(name, options = {})
20
+ builders.fetch(name) do
21
+ raise BuilderNotRegistered, name
22
+ end.call(options)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnect
4
+ class Factory
5
+ module Builder
6
+ class Enum
7
+ def self.call(values:)
8
+ Class.new(Type::Enum) do |base|
9
+ base.const_set('VALUES', values)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnect
4
+ class Parser
5
+ def self.parse!(config)
6
+ parse_types(config['Type'])
7
+ end
8
+
9
+ def self.parse_types(types)
10
+ types.each do |name, options|
11
+ type = options.delete('type')
12
+
13
+ klass = Factory.build(type, options.deep_symbolize_keys)
14
+
15
+ AppStoreConnect::Type.const_set(name, klass)
16
+ end
17
+ end
18
+ private_class_method :parse_types
19
+ end
20
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnect
4
+ module Type
5
+ end
6
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnect
4
+ module Type
5
+ class Enum
6
+ attr_reader :value
7
+
8
+ def initialize(value:)
9
+ @value = value
10
+ end
11
+
12
+ def self.const_missing(const)
13
+ return const_set(const, new(value: const.to_s)) if const.to_s.in?(const_get('VALUES'))
14
+
15
+ super(const)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppStoreConnect
4
- VERSION = '0.4.0'
4
+ VERSION = '0.5.0'
5
5
  end
@@ -0,0 +1,67 @@
1
+ {
2
+ "Type": {
3
+ "CapabilityType": {
4
+ "type": "enum",
5
+ "values": [
6
+ "ICLOUD",
7
+ "IN_APP_PURCHASE",
8
+ "GAME_CENTER",
9
+ "PUSH_NOTIFICATIONS",
10
+ "WALLET",
11
+ "INTER_APP_AUDIO",
12
+ "MAPS",
13
+ "ASSOCIATED_DOMAINS",
14
+ "PERSONAL_VPN",
15
+ "APP_GROUPS",
16
+ "HEALTHKIT",
17
+ "HOMEKIT",
18
+ "WIRELESS_ACCESSORY_CONFIGURATION",
19
+ "APPLE_PAY",
20
+ "DATA_PROTECTION",
21
+ "SIRIKIT",
22
+ "NETWORK_EXTENSIONS",
23
+ "MULTIPATH",
24
+ "HOT_SPOT",
25
+ "NFC_TAG_READING",
26
+ "CLASSKIT",
27
+ "AUTOFILL_CREDENTIAL_PROVIDER",
28
+ "ACCESS_WIFI_INFORMATION"
29
+ ]
30
+ },
31
+ "CertificateType": {
32
+ "type": "enum",
33
+ "values": [
34
+ "OS_DEVELOPMENT",
35
+ "IOS_DISTRIBUTION",
36
+ "MAC_APP_DISTRIBUTION",
37
+ "MAC_INSTALLER_DISTRIBUTION",
38
+ "MAC_APP_DEVELOPMENT",
39
+ "DEVELOPER_ID_KEXT",
40
+ "DEVELOPER_ID_APPLICATION"
41
+ ]
42
+ },
43
+ "BundleIdPlatform": {
44
+ "type": "enum",
45
+ "values": [
46
+ "IOS",
47
+ "MAC_OS"
48
+ ]
49
+ },
50
+ "UserRole": {
51
+ "type": "enum",
52
+ "values": [
53
+ "ADMIN",
54
+ "FINANCE",
55
+ "TECHNICAL",
56
+ "SALES",
57
+ "MARKETING",
58
+ "DEVELOPER",
59
+ "ACCOUNT_HOLDER",
60
+ "READ_ONLY",
61
+ "APP_MANAGER",
62
+ "ACCESS_TO_REPORTS",
63
+ "CUSTOMER_REPORTS"
64
+ ]
65
+ }
66
+ }
67
+ }
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.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Decot
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-21 00:00:00.000000000 Z
11
+ date: 2019-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -164,6 +164,48 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 0.71.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: simplecov
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 0.16.1
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 0.16.1
181
+ - !ruby/object:Gem::Dependency
182
+ name: timecop
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: 0.9.1
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: 0.9.1
195
+ - !ruby/object:Gem::Dependency
196
+ name: webmock
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: 3.6.0
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: 3.6.0
167
209
  description:
168
210
  email:
169
211
  - kyle.decot@icloud.com
@@ -172,11 +214,14 @@ executables:
172
214
  extensions: []
173
215
  extra_rdoc_files: []
174
216
  files:
217
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
218
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
175
219
  - ".gitignore"
176
220
  - ".rspec"
177
221
  - ".rubocop.yml"
178
222
  - ".ruby-version"
179
223
  - ".travis.yml"
224
+ - CODE_OF_CONDUCT.md
180
225
  - Gemfile
181
226
  - Gemfile.lock
182
227
  - Guardfile
@@ -194,8 +239,15 @@ files:
194
239
  - lib/app_store_connect/bundle_id_create_request/data/attributes.rb
195
240
  - lib/app_store_connect/cli.rb
196
241
  - lib/app_store_connect/client.rb
242
+ - lib/app_store_connect/config.rb
243
+ - lib/app_store_connect/factory.rb
244
+ - lib/app_store_connect/factory/builder/enum.rb
245
+ - lib/app_store_connect/parser.rb
246
+ - lib/app_store_connect/type.rb
247
+ - lib/app_store_connect/type/enum.rb
197
248
  - lib/app_store_connect/user_invitation_create_request.rb
198
249
  - lib/app_store_connect/version.rb
250
+ - lib/config/api.json
199
251
  homepage: https://github.com/kyledecot/app_store_connect
200
252
  licenses:
201
253
  - MIT