app-store-connect-0.37.0/0000755000175000017500000000000014411772371014207 5ustar vinayvinayapp-store-connect-0.37.0/bin/0000755000175000017500000000000014411772371014757 5ustar vinayvinayapp-store-connect-0.37.0/bin/console0000755000175000017500000000057614411772371016357 0ustar vinayvinay#!/usr/bin/env ruby # frozen_string_literal: true require 'bundler/setup' require 'app_store_connect' # You can add fixtures and/or initialization code here to make experimenting # with your gem easier. You can also use a different console, if you like. # (If you use this, don't forget to add pry to your Gemfile!) # require "pry" # Pry.start require 'irb' IRB.start(__FILE__) app-store-connect-0.37.0/.github/0000755000175000017500000000000014411772371015547 5ustar vinayvinayapp-store-connect-0.37.0/.github/workflows/0000755000175000017500000000000014411772371017604 5ustar vinayvinayapp-store-connect-0.37.0/.github/workflows/default.yml0000644000175000017500000001156714411772371021765 0ustar vinayvinay--- name: CI/CD on: push: jobs: build: name: Build runs-on: ubuntu-latest strategy: matrix: ruby_versions: [2.7, 3.0, 3.1, 3.2] steps: - uses: actions/checkout@v3 - name: Set up Ruby ${{ matrix.ruby_versions }} uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby_versions }} - uses: actions/cache@v3 with: path: vendor/bundle key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} restore-keys: ${{ runner.os }}-gems- - name: Install Bundler run: gem install bundler - name: Configure Bundler run: bundle config path vendor/bundle - name: Bundle Install run: bundle install --jobs 4 --retry 3 - name: Set APP_STORE_CONNECT_VERSION run: echo "APP_STORE_CONNECT_VERSION=$(bundle exec rake version:current)" >> $GITHUB_ENV - name: Build run: bundle exec rake build - name: Upload Gem uses: actions/upload-artifact@v3 with: name: app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem path: app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem lint: name: Lint runs-on: ubuntu-latest needs: [build] strategy: matrix: ruby_versions: [2.7, 3.0, 3.1, 3.2] steps: - uses: actions/checkout@v3 - name: Set up Ruby ${{ matrix.ruby_versions }} uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby_versions }} - uses: actions/cache@v3 with: path: vendor/bundle key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} restore-keys: ${{ runner.os }}-gems- - name: Install Bundler run: gem install bundler - name: Configure Bundler run: bundle config path vendor/bundle - name: Bundle Install run: bundle install --jobs 4 --retry 3 - name: Run Rubocop run: bundle exec rubocop test: name: Test runs-on: ubuntu-latest needs: [build] strategy: matrix: ruby_versions: [2.7, 3.0, 3.1, 3.2] steps: - uses: actions/checkout@v3 - name: Set up Ruby ${{ matrix.ruby_versions }} uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby_versions }} - uses: actions/cache@v3 with: path: vendor/bundle key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} restore-keys: ${{ runner.os }}-gems- - name: Install Bundler run: gem install bundler - name: Configure Bundler run: bundle config path vendor/bundle - name: Bundle Install run: bundle install --jobs 4 --retry 3 - name: Run RSpec run: bundle exec rake spec release: name: Release runs-on: ubuntu-latest if: ${{ startsWith(github.ref, 'refs/tags/v') }} needs: [test, lint] steps: - uses: actions/checkout@v3 - name: Set up Ruby 3.2 uses: ruby/setup-ruby@v1 with: ruby-version: 3.2 - uses: actions/cache@v3 with: path: vendor/bundle key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} restore-keys: ${{ runner.os }}-gems- - name: Install Bundler run: gem install bundler - name: Configure Bundler run: bundle config path vendor/bundle - name: Configure Gem run: | mkdir -p $HOME/.gem touch $HOME/.gem/credentials chmod 0600 $HOME/.gem/credentials printf -- "---\n:rubygems_api_key: ${{secrets.RUBYGEMS_API_KEY}}\n:github: Bearer ${{secrets.PERSONAL_ACCESS_TOKEN}}" > $HOME/.gem/credentials - name: Bundle Install run: bundle install --jobs 4 --retry 3 - name: Set APP_STORE_CONNECT_VERSION run: echo "APP_STORE_CONNECT_VERSION=$(bundle exec rake version:current)" >> $GITHUB_ENV - uses: actions/download-artifact@v3 with: name: app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem path: /tmp - run: mv /tmp/app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem . - name: Push Gem to Rubygems run: bundle exec rake push[rubygems] continue-on-error: true - name: Push Gem to Github Package Registry run: bundle exec rake push[github] continue-on-error: true - name: Create Release id: create_release uses: actions/create-release@latest env: GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }} draft: false prerelease: false - name: Upload Release Asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem asset_name: app_store_connect-${{ env.APP_STORE_CONNECT_VERSION }}.gem asset_content_type: application/binary app-store-connect-0.37.0/.github/FUNDING.yml0000644000175000017500000000002714411772371017363 0ustar vinayvinay--- github: kyledecot app-store-connect-0.37.0/.github/ISSUE_TEMPLATE/0000755000175000017500000000000014411772371017732 5ustar vinayvinayapp-store-connect-0.37.0/.github/ISSUE_TEMPLATE/bug_report.md0000644000175000017500000000150214411772371022422 0ustar vinayvinay--- name: Bug report about: Create a report to help us improve title: '' labels: '' assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. iOS] - Browser [e.g. chrome, safari] - Version [e.g. 22] **Smartphone (please complete the following information):** - Device: [e.g. iPhone6] - OS: [e.g. iOS8.1] - Browser [e.g. stock browser, safari] - Version [e.g. 22] **Additional context** Add any other context about the problem here. app-store-connect-0.37.0/.github/ISSUE_TEMPLATE/feature_request.md0000644000175000017500000000112314411772371023454 0ustar vinayvinay--- name: Feature request about: Suggest an idea for this project title: '' labels: '' assignees: '' --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. app-store-connect-0.37.0/.gitignore0000644000175000017500000000015014411772371016173 0ustar vinayvinay/.bundle/ /.yardoc /_yardoc/ /coverage/ /doc/ /pkg/ /spec/reports/ /tmp/ .rspec_status .DS_Store *.gem app-store-connect-0.37.0/CODE_OF_CONDUCT.md0000644000175000017500000000643114411772371017012 0ustar vinayvinay# Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at kyle.decot@icloud.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq app-store-connect-0.37.0/assets/0000755000175000017500000000000014411772371015511 5ustar vinayvinayapp-store-connect-0.37.0/assets/banner.png0000644000175000017500000003266214411772371017475 0ustar vinayvinayPNG  IHDR=2sRGBeXIfMM*bj(1r2iHHPixelmator Pro 3.2.32019:08:08 06:08:6724 pHYs  iTXtXML:com.adobe.xmp 1 180 180 Pixelmator Pro 3.2.3 2019-08-08T06:08:67 2023-02-08T18:56:06+08:00 2 0 1 720000/10000 720000/10000 @Tl/IDATx}\řn%PB&g 2&؄u [}ֻ6k/^{v>1s`   ґH(Qir}tL鞩:}V}UUWk,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|mk8f=Zl^{mqpfyyh T*:*UW|YCtFGᦦ &%5-+ <\ឋk.h5CSmx0aݍ1l߾u+Lz۶mf͚"_zOͧ]`LLrN-7C`L),, ycF Nkk뤒 @+@iF^yӁh߉kE(zjO[Jk7 ':nrQOZ):2#GAYQQp7"y57aOaAjpe yPxrm+wXi߾}SN= @ $-"}l\@g _?}iiF(n +++}Os[gG)*(($ܱ5c`zpZIB2h4iiibFI.4!n}iӦ57@3ZpQ-Y3F)b3@c VSS3{҅(`Ђy4 }]:03NɎI; ?+E֌ utt,Fm*AfG f3"Ҍ|czsh5 Ɠ6y>kh5Ȗ;]GKИY|#eg4FWW8~2J'L Z k׮&4o4b yJ]ȸЋ Qn hˋO`ݮ<^?Ff|AnU`L?]xSīͥ9IyGu[LRvve& ;e@S@guo М;[c$+HmmmJm!DJ YJ!nJP>8+Մa:7k -)0W*<ͥ8: -%vhTO \Bϙ 2Bô#,FX$#y[bR=tq:(7E}7SGxq#Jڰ5,vtE;f:C{w8ƚ s*$1̴/G.l4hy|D~#^wmcXwn/>2_"e?փ3 rY0 y(bK{Xܳ5$ ĚM11$Ŝ=tLOw"m Tdزs 8ˡ\6QAOg#)c/d݇D_@䮸KP3Cq鶠6϶$'D6iyy'n?!4P1hc2TfBPԘ~[9/~+a4̴Fۭc5#@ƘsZЊ:--Q eEK ,|GaHOtKû~>rhICc3ݺ :Y[41"|%ٌa!+AՅaa~6y0?MFKXC!CK X?Jgi#ϖDyȶ]rvh4AgPAJg'(z]d1‡JGA>):TM;b`Z+.f*Sz ܖeGI _‰ +B9 H%11p? eQެb4YYHcI!]3CԒ@{X` O2T:y{p]>#${`cY3o=u/IT48)."UUykʸ:0=7bI )Orp//D5\U7KzτN;H%1XV;O”zBWހ.}72n|cqMX?JHLng•lHԀ4VP\8.;_2: &-Ng;,sV%P1@D]~Xˉp<>feG: S5X5>9FTxSV`xrpd8/KWgLjIP6Q,)o 4y-P.(g>49^b߈"0%IΓ$*SMtEG;"G/a|VsjYLél[qhtrnA\Lѝ l^Mj|^:pIRސXIi ?%VicW{g&+X1Z%svCdlt#`)K N#R.ڿ+f̰YyG h!b{-9K0e^褞ii:('eЩ׈~xr J/ n*k@]ͽo.ʬhsUeCV*UJff`Е]Arֵs En;[ƙG UJ#Ȑ۪UG49=|HM94"/RPq89\َ1||zT9t5ȃԞh8#<3\䌆 l磽|#Nrk⿷aJN\\[pr)0) 7\ޜB ANBG\]R gu8x[՚Q: ZqvF6 #ȴ[R9r4]x6AA"H<1u!AQAN3Kn0Y3q39\4 _:,ğZ.( AH`kadRTWcX☠0s;՗zP;e6X>aܚPz:6bMA*H *L V `H\ ^qaiuɝɠe^2;['eR [;$zL0]}g/镳=8lE8&/FrÛ Cj@۰)`datِ@"@f$N2,A8IXKHezS yd{HHbMjCj<3(dQXbM_.7%bE]x1 Ge8hH(o[3r X@ǡio /D W4>] r9lIidɇsi,DܚR:rm8bKS‒k#(cwhiНe&2 =bΟv0@u&M R6ݳO%q(JS`F~7@x|91F=&/?uc(`[ Vk#qmɸɠd-QE[yqt9QQ\Ev? ̗?BiC hM-ABu i3si/m*߉8hpQ<_1+-952 WԾ{+:Y3< X@^fȯ 10h@y ( y\gR3^PHiʃ*sdܷ} f8Z<[HRcN#蝊:.<ΓP\{ZJt3A- Et?d]ߐ67_1Sˀ,J?(fNuO?d+3=x)&(nm_]=m&y {@7aϘjD)p)t) 4$?xrgF 0/9LCJ"C>@ 4nޙ@o~|u~L׀ `Xt]DtAarj%{!V 1c6jwS:-%yg*'X"\vC04]+BI>Q3,q)]1#T.O ş J=P`\+w,pe! [XCzClXCGbOS0]-SX|Xha]|[dMb g![ kP-d,tkYOl86|"Y qJٯ\>^Q} j$4/ n VFFaG7#Ogky2'#+ʪOrh~4a!ȚW3Гx^hJ9>^_P%Ԧ)R5Ր8k9)LCFҨ_0͸2R"WM6.h%78ȼK;H#AlERC(MsV\p3?i@u}X,2pSoFiHqh^RfȠzw#@eN'zO{2ÿ YzlE(FzsqfF>p{`L6 7+Cu#,vTaN~'Z--}cDY7g$E$PesKu&e:B`H7ᔡ:Ri{f bd(d&tȴXTx' ^'ćgyEŗ;p’넴2 *{ o heed/aȼu{ "򉿁ć-MNM-; P6@\vIhb~QʎxG[s:=a6) \_)Q w԰ޝW;UBxrsl#CZvt^T/+02 ܪ~:Gq]f ?o6p+0W9MbP+ 붃;Bw?@i7*ӘpMNz)27Rvca&{ɋ.5v |b.eźMZVv)GqJ/L@ -?W>K+~3gCcY:~q]ue\id: \uTlQ1EA.SAOYJ?_LqaY.iW!c82#К8#xg";:6#7݌m7(;DmgGbUMΆvuEkil1xʒ1ž葾u7i"핅dB$#ulxJ@~~5TShosp+[+n;@\mN\\ʶIOw"t7 9&]䮺Nl'3C%[GwR A&,\:NzAT|hSG?@<r]Oܬi0&-2i+^0f!SɩBoA#j?[':l7ݨ탧L:VDi`>'GabbRKވ  ]*HrMF3AZk.(Lu2ݩv&;ahb.CNjCOe( ybMPh+#h,ZIn1A%aCe.ίb>;TN"\EJOJf'T{p7_)$'S4zoy`nA޴|=X~*.!&%@vYyQ{(3glPY|Wx'R3_J_-_>' RT]c[2pIh%!̿+/ǤJ|ꢔEs`>eZ&YZ%l__|W]Q׃Zaxө>碸KkrgIJݕhJH&pڡ2nx"G)/`_!elH_tcH^ MPGCn{[7ԁ6ԍa{=bBn|*az#u=F6b@,eWkAx ]pEWw#ؖ<=s$A^;gOVB-w88u)%@cPH~"Su'1$Vꑊ#˸*0x(=>W{㵋q(fU@4]R42L͏2*l_ZeY:.kȈr6Pm5.]CS{l0۫ۧ즽pEmX5|G$CTLiyt}P~'D⺪oat2_ bptL6^ye!gy| 1l/?dsZyl=7X5)Yg1Or8{HqQbRTKLWL -0id Hcmtcy|;{( )[M/e~1*_F3:/9ɫinlnhՆ׎鎼4W6H׫I )\^W/qLrbx3([ 0Gn\mVLUp{Iڃ9hRtV<čdaeײSip.D$UHJ/AfzQ dg 317""('7zyz P2NЏ<.p-bhpf_M].Ŧ*׻ q)1C rƲH~Et!N9 E)\|V>C4bBtYgѴ|cZ]"Ŧ\7$dmy0hH;95v_V"ՠB8І>;>m6]q:9)>5ʫӗ۲IR`>2^^ j|3LW.c#f^>} "h] %/G:&U}^T.`z%,%|p)`ɉ_G8wz7s< W֐膊\p3Onϝ'>NGjPDWx{+|bJxs骢6Mi mhYLeR+q)Cyqnv-$x4U޸98߸2fƶOwb/&BLLcj&%??/;p%>5+aӺwŌ۶IqP83#$L 4v{q݈+ -_pC^&*r>â lx_j:(B瞣2Q/6nk|CĞKG.$ hƹm]ʻ喻kkҩO\=WI-$F)nN5hs?_/SI s q%;\;M%u̞`s[&cdxUvٲ^wЎA຿J &^uةqfBX! K{tW x[#¹ꦨg%ň h ;۶Ç溍bΝP\~[ [@An=x55`Ô)tђҩrL ⬎3/ox Njм91Yq/ywsn$f#6? \ }v򽵯&3H8I%/^ _#MB஡A!zI$Q1y}0}o5x _vGb2uiIdLR$\5fTq)v4 #/*:8a}b&#ڔHN}СߓSCybR^O;4FԬFL?.Ah|oTPjE0 LiGndC̝;YkGӅ D%F2""ɝ)?N]xo/*-dMF9*c p,޳M g.މ5KM>K~6r'=~r<(-^W·koO AcCA !x77Sٙ77VŀhvM뙃Ԝ:5U!C߲hSrC{ @y! &"̚QxkkΔi~C !2fK{*21ŔO+*^:'w>DN͓F`kX;DP;ا5s&g㚃k+<, g%nLf{BCx`,+/x$ҫ&h*0VTU}nCar l1bpxR/2\<q 3@9cP5oAhk[@S⋳O\}s wMqp{~]]hin{Òb:j/VhSt2$*xs r+;mKܓw| WVVNBQ%q9MOu%> h )nYq&4^\a00 `tocӥ 6m$26lXJ\;LQRY|޼ۏVT\ Gv_ Gl q =g͛HrYZawzYn(I /xĬFd )S$!xc--q,9n4i)@믷V݁c/41b'&uḃ0djcTqWD`;mkDkrm#9?].-1654I/_! ZJ'N FO֪n,S+ַ^ ݋ى6.h$AX^y 8k]L;6H#M@&Oo:o΍36f1P8M-o} ̦c=q 9 \\ZMPf֒N\CxzNGX@/C!_:>jQ }pIUە3fkmOVvHqqi,IwtJ T>[# QS=,=_im$S`&˲y ?O.q7= 6.0.3.1 [\#97](https://github.com/kyledecot/app_store_connect/pull/97) ([kyledecot](https://github.com/kyledecot)) - Bump activesupport from 5.2.3 to 6.0.3.1 [\#95](https://github.com/kyledecot/app_store_connect/pull/95) ([dependabot[bot]](https://github.com/apps/dependabot)) ## [v0.20.0](https://github.com/kyledecot/app_store_connect/tree/v0.20.0) (2020-02-17) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.19.0...v0.20.0) **Merged pull requests:** - add support for parsing gzip responses [\#93](https://github.com/kyledecot/app_store_connect/pull/93) ([addbrick](https://github.com/addbrick)) ## [v0.19.0](https://github.com/kyledecot/app_store_connect/tree/v0.19.0) (2019-10-26) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.18.0...v0.19.0) **Closed issues:** - How do I set GET query parameters? [\#90](https://github.com/kyledecot/app_store_connect/issues/90) **Merged pull requests:** - Symbolize/Underscore Response [\#91](https://github.com/kyledecot/app_store_connect/pull/91) ([kyledecot](https://github.com/kyledecot)) - Add Client::Utils [\#88](https://github.com/kyledecot/app_store_connect/pull/88) ([kyledecot](https://github.com/kyledecot)) ## [v0.18.0](https://github.com/kyledecot/app_store_connect/tree/v0.18.0) (2019-10-22) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.17.0...v0.18.0) **Merged pull requests:** - Track Version [\#87](https://github.com/kyledecot/app_store_connect/pull/87) ([kyledecot](https://github.com/kyledecot)) - Update Rubocop [\#86](https://github.com/kyledecot/app_store_connect/pull/86) ([kyledecot](https://github.com/kyledecot)) ## [v0.17.0](https://github.com/kyledecot/app_store_connect/tree/v0.17.0) (2019-10-22) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.16.0...v0.17.0) **Implemented enhancements:** - Adds Script to Publish to Github Package Registry/Rubygems.org [\#81](https://github.com/kyledecot/app_store_connect/pull/81) ([kyledecot](https://github.com/kyledecot)) **Fixed bugs:** - Fix Client Option Merging [\#85](https://github.com/kyledecot/app_store_connect/pull/85) ([kyledecot](https://github.com/kyledecot)) **Closed issues:** - Key Not Found :schema [\#84](https://github.com/kyledecot/app_store_connect/issues/84) **Merged pull requests:** - Use bin/publish in Workflow [\#83](https://github.com/kyledecot/app_store_connect/pull/83) ([kyledecot](https://github.com/kyledecot)) - Update Workflows [\#82](https://github.com/kyledecot/app_store_connect/pull/82) ([kyledecot](https://github.com/kyledecot)) ## [v0.16.0](https://github.com/kyledecot/app_store_connect/tree/v0.16.0) (2019-10-18) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.15.0...v0.16.0) **Fixed bugs:** - Use send for \#define\_method [\#80](https://github.com/kyledecot/app_store_connect/pull/80) ([kyledecot](https://github.com/kyledecot)) **Closed issues:** - require 'app\_store\_connect' failed [\#78](https://github.com/kyledecot/app_store_connect/issues/78) ## [v0.15.0](https://github.com/kyledecot/app_store_connect/tree/v0.15.0) (2019-09-25) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.14.0...v0.15.0) **Merged pull requests:** - Update publish.yml [\#79](https://github.com/kyledecot/app_store_connect/pull/79) ([kyledecot](https://github.com/kyledecot)) ## [v0.14.0](https://github.com/kyledecot/app_store_connect/tree/v0.14.0) (2019-09-20) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.13.0...v0.14.0) **Merged pull requests:** - ActiveSupport [\#77](https://github.com/kyledecot/app_store_connect/pull/77) ([kyledecot](https://github.com/kyledecot)) - Add Schema::Object [\#76](https://github.com/kyledecot/app_store_connect/pull/76) ([kyledecot](https://github.com/kyledecot)) - Remove Rake [\#75](https://github.com/kyledecot/app_store_connect/pull/75) ([kyledecot](https://github.com/kyledecot)) - Extract Usage from Client [\#74](https://github.com/kyledecot/app_store_connect/pull/74) ([kyledecot](https://github.com/kyledecot)) ## [v0.13.0](https://github.com/kyledecot/app_store_connect/tree/v0.13.0) (2019-09-13) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.12.2...v0.13.0) **Merged pull requests:** - Remove Dynamic Type Classes [\#73](https://github.com/kyledecot/app_store_connect/pull/73) ([kyledecot](https://github.com/kyledecot)) - Replaces Travis CI w/ Github Actions [\#72](https://github.com/kyledecot/app_store_connect/pull/72) ([kyledecot](https://github.com/kyledecot)) - Renames Workflows [\#71](https://github.com/kyledecot/app_store_connect/pull/71) ([kyledecot](https://github.com/kyledecot)) - Add Lint Workflow [\#70](https://github.com/kyledecot/app_store_connect/pull/70) ([kyledecot](https://github.com/kyledecot)) - Adds Test Workflow [\#69](https://github.com/kyledecot/app_store_connect/pull/69) ([kyledecot](https://github.com/kyledecot)) ## [v0.12.2](https://github.com/kyledecot/app_store_connect/tree/v0.12.2) (2019-09-04) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.12.1...v0.12.2) **Merged pull requests:** - Fix Open Ended Dependencies [\#68](https://github.com/kyledecot/app_store_connect/pull/68) ([kyledecot](https://github.com/kyledecot)) ## [v0.12.1](https://github.com/kyledecot/app_store_connect/tree/v0.12.1) (2019-09-04) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.12.0...v0.12.1) **Merged pull requests:** - Add Action [\#58](https://github.com/kyledecot/app_store_connect/pull/58) ([kyledecot](https://github.com/kyledecot)) ## [v0.12.0](https://github.com/kyledecot/app_store_connect/tree/v0.12.0) (2019-08-28) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.11.0...v0.12.0) **Merged pull requests:** - Add Analytics [\#65](https://github.com/kyledecot/app_store_connect/pull/65) ([kyledecot](https://github.com/kyledecot)) - Add GET Endpoints [\#64](https://github.com/kyledecot/app_store_connect/pull/64) ([kyledecot](https://github.com/kyledecot)) - Add Remaining DELETE Endpoints [\#63](https://github.com/kyledecot/app_store_connect/pull/63) ([kyledecot](https://github.com/kyledecot)) - Delete User [\#62](https://github.com/kyledecot/app_store_connect/pull/62) ([kyledecot](https://github.com/kyledecot)) - Add Finance Reports [\#61](https://github.com/kyledecot/app_store_connect/pull/61) ([kyledecot](https://github.com/kyledecot)) ## [v0.11.0](https://github.com/kyledecot/app_store_connect/tree/v0.11.0) (2019-08-23) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.10.0...v0.11.0) **Merged pull requests:** - Add Sales Reports [\#60](https://github.com/kyledecot/app_store_connect/pull/60) ([kyledecot](https://github.com/kyledecot)) - Add CamelCase Support to Query [\#59](https://github.com/kyledecot/app_store_connect/pull/59) ([kyledecot](https://github.com/kyledecot)) - Refactors Client [\#57](https://github.com/kyledecot/app_store_connect/pull/57) ([kyledecot](https://github.com/kyledecot)) - Adds Schema::Type [\#56](https://github.com/kyledecot/app_store_connect/pull/56) ([kyledecot](https://github.com/kyledecot)) ## [v0.10.0](https://github.com/kyledecot/app_store_connect/tree/v0.10.0) (2019-08-20) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.9.0...v0.10.0) **Merged pull requests:** - Rename invite\_user to create\_user\_invitation [\#55](https://github.com/kyledecot/app_store_connect/pull/55) ([kyledecot](https://github.com/kyledecot)) - Add Certificate/Device/Profile Create [\#54](https://github.com/kyledecot/app_store_connect/pull/54) ([kyledecot](https://github.com/kyledecot)) - Config -\> Schema [\#53](https://github.com/kyledecot/app_store_connect/pull/53) ([kyledecot](https://github.com/kyledecot)) ## [v0.9.0](https://github.com/kyledecot/app_store_connect/tree/v0.9.0) (2019-08-19) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.8.0...v0.9.0) **Merged pull requests:** - Add List/Show for Devices [\#52](https://github.com/kyledecot/app_store_connect/pull/52) ([kyledecot](https://github.com/kyledecot)) - Add List/Delete Bundle ID Capabilities [\#51](https://github.com/kyledecot/app_store_connect/pull/51) ([kyledecot](https://github.com/kyledecot)) - Add DELETE support [\#50](https://github.com/kyledecot/app_store_connect/pull/50) ([kyledecot](https://github.com/kyledecot)) ## [v0.8.0](https://github.com/kyledecot/app_store_connect/tree/v0.8.0) (2019-08-14) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.7.0...v0.8.0) **Merged pull requests:** - Use inherited hook [\#49](https://github.com/kyledecot/app_store_connect/pull/49) ([kyledecot](https://github.com/kyledecot)) - Add .DS\_Store to .gitignore [\#48](https://github.com/kyledecot/app_store_connect/pull/48) ([kyledecot](https://github.com/kyledecot)) - Cleanup [\#47](https://github.com/kyledecot/app_store_connect/pull/47) ([kyledecot](https://github.com/kyledecot)) - Remove HTTParty [\#46](https://github.com/kyledecot/app_store_connect/pull/46) ([kyledecot](https://github.com/kyledecot)) - Use Net/HTTP for GET Requests [\#45](https://github.com/kyledecot/app_store_connect/pull/45) ([kyledecot](https://github.com/kyledecot)) ## [v0.7.0](https://github.com/kyledecot/app_store_connect/tree/v0.7.0) (2019-08-13) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.6.0...v0.7.0) **Implemented enhancements:** - Read ENVs [\#44](https://github.com/kyledecot/app_store_connect/pull/44) ([kyledecot](https://github.com/kyledecot)) **Merged pull requests:** - Add WebServiceEndpoint [\#43](https://github.com/kyledecot/app_store_connect/pull/43) ([kyledecot](https://github.com/kyledecot)) - Dynamic Client [\#42](https://github.com/kyledecot/app_store_connect/pull/42) ([kyledecot](https://github.com/kyledecot)) - Add Config [\#41](https://github.com/kyledecot/app_store_connect/pull/41) ([kyledecot](https://github.com/kyledecot)) - Add Property Module [\#38](https://github.com/kyledecot/app_store_connect/pull/38) ([kyledecot](https://github.com/kyledecot)) ## [v0.6.0](https://github.com/kyledecot/app_store_connect/tree/v0.6.0) (2019-07-06) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.5.0...v0.6.0) **Merged pull requests:** - Remove CLI [\#37](https://github.com/kyledecot/app_store_connect/pull/37) ([kyledecot](https://github.com/kyledecot)) ## [v0.5.0](https://github.com/kyledecot/app_store_connect/tree/v0.5.0) (2019-07-05) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.4.0...v0.5.0) **Merged pull requests:** - Refactor FactoryNotRegistered [\#36](https://github.com/kyledecot/app_store_connect/pull/36) ([kyledecot](https://github.com/kyledecot)) - Add B Builder Concept [\#35](https://github.com/kyledecot/app_store_connect/pull/35) ([kyledecot](https://github.com/kyledecot)) - Add Factory spec [\#34](https://github.com/kyledecot/app_store_connect/pull/34) ([kyledecot](https://github.com/kyledecot)) - Add CapabilityType [\#32](https://github.com/kyledecot/app_store_connect/pull/32) ([kyledecot](https://github.com/kyledecot)) - Add CertificateType [\#31](https://github.com/kyledecot/app_store_connect/pull/31) ([kyledecot](https://github.com/kyledecot)) - Add UserRole and Shared Example [\#30](https://github.com/kyledecot/app_store_connect/pull/30) ([kyledecot](https://github.com/kyledecot)) - Add Config [\#29](https://github.com/kyledecot/app_store_connect/pull/29) ([kyledecot](https://github.com/kyledecot)) - Add Enum Type Factory [\#28](https://github.com/kyledecot/app_store_connect/pull/28) ([kyledecot](https://github.com/kyledecot)) - Move fixtures and factories into spec/support [\#27](https://github.com/kyledecot/app_store_connect/pull/27) ([kyledecot](https://github.com/kyledecot)) - Update .travis.yml [\#25](https://github.com/kyledecot/app_store_connect/pull/25) ([kyledecot](https://github.com/kyledecot)) - Update authorization.rb [\#24](https://github.com/kyledecot/app_store_connect/pull/24) ([kyledecot](https://github.com/kyledecot)) - Configures simplecov [\#23](https://github.com/kyledecot/app_store_connect/pull/23) ([kyledecot](https://github.com/kyledecot)) - Adds CodeClimate Test Coverage Integration Travis [\#22](https://github.com/kyledecot/app_store_connect/pull/22) ([kyledecot](https://github.com/kyledecot)) - Adds specs for Authorization\#token [\#21](https://github.com/kyledecot/app_store_connect/pull/21) ([kyledecot](https://github.com/kyledecot)) - Updates BundleIdRequest\#to\_h to conditionally include seed\_id [\#20](https://github.com/kyledecot/app_store_connect/pull/20) ([kyledecot](https://github.com/kyledecot)) - Adds spec for Authorization\#payload [\#19](https://github.com/kyledecot/app_store_connect/pull/19) ([kyledecot](https://github.com/kyledecot)) - Update issue templates [\#18](https://github.com/kyledecot/app_store_connect/pull/18) ([kyledecot](https://github.com/kyledecot)) - Removes sudo: false from .travis.yml [\#17](https://github.com/kyledecot/app_store_connect/pull/17) ([kyledecot](https://github.com/kyledecot)) - Updates .ruby-version [\#16](https://github.com/kyledecot/app_store_connect/pull/16) ([kyledecot](https://github.com/kyledecot)) - Uses Default Travis Settings [\#15](https://github.com/kyledecot/app_store_connect/pull/15) ([kyledecot](https://github.com/kyledecot)) - Adds spec for /users [\#14](https://github.com/kyledecot/app_store_connect/pull/14) ([kyledecot](https://github.com/kyledecot)) - Adds Webmock [\#13](https://github.com/kyledecot/app_store_connect/pull/13) ([kyledecot](https://github.com/kyledecot)) ## [v0.4.0](https://github.com/kyledecot/app_store_connect/tree/v0.4.0) (2019-06-21) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.3.2...v0.4.0) **Merged pull requests:** - Adds limit query param to users [\#10](https://github.com/kyledecot/app_store_connect/pull/10) ([coreycarvalho](https://github.com/coreycarvalho)) - Adds Guard [\#9](https://github.com/kyledecot/app_store_connect/pull/9) ([kyledecot](https://github.com/kyledecot)) ## [v0.3.2](https://github.com/kyledecot/app_store_connect/tree/v0.3.2) (2019-06-21) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.3.1...v0.3.2) **Merged pull requests:** - Fix error in sending user invitations [\#8](https://github.com/kyledecot/app_store_connect/pull/8) ([atareshawty](https://github.com/atareshawty)) ## [v0.3.1](https://github.com/kyledecot/app_store_connect/tree/v0.3.1) (2019-06-21) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.3.0...v0.3.1) **Merged pull requests:** - Adds Rubygems Description [\#7](https://github.com/kyledecot/app_store_connect/pull/7) ([kyledecot](https://github.com/kyledecot)) ## [v0.3.0](https://github.com/kyledecot/app_store_connect/tree/v0.3.0) (2019-06-21) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.2.0...v0.3.0) **Merged pull requests:** - Update client to take private\_key string [\#6](https://github.com/kyledecot/app_store_connect/pull/6) ([atareshawty](https://github.com/atareshawty)) - Adds Build Status to README.md [\#5](https://github.com/kyledecot/app_store_connect/pull/5) ([kyledecot](https://github.com/kyledecot)) - Adds Rubocop [\#4](https://github.com/kyledecot/app_store_connect/pull/4) ([kyledecot](https://github.com/kyledecot)) - Adds BundleIdCreateRequest [\#2](https://github.com/kyledecot/app_store_connect/pull/2) ([kyledecot](https://github.com/kyledecot)) - Adds ability to invite users [\#1](https://github.com/kyledecot/app_store_connect/pull/1) ([coreycarvalho](https://github.com/coreycarvalho)) ## [v0.2.0](https://github.com/kyledecot/app_store_connect/tree/v0.2.0) (2019-06-06) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/v0.1.0...v0.2.0) ## [v0.1.0](https://github.com/kyledecot/app_store_connect/tree/v0.1.0) (2019-03-01) [Full Changelog](https://github.com/kyledecot/app_store_connect/compare/f462ff35c61e0d95bf987b9915df9488c68512c7...v0.1.0) \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)* app-store-connect-0.37.0/LICENSE.txt0000644000175000017500000000206514411772371016035 0ustar vinayvinayThe MIT License (MIT) Copyright (c) 2019 Kyle Decot Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. app-store-connect-0.37.0/Rakefile0000644000175000017500000000024614411772371015656 0ustar vinayvinay# frozen_string_literal: true require 'rspec/core/rake_task' Dir.glob('lib/tasks/*.rake').each { |r| load r } RSpec::Core::RakeTask.new(:spec) task default: :spec app-store-connect-0.37.0/lib/0000755000175000017500000000000014411772371014755 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect.rb0000644000175000017500000000425114411772371021011 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/client' require 'app_store_connect/object/type' require 'app_store_connect/object/id' require 'app_store_connect/object/attributes' require 'app_store_connect/object/properties' require 'app_store_connect/object/data' require 'app_store_connect/version' require 'app_store_connect/app_store_version_build_linkage_request' require 'app_store_connect/app_store_version_create_request' require 'app_store_connect/app_store_version_phased_release_create_request' require 'app_store_connect/app_store_version_phased_release_update_request' require 'app_store_connect/app_store_version_release_request_create_request' require 'app_store_connect/app_store_version_update_request' require 'app_store_connect/build_update_request' require 'app_store_connect/bundle_id_capability_create_request' require 'app_store_connect/bundle_id_create_request' require 'app_store_connect/certificate_create_request' require 'app_store_connect/device_create_request' require 'app_store_connect/requests/v1/in_app_purchase_localization/create' require 'app_store_connect/requests/v1/in_app_purchase_localization/update' require 'app_store_connect/requests/v1/in_app_purchase_price_schedule/create' require 'app_store_connect/requests/v1/in_app_purchase_review_screenshot/create' require 'app_store_connect/requests/v1/in_app_purchase_submission/create' require 'app_store_connect/requests/v2/in_app_purchase/create' require 'app_store_connect/requests/v2/in_app_purchase/update' require 'app_store_connect/profile_create_request' require 'app_store_connect/beta_build_localization_create_request' require 'app_store_connect/beta_build_localization_modify_request' require 'app_store_connect/review_submission_create_request' require 'app_store_connect/review_submission_item_create_request' require 'app_store_connect/review_submission_update_request' require 'app_store_connect/user_invitation_create_request' module AppStoreConnect @config = {} class << self attr_accessor :config def rel(id, type, array: false) if array { data: [{ id: id, type: type }] }.freeze else { data: { id: id, type: type } }.freeze end end end end app-store-connect-0.37.0/lib/app_store_connect/0000755000175000017500000000000014411772371020462 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect/schema.rb0000644000175000017500000000124114411772371022245 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/schema/type' require 'app_store_connect/schema/object' require 'app_store_connect/schema/web_service_endpoint' module AppStoreConnect class Schema attr_reader :types, :web_service_endpoints, :objects def initialize(path) schema = JSON.parse(File.read(path)).deep_symbolize_keys @types = schema[:types].map do |options| Type.new(options) end @web_service_endpoints = schema[:web_service_endpoints].map do |options| WebServiceEndpoint.new(options) end @objects = schema[:objects].map do |options| Object.new(options) end end end end app-store-connect-0.37.0/lib/app_store_connect/app_store_version_create_request.rb0000644000175000017500000000066114411772371027646 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class AppStoreVersionCreateRequest < CreateRequest data do type 'appStoreVersions' attributes do property :copyright property :earliest_release_date property :platform, required: true property :release_type property :version_string, required: true end end end end app-store-connect-0.37.0/lib/app_store_connect/app_store_version_update_request.rb0000644000175000017500000000063614411772371027667 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class AppStoreVersionUpdateRequest < CreateRequest data do id type 'appStoreVersions' attributes do property :copyright property :earliest_release_date property :release_type property :version_string property :downloadable end end end end app-store-connect-0.37.0/lib/app_store_connect/profile_create_request.rb0000644000175000017500000000047014411772371025543 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class ProfileCreateRequest < CreateRequest data do type 'profiles' attributes do property :name, required: true property :profile_type, required: true end end end end app-store-connect-0.37.0/lib/app_store_connect/build_update_request.rb0000644000175000017500000000045614411772371025225 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class BuildUpdateRequest < CreateRequest data do id type 'builds' attributes do property :expired property :uses_non_exempt_encryption end end end end app-store-connect-0.37.0/lib/app_store_connect/app_store_version_build_linkage_request.rb0000644000175000017500000000034214411772371031170 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class AppStoreVersionBuildLinkageRequest < CreateRequest data do id :build_id type 'builds' end end end app-store-connect-0.37.0/lib/app_store_connect/bundle_id_create_request.rb0000644000175000017500000000057514411772371026036 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class BundleIdCreateRequest < CreateRequest data do type 'bundleIds' attributes do property :identifier, required: true property :name, required: true property :platform, required: true property :seed_id end end end end app-store-connect-0.37.0/lib/app_store_connect/user_invitation_create_request.rb0000644000175000017500000000074314411772371027330 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class UserInvitationCreateRequest < CreateRequest data do type 'userInvitations' attributes do property :first_name, required: true property :last_name, required: true property :email, required: true property :roles, required: true property :all_apps_visible property :provisioning_allowed end end end end app-store-connect-0.37.0/lib/app_store_connect/create_request.rb0000644000175000017500000000037514411772371024027 0ustar vinayvinay# frozen_string_literal: true module AppStoreConnect class CreateRequest def self.inherited(klass) super klass.include(Object::Data) end def initialize(**kwargs) @data = self.class::Data.new(**kwargs) end end end app-store-connect-0.37.0/lib/app_store_connect/client/0000755000175000017500000000000014411772371021740 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect/client/authorization.rb0000644000175000017500000000140014411772371025160 0ustar vinayvinay# frozen_string_literal: true require 'jwt' module AppStoreConnect class Client class Authorization OPTIONS = %i[key_id issuer_id private_key].freeze AUDIENCE = 'appstoreconnect-v1' ALGORITHM = 'ES256' attr_reader(*OPTIONS) def initialize(options) @key_id = options.fetch(:key_id) @issuer_id = options.fetch(:issuer_id) @private_key = OpenSSL::PKey.read(options.fetch(:private_key)) end def payload { exp: Time.now.to_i + 20 * 60, iss: issuer_id, aud: AUDIENCE } end def header_fields { kid: key_id } end def token JWT.encode(payload, private_key, ALGORITHM, header_fields) end end end end app-store-connect-0.37.0/lib/app_store_connect/client/registry.rb0000644000175000017500000000047214411772371024140 0ustar vinayvinay# frozen_string_literal: true require 'delegate' module AppStoreConnect class Client class Registry < SimpleDelegator OPTIONS = %i[schema].freeze def initialize(options = {}) super(options.fetch(:schema).web_service_endpoints.map { |s| [s.alias, s] }.to_h) end end end end app-store-connect-0.37.0/lib/app_store_connect/client/options.rb0000644000175000017500000000177514411772371023772 0ustar vinayvinay# frozen_string_literal: true require 'delegate' module AppStoreConnect class Client class Options < SimpleDelegator attr_reader :kwargs, :config, :env DEFAULTS = { analytics_enabled: true, schema: Schema.new(File.join(__dir__, '..', '..', 'config', 'schema.json')) }.freeze private_constant :DEFAULTS ENV_REGEXP = /APP_STORE_CONNECT_(?[A-Z_]+)/.freeze private_constant :ENV_REGEXP def initialize(kwargs = {}) @kwargs = kwargs @config = build_config @env = build_env options = DEFAULTS.merge(@env.merge(@config.merge(kwargs))) super(options) end private def build_config AppStoreConnect.config.dup end def build_env {}.tap do |hash| ENV.each do |key, value| match = key.match(ENV_REGEXP) next unless match hash[match[:suffix].downcase.to_sym] = value end end end end end end app-store-connect-0.37.0/lib/app_store_connect/client/utils.rb0000644000175000017500000000150514411772371023426 0ustar vinayvinay# frozen_string_literal: true module AppStoreConnect class Client class Utils def self.encode(hash) hash .deep_transform_keys { |s| s.to_s.camelize(:lower) } .to_json end # Right now this only supports gzip and json responses. # If you need to support a different type then add it. def self.decode(string, content_type = 'application/json') decoded_data = nil case content_type when 'application/a-gzip' sio = StringIO.new string gz = Zlib::GzipReader.new sio decoded_data = gz.read else # Assume JSON decoded_data = JSON .parse(string) .deep_transform_keys { |k| k.underscore.to_sym } end decoded_data end end end end app-store-connect-0.37.0/lib/app_store_connect/bundle_id_capability_create_request.rb0000644000175000017500000000045314411772371030232 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class BundleIdCapabilityCreateRequest < CreateRequest data do type 'bundleIdCapabilities' attributes do property :capability_type, required: true end end end end app-store-connect-0.37.0/lib/app_store_connect/modify_request.rb0000644000175000017500000000037314411772371024051 0ustar vinayvinay# frozen_string_literal: true module AppStoreConnect class ModifyRequest def self.inherited(klass) super klass.include(Object::Data) end def initialize(**kwargs) @data = self.class::Data.new(kwargs) end end end app-store-connect-0.37.0/lib/app_store_connect/app_store_version_phased_release_update_request.rb0000644000175000017500000000047414411772371032713 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class AppStoreVersionPhasedReleaseUpdateRequest < CreateRequest data do id type 'appStoreVersionPhasedReleases' attributes do property :phased_release_state end end end end app-store-connect-0.37.0/lib/app_store_connect/device_create_request.rb0000644000175000017500000000053114411772371025340 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class DeviceCreateRequest < CreateRequest data do type 'devices' attributes do property :name, required: true property :platform, required: true property :udid, required: true end end end end app-store-connect-0.37.0/lib/app_store_connect/requests/0000755000175000017500000000000014411772371022335 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect/requests/v2/0000755000175000017500000000000014411772371022664 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect/requests/v2/in_app_purchase/0000755000175000017500000000000014411772371026024 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect/requests/v2/in_app_purchase/create.rb0000644000175000017500000000116514411772371027617 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect module Requests module V2 module InAppPurchase class Create < CreateRequest data do type 'inAppPurchases' attributes do property :name, required: true property :product_id, required: true property :in_app_purchase_type, required: true property :available_in_all_territories property :family_sharable property :review_note end end end end end end end app-store-connect-0.37.0/lib/app_store_connect/requests/v2/in_app_purchase/update.rb0000644000175000017500000000100414411772371027626 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect module Requests module V2 module InAppPurchase class Update < CreateRequest data do id type 'inAppPurchases' attributes do property :name property :available_in_all_territories property :family_sharable property :review_note end end end end end end end app-store-connect-0.37.0/lib/app_store_connect/requests/v1/0000755000175000017500000000000014411772371022663 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect/requests/v1/in_app_purchase_review_screenshot/0000755000175000017500000000000014411772371031641 5ustar vinayvinay././@LongLink0000644000000000000000000000014700000000000011605 Lustar rootrootapp-store-connect-0.37.0/lib/app_store_connect/requests/v1/in_app_purchase_review_screenshot/create.rbapp-store-connect-0.37.0/lib/app_store_connect/requests/v1/in_app_purchase_review_screenshot/create.0000644000175000017500000000074314411772371033111 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect module Requests module V1 module InAppPurchaseReviewScreenshot class Create < CreateRequest data do type 'inAppPurchaseAppStoreReviewScreenshots' attributes do property :file_name, required: true property :file_size, required: true end end end end end end end app-store-connect-0.37.0/lib/app_store_connect/requests/v1/in_app_purchase_submission/0000755000175000017500000000000014411772371030276 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect/requests/v1/in_app_purchase_submission/create.rb0000644000175000017500000000050014411772371032061 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect module Requests module V1 module InAppPurchaseSubmission class Create < CreateRequest data do type 'inAppPurchaseSubmissions' end end end end end end app-store-connect-0.37.0/lib/app_store_connect/requests/v1/in_app_purchase_localization/0000755000175000017500000000000014411772371030573 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect/requests/v1/in_app_purchase_localization/create.rb0000644000175000017500000000075714411772371032374 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect module Requests module V1 module InAppPurchaseLocalization class Create < CreateRequest data do type 'inAppPurchaseLocalizations' attributes do property :description property :locale, required: true property :name, required: true end end end end end end end app-store-connect-0.37.0/lib/app_store_connect/requests/v1/in_app_purchase_localization/update.rb0000644000175000017500000000067714411772371032414 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect module Requests module V1 module InAppPurchaseLocalization class Update < CreateRequest data do id type 'inAppPurchaseLocalizations' attributes do property :description property :name end end end end end end end app-store-connect-0.37.0/lib/app_store_connect/requests/v1/in_app_purchase_price_schedule/0000755000175000017500000000000014411772371031061 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect/requests/v1/in_app_purchase_price_schedule/create.rb0000644000175000017500000000050614411772371032652 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect module Requests module V1 module InAppPurchasePriceSchedule class Create < CreateRequest data do type 'inAppPurchasePriceSchedules' end end end end end end app-store-connect-0.37.0/lib/app_store_connect/review_submission_item_create_request.rb0000644000175000017500000000033514411772371030675 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class ReviewSubmissionItemCreateRequest < CreateRequest data do type 'reviewSubmissionItems' end end end app-store-connect-0.37.0/lib/app_store_connect/app_store_version_phased_release_create_request.rb0000644000175000017500000000046314411772371032672 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class AppStoreVersionPhasedReleaseCreateRequest < CreateRequest data do type 'appStoreVersionPhasedReleases' attributes do property :phased_release_state end end end end app-store-connect-0.37.0/lib/app_store_connect/request.rb0000644000175000017500000000356514411772371022510 0ustar vinayvinay# frozen_string_literal: true require 'net/http' module AppStoreConnect class Request class UnsupportedHTTPMethod < ArgumentError def initialize(http_method) super "Unsupported HTTP Method: #{http_method}" end end def initialize(**options) @uri = options.fetch(:uri) @options = options end def execute Net::HTTP.start(uri.host, uri.port, net_http_options) do |http| http.request(request) end end private def web_service_endpoint @options.fetch(:web_service_endpoint) end def query return unless http_method == :get names = url_parameter_names(web_service_endpoint) kwargs .reject { |n| names.include?(n) } .deep_transform_keys { |k| k.to_s.camelize(:lower) } .to_query end def http_method @options.fetch(:http_method).to_sym end def net_http_options { use_ssl: uri.scheme == 'https' } end def kwargs @options.fetch(:kwargs, {}) end def uri @options.fetch(:uri).tap do |uri| uri.query = query if http_method == :get end end def headers @options.fetch(:headers, {}) end def body return if http_method == :get @options.fetch(:http_body) end def url_parameter_names(web_service_endpoint) web_service_endpoint .url .scan(/(\{(\w+)\})/) .map { |_, n| n.to_sym } end def net_http_request_class case http_method when :get then Net::HTTP::Get when :post then Net::HTTP::Post when :delete then Net::HTTP::Delete when :patch then Net::HTTP::Patch else raise UnsupportedHTTPMethod, http_method end end def request net_http_request_class .new(uri, headers) .tap { |r| r.body = body if r.request_body_permitted? } end end end app-store-connect-0.37.0/lib/app_store_connect/version.rb0000644000175000017500000000011714411772371022473 0ustar vinayvinay# frozen_string_literal: true module AppStoreConnect VERSION = '0.37.0' end app-store-connect-0.37.0/lib/app_store_connect/object/0000755000175000017500000000000014411772371021730 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect/object/type.rb0000644000175000017500000000057014411772371023240 0ustar vinayvinay# frozen_string_literal: true require 'active_support/concern' module AppStoreConnect module Object module Type extend ActiveSupport::Concern class_methods do def type(type) @type = type end end included do def type self.class.instance_variable_get('@type') end end end end end app-store-connect-0.37.0/lib/app_store_connect/object/attributes.rb0000644000175000017500000000215014411772371024441 0ustar vinayvinay# frozen_string_literal: true require 'active_support/concern' module AppStoreConnect module Object module Attributes extend ActiveSupport::Concern class_methods do def attributes(&block) self::Attributes.class_eval(&block) end end included do attr_reader :attributes klass = Class.new do |attributes| include Object::Properties attributes.send(:define_method, :initialize) do |**kwargs| self.class.properties.each do |name, options| raise ArgumentError, "#{name} required" if options[:required] && !kwargs[name] value = kwargs.fetch(name, options[:default]) instance_variable_set("@#{name}", value) end end def to_h {}.tap do |hash| self.class.properties.each_key do |name| value = instance_variable_get("@#{name}") hash[name] = value unless value.nil? end end end end const_set('Attributes', klass) end end end end app-store-connect-0.37.0/lib/app_store_connect/object/data.rb0000644000175000017500000000223014411772371023163 0ustar vinayvinay# frozen_string_literal: true require 'active_support/concern' module AppStoreConnect module Object module Data extend ActiveSupport::Concern included do attr_reader :data klass = Class.new do |data| include Object::Attributes include Object::Type include Object::Id data.send(:define_method, :initialize) do |**kwargs| instance_variable_set('@relationships', kwargs.delete(:relationships).to_h) instance_variable_set('@attributes', data::Attributes.new(**kwargs)) instance_variable_set('@id', kwargs[id_arg_name]) end def to_h props = { relationships: @relationships, attributes: attributes.to_h, type: type } props[:id] = @id if id? props.reject { |_k, v| v.blank? } end end const_set('Data', klass) def to_h { data: data.to_h } end end class_methods do def data(&block) self::Data.class_eval(&block) end end end end end app-store-connect-0.37.0/lib/app_store_connect/object/properties.rb0000644000175000017500000000062614411772371024455 0ustar vinayvinay# frozen_string_literal: true require 'active_support/concern' module AppStoreConnect module Object module Properties extend ActiveSupport::Concern class_methods do def properties @properties ||= {} end def property(name, options = {}) properties[name] = options attr_accessor name.to_sym end end end end end app-store-connect-0.37.0/lib/app_store_connect/object/id.rb0000644000175000017500000000103314411772371022646 0ustar vinayvinay# frozen_string_literal: true require 'active_support/concern' module AppStoreConnect module Object module Id extend ActiveSupport::Concern class_methods do def id(arg_name = :id) @include_id_in_body = true @id_arg_name = arg_name end end included do def id? self.class.instance_variable_get('@include_id_in_body') end def id_arg_name self.class.instance_variable_get('@id_arg_name') end end end end end app-store-connect-0.37.0/lib/app_store_connect/certificate_create_request.rb0000644000175000017500000000051314411772371026363 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class CertificateCreateRequest < CreateRequest data do type 'certificates' attributes do property :certificate_type, required: true property :csr_content, required: true end end end end app-store-connect-0.37.0/lib/app_store_connect/app_store_version_release_request_create_request.rb0000644000175000017500000000035714411772371033120 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class AppStoreVersionReleaseRequestCreateRequest < CreateRequest data do type 'appStoreVersionReleaseRequests' end end end app-store-connect-0.37.0/lib/app_store_connect/review_submission_create_request.rb0000644000175000017500000000043714411772371027662 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class ReviewSubmissionCreateRequest < CreateRequest data do type 'reviewSubmissions' attributes do property :platform, required: true end end end end app-store-connect-0.37.0/lib/app_store_connect/client.rb0000644000175000017500000000501214411772371022263 0ustar vinayvinay# frozen_string_literal: true require 'active_support/all' require 'app_store_connect/request' require 'app_store_connect/schema' require 'app_store_connect/client/authorization' require 'app_store_connect/client/options' require 'app_store_connect/client/registry' require 'app_store_connect/client/utils' module AppStoreConnect class Client def initialize(**kwargs) @options = Options.new(kwargs) @authorization = Authorization.new(@options.slice(*Authorization::OPTIONS)) @registry = Registry.new(@options.slice(*Registry::OPTIONS)) end def respond_to_missing?(method_name, include_private = false) web_service_endpoint_aliases.include?(method_name) || super end def method_missing(method_name, **kwargs) super unless web_service_endpoint_aliases.include?(method_name) web_service_endpoint = web_service_endpoint_by(method_name) call(web_service_endpoint, **kwargs) end # :nocov: def inspect "#<#{self.class.name}:#{object_id}>" end # :nocov: def web_service_endpoint_aliases @registry.keys end private def call(web_service_endpoint, **kwargs) raise "invalid http method: #{web_service_endpoint.http_method}" unless %i[get delete post patch].include?(web_service_endpoint.http_method) request = build_request(web_service_endpoint, **kwargs) response = request.execute Utils.decode(response.body, response.content_type) if response.body end def build_uri(web_service_endpoint, **kwargs) URI(web_service_endpoint .url .gsub(/(\{(\w+)\})/) { kwargs.fetch(Regexp.last_match(2).to_sym) }) end def web_service_endpoint_by(alias_sym) @registry[alias_sym] end def http_body(web_service_endpoint, **kwargs) Utils.encode("AppStoreConnect::#{web_service_endpoint.http_body_type}" .constantize .new(**kwargs) .to_h) end def build_request(web_service_endpoint, **kwargs) options = { kwargs: kwargs, web_service_endpoint: web_service_endpoint, http_method: web_service_endpoint.http_method, uri: build_uri(web_service_endpoint, **kwargs), headers: headers } options[:http_body] = http_body(web_service_endpoint, **kwargs) if %i[post patch].include?(web_service_endpoint.http_method) Request.new(**options) end def headers { 'Authorization' => "Bearer #{@authorization.token}", 'Content-Type' => 'application/json' } end end end app-store-connect-0.37.0/lib/app_store_connect/beta_build_localization_modify_request.rb0000644000175000017500000000043214411772371030767 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/modify_request' module AppStoreConnect class BetaBuildLocalizationModifyRequest < ModifyRequest data do type 'betaBuildLocalizations' attributes do property :whats_new end end end end app-store-connect-0.37.0/lib/app_store_connect/review_submission_update_request.rb0000644000175000017500000000046414411772371027701 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class ReviewSubmissionUpdateRequest < CreateRequest data do id type 'reviewSubmissions' attributes do property :canceled property :submitted end end end end app-store-connect-0.37.0/lib/app_store_connect/beta_build_localization_create_request.rb0000644000175000017500000000050314411772371030742 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/create_request' module AppStoreConnect class BetaBuildLocalizationCreateRequest < CreateRequest data do type 'betaBuildLocalizations' attributes do property :locale, required: true property :whats_new end end end end app-store-connect-0.37.0/lib/app_store_connect/schema/0000755000175000017500000000000014411772371021722 5ustar vinayvinayapp-store-connect-0.37.0/lib/app_store_connect/schema/type.rb0000644000175000017500000000042714411772371023233 0ustar vinayvinay# frozen_string_literal: true module AppStoreConnect class Schema class Type attr_reader :type, :options, :values def initialize(options) @type = options[:type] @values = options[:values] @options = options end end end end app-store-connect-0.37.0/lib/app_store_connect/schema/object.rb0000644000175000017500000000041414411772371023514 0ustar vinayvinay# frozen_string_literal: true module AppStoreConnect class Schema class Object attr_reader :type, :properties def initialize(options) @type = options.fetch(:type) @properties = options.fetch(:properties) end end end end app-store-connect-0.37.0/lib/app_store_connect/schema/web_service_endpoint.rb0000644000175000017500000000066514411772371026453 0ustar vinayvinay# frozen_string_literal: true module AppStoreConnect class Schema class WebServiceEndpoint def initialize(options) @options = options end def alias @options.fetch(:alias).to_sym end def http_method @options[:http_method].to_sym end def http_body_type @options[:http_body_type] end def url @options[:url] end end end end app-store-connect-0.37.0/lib/config/0000755000175000017500000000000014411772371016222 5ustar vinayvinayapp-store-connect-0.37.0/lib/config/schema.json0000644000175000017500000007744214411772371020373 0ustar vinayvinay{ "objects": [], "web_service_endpoints": [ { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/users/{id}", "alias": "delete_user" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/users/{id}/relationships/visibleApps", "alias": "delete_visible_app" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/bundleIdCapabilities/{id}", "alias": "delete_bundle_id_capability" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/userInvitations/{id}", "alias": "delete_user_invitation" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/certificates/{id}", "alias": "delete_certificate" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/bundleIds/{id}", "alias": "delete_bundle_id" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/profiles/{id}", "alias": "delete_profile" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters/{id}", "alias": "delete_beta_tester" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters/{id}/relationships/betaGroups", "alias": "delete_beta_tester_beta" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters/{id}/relationships/builds", "alias": "delete_beta_tester_builds" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters/{id}/relationships/apps", "alias": "delete_beta_tester_apps" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/betaGroups/{id}", "alias": "delete_beta_group" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/betaGroups/{id}/relationships/betaTesters", "alias": "delete_beta_group_beta_testers" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/betaGroups/{id}/relationships/builds", "alias": "delete_beta_group_builds" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/relationships/betaTesters", "alias": "delete_app_beta_testers" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/betaAppLocalizations/{id}", "alias": "delete_beta_app_localization" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/relationships/betaGroups", "alias": "delete_build_beta_group" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/relationships/individualTesters", "alias": "delete_build_individual_testers" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/betaBuildLocalizations/{id}", "alias": "delete_beta_build_localizations" }, { "alias": "create_certificate", "http_method": "post", "url": "https://api.appstoreconnect.apple.com/v1/certificates", "http_body_type": "CertificateCreateRequest" }, { "alias": "create_profile", "http_method": "post", "url": "https://api.appstoreconnect.apple.com/v1/profiles", "http_body_type": "ProfileCreateRequest" }, { "alias": "create_device", "http_method": "post", "url": "https://api.appstoreconnect.apple.com/v1/devices", "http_body_type": "DeviceCreateRequest" }, { "alias": "create_user_invitation", "url": "https://api.appstoreconnect.apple.com/v1/userInvitations", "http_body_type": "UserInvitationCreateRequest", "http_method": "post" }, { "alias": "create_bundle_id", "url": "https://api.appstoreconnect.apple.com/v1/bundleIds", "http_body_type": "BundleIdCreateRequest", "http_method": "post" }, { "alias": "create_bundle_id_capability", "url": "https://api.appstoreconnect.apple.com/v1/bundleIdCapabilities", "http_body_type": "BundleIdCapabilityCreateRequest", "http_method": "post" }, { "alias": "create_beta_build_localization", "url": "https://api.appstoreconnect.apple.com/v1/betaBuildLocalizations", "http_body_type": "BetaBuildLocalizationCreateRequest", "http_method": "post" }, { "alias": "modify_beta_build_localization", "url": "https://api.appstoreconnect.apple.com/v1/betaBuildLocalizations/{id}", "http_body_type": "BetaBuildLocalizationModifyRequest", "http_method": "patch" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/users", "alias": "users" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/users/{id}", "alias": "user" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/users/{id}/visibleApps", "alias": "user_visible_apps" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/users/{id}/relationships/visibleApps", "alias": "user_relationships_visible_apps" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/userInvitations/{id}", "alias": "user_invitation" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/userInvitations", "alias": "user_invitations" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/userInvitations/{id}/visibleApps", "alias": "user_invitation_visible_apps" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/userInvitations/{id}/relationships/visibleApps", "alias": "user_invitation_relationships_visible_apps" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/bundleIds/{id}", "alias": "bundle_id" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/bundleIds", "alias": "bundle_ids" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/bundleIds/{id}/relationships/profiles", "alias": "bundle_id_relationships_profiles" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/bundleIds/{id}/bundleIdCapabilities", "alias": "bundle_id_bundle_id_capabilities" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/bundleIds/{id}/profiles", "alias": "bundle_id_profiles" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/bundleIds/{id}/relationships/bundleIdCapabilities", "alias": "bundle_id_relationships_bundle_id_capabilities" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/certificates", "alias": "certificates" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/certificates/{id}", "alias": "certificate" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/devices", "alias": "devices" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/devices/{id}", "alias": "device" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/financeReports", "alias": "financial_reports" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/salesReports", "alias": "sales_reports" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/profiles", "alias": "profiles" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/profiles/{id}", "alias": "profile" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/profiles/{id}/bundleId", "alias": "profile_bundle_id" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/profiles/{id}/relationships/bundleId", "alias": "profile_relationships_bundle_id" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/profiles/{id}/relationships/certificates", "alias": "profile_relationships_certificates" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/profiles/{id}/devices", "alias": "profile_devices" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/profiles/{id}/certificates", "alias": "profile_certificates" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/profiles/{id}/relationships/devices", "alias": "profile_relationships_devices" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters", "alias": "beta_testers" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters/{id}", "alias": "beta_tester" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters/{id}/apps", "alias": "beta_tester_apps" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters/{id}/builds", "alias": "beta_tester_builds" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters/{id}/relationships/builds", "alias": "beta_tester_relationships_builds" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters/{id}/relationships/apps", "alias": "beta_tester_relationships_apps" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters/{id}/betaGroups", "alias": "beta_tester_beta_groups" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaTesters/{id}/relationships/betaGroups", "alias": "beta_tester_relationships_beta_groups" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps", "alias": "apps" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}", "alias": "app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/pricePoints", "alias": "app_price_points" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v2/inAppPurchases/{id}", "alias": "in_app_purchase" }, { "alias": "create_in_app_purchase", "http_body_type": "Requests::V2::InAppPurchase::Create", "http_method": "post", "url": "https://api.appstoreconnect.apple.com/v2/inAppPurchases" }, { "alias": "update_in_app_purchase", "http_body_type": "Requests::V2::InAppPurchase::Update", "http_method": "patch", "url": "https://api.appstoreconnect.apple.com/v2/inAppPurchases/{id}" }, { "alias": "delete_in_app_purchase", "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v2/inAppPurchases/{id}" }, { "alias": "create_in_app_purchase_submission", "http_body_type": "Requests::V1::InAppPurchaseSubmission::Create", "http_method": "post", "url": "https://api.appstoreconnect.apple.com/v1/inAppPurchaseSubmissions" }, { "alias": "review_screenshot_for_in_app_purchase", "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/inAppPurchaseAppStoreReviewScreenshots/{id}" }, { "alias": "in_app_purchase_review_screenshot", "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v2/inAppPurchases/{id}/appStoreReviewScreenshot" }, { "alias": "create_in_app_purchase_review_screenshot", "http_body_type": "Requests::V1::InAppPurchaseReviewScreenshot::Create", "http_method": "post", "url": "https://api.appstoreconnect.apple.com/v1/inAppPurchaseAppStoreReviewScreenshots" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/inAppPurchasesV2", "alias": "app_in_app_purchases" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v2/inAppPurchases/{id}/pricePoints", "alias": "in_app_purchase_price_points" }, { "alias": "create_in_app_purchase_price_schedule", "http_body_type": "Requests::V1::InAppPurchasePriceSchedule::Create", "http_method": "post", "url": "https://api.appstoreconnect.apple.com/v1/inAppPurchasePriceSchedules" }, { "alias": "in_app_purchase_price_schedule", "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/inAppPurchasePriceSchedules/{id}" }, { "alias": "in_app_purchase_current_price_point", "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/inAppPurchasePriceSchedules/{id}/manualPrices" }, { "alias": "in_app_purchase_localizations", "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v2/inAppPurchases/{id}/inAppPurchaseLocalizations" }, { "alias": "in_app_purchase_localization", "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/inAppPurchaseLocalizations/{id}" }, { "alias": "create_in_app_purchase_localization", "http_body_type": "Requests::V1::InAppPurchaseLocalization::Create", "http_method": "post", "url": "https://api.appstoreconnect.apple.com/v1/inAppPurchaseLocalizations" }, { "alias": "update_in_app_purchase_localization", "http_body_type": "Requests::V1::InAppPurchaseLocalization::Update", "http_method": "patch", "url": "https://api.appstoreconnect.apple.com/v1/inAppPurchaseLocalizations/{id}" }, { "alias": "delete_in_app_purchase_localization", "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/inAppPurchaseLocalizations/{id}" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/betaGroups", "alias": "app_beta_groups" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/relationships/betaGroups", "alias": "app_relationships_beta_groups" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/builds", "alias": "app_builds" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/relationships/builds", "alias": "app_relationships_builds" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/preReleaseVersions", "alias": "app_pre_release_versions" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/relationships/preReleaseVersions", "alias": "app_relationships_pre_release_versions" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/betaAppReviewDetail", "alias": "app_beta_app_review_detail" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/betaLicenseAgreement", "alias": "app_beta_license_agreement" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/betaAppLocalizations", "alias": "app_beta_app_localizations" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/relationships/betaAppReviewDetail", "alias": "app_relationships_beta_app_review_detail" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/relationships/betaLicenseAgreement", "alias": "app_relationships_beta_license_agreement" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/relationships/betaAppLocalizations", "alias": "app_relationships_beta_app_localizations" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/preReleaseVersions", "alias": "pre_release_versions" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/preReleaseVersions/{id}", "alias": "pre_release_version" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/preReleaseVersions/{id}/relationships/app", "alias": "pre_release_version_relationships_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/preReleaseVersions/{id}/builds", "alias": "pre_release_version_builds" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/preReleaseVersions/{id}/app", "alias": "pre_release_version_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/preReleaseVersions/{id}/relationships/builds", "alias": "pre_release_version_relationships_builds" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaGroups", "alias": "beta_groups" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaGroups/{id}", "alias": "beta_group" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaGroups/{id}/app", "alias": "beta_group_apps" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaGroups/{id}/relationships/app", "alias": "beta_group_relationships_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaGroups/{id}/betaTesters", "alias": "beta_group_beta_testers" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaGroups/{id}/relationships/builds", "alias": "beta_group_relationships_builds" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaGroups/{id}/relationships/betaTesters", "alias": "beta_group_relationships_beta_testers" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds", "alias": "builds" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}", "alias": "build" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/app", "alias": "build_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaGroups/{id}/builds", "alias": "beta_group_builds" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/preReleaseVersion", "alias": "build_pre_release_version" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/relationships/preReleaseVersion", "alias": "build_relationships_pre_release_version" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/relationships/app", "alias": "build_relationships_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/individualTesters", "alias": "build_individual_testers" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/relationships/betaAppReviewSubmission", "alias": "build_relationships_beta_app_review_submission" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/relationships/individualTesters", "alias": "build_relationships_individual_testers" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/buildBetaDetail", "alias": "build_build_beta_detail" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/relationships/buildBetaDetail", "alias": "build_relationships_build_beta_detail" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/betaAppReviewSubmission", "alias": "build_beta_app_review_submission" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/relationships/appEncryptionDeclaration", "alias": "build_relationships_app_encryption_declaration" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/betaBuildLocalizations", "alias": "build_beta_build_localizations" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/relationships/betaBuildLocalizations", "alias": "build_relationships_beta_build_localizations" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}/appEncryptionDeclaration", "alias": "build_app_encryption_declaration" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/appEncryptionDeclarations", "alias": "app_encryption_declarations" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/appEncryptionDeclarations/{id}", "alias": "app_encryption_declaration" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/appEncryptionDeclarations/{id}/app", "alias": "app_encryption_declaration_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/appEncryptionDeclarations/{id}/relationships/app", "alias": "app_encryption_declaration_relationships_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/buildBetaDetails", "alias": "build_beta_details" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/buildBetaDetails/{id}", "alias": "build_beta_detail" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/buildBetaDetails/{id}/build", "alias": "build_beta_detail_build" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/buildBetaDetails/{id}/relationships/build", "alias": "build_beta_detail_relationships_build" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppLocalizations", "alias": "beta_app_localizations" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppLocalizations/{id}/app", "alias": "beta_app_localization_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppLocalizations/{id}", "alias": "beta_app_localization" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppLocalizations/{id}/relationships/app", "alias": "beta_app_localization_relationships_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaLicenseAgreements", "alias": "beta_license_agreements" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaLicenseAgreements/{id}/relationships/app", "alias": "beta_license_agreement_relationships_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaLicenseAgreements/{id}/app", "alias": "beta_license_agreement_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaLicenseAgreements/{id}", "alias": "beta_license_agreement" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaBuildLocalizations/{id}/relationships/build", "alias": "beta_build_localization_relationships_build" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaBuildLocalizations/{id}/build", "alias": "beta_build_localization_build" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaBuildLocalizations", "alias": "beta_build_localizations" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaBuildLocalizations/{id}", "alias": "beta_build_localization" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppReviewDetails", "alias": "beta_app_review_details" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppReviewDetails/{id}", "alias": "beta_app_review_detail" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppReviewDetails/{id}/relationships/app", "alias": "beta_app_review_detail_relationships_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppReviewDetails/{id}/app", "alias": "beta_app_review_detail_app" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppReviewSubmissions", "alias": "beta_app_review_submissions" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppReviewSubmissions/{id}", "alias": "beta_app_review_submission" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppReviewSubmissions/{id}/relationships/build", "alias": "beta_app_review_submission_relationships_build" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/betaAppReviewSubmissions/{id}/build", "alias": "beta_app_review_submission_build" }, { "http_method": "patch", "url": "https://api.appstoreconnect.apple.com/v1/builds/{id}", "http_body_type": "BuildUpdateRequest", "alias": "update_build" }, { "url": "https://api.appstoreconnect.apple.com/v1/appStoreVersions", "http_body_type": "AppStoreVersionCreateRequest", "http_method": "post", "alias": "create_app_store_version" }, { "http_method": "patch", "url": "https://api.appstoreconnect.apple.com/v1/appStoreVersions/{id}", "http_body_type": "AppStoreVersionUpdateRequest", "alias": "update_app_store_version" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/appStoreVersions/{id}", "alias": "delete_app_store_version" }, { "http_method": "patch", "url": "https://api.appstoreconnect.apple.com/v1/appStoreVersions/{id}/relationships/build", "http_body_type": "AppStoreVersionBuildLinkageRequest", "alias": "update_app_store_version_build" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/apps/{id}/appStoreVersions", "alias": "apps_app_store_versions" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/appStoreVersions/{id}", "alias": "app_store_version" }, { "url": "https://api.appstoreconnect.apple.com/v1/appStoreVersionReleaseRequests", "http_body_type": "AppStoreVersionReleaseRequestCreateRequest", "http_method": "post", "alias": "create_app_store_version_release_request" }, { "url": "https://api.appstoreconnect.apple.com/v1/appStoreVersionPhasedReleases", "http_body_type": "AppStoreVersionPhasedReleaseCreateRequest", "http_method": "post", "alias": "create_app_store_version_phased_release" }, { "http_method": "patch", "url": "https://api.appstoreconnect.apple.com/v1/appStoreVersionPhasedReleases/{id}", "http_body_type": "AppStoreVersionPhasedReleaseUpdateRequest", "alias": "update_app_store_version_phased_release" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/appStoreVersionPhasedReleases/{id}", "alias": "delete_app_store_version_phased_release" }, { "url": "https://api.appstoreconnect.apple.com/v1/reviewSubmissions", "http_body_type": "ReviewSubmissionCreateRequest", "http_method": "post", "alias": "create_review_submission" }, { "http_method": "patch", "url": "https://api.appstoreconnect.apple.com/v1/reviewSubmissions/{id}", "http_body_type": "ReviewSubmissionUpdateRequest", "alias": "update_review_submission" }, { "http_method": "delete", "url": "https://api.appstoreconnect.apple.com/v1/reviewSubmissions/{id}", "alias": "delete_review_submission" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/reviewSubmissions", "alias": "review_submissions" }, { "http_method": "get", "url": "https://api.appstoreconnect.apple.com/v1/reviewSubmissions/{id}", "alias": "review_submission" }, { "url": "https://api.appstoreconnect.apple.com/v1/reviewSubmissionItems", "http_body_type": "ReviewSubmissionItemCreateRequest", "http_method": "post", "alias": "create_review_submission_item" }, { "url": "https://api.appstoreconnect.apple.com/v1/reviewSubmissions/{id}/items", "http_method": "get", "alias": "review_submissions_items" } ], "types": [ { "type": "BundleIdPlatform", "values": [ "IOS", "MAC_OS" ] }, { "type": "CapabilityType", "values": [ "ICLOUD", "IN_APP_PURCHASE", "GAME_CENTER", "PUSH_NOTIFICATIONS", "WALLET", "INTER_APP_AUDIO", "MAPS", "ASSOCIATED_DOMAINS", "PERSONAL_VPN", "APP_GROUPS", "HEALTHKIT", "HOMEKIT", "WIRELESS_ACCESSORY_CONFIGURATION", "APPLE_PAY", "DATA_PROTECTION", "SIRIKIT", "NETWORK_EXTENSIONS", "MULTIPATH", "HOT_SPOT", "NFC_TAG_READING", "CLASSKIT", "AUTOFILL_CREDENTIAL_PROVIDER", "ACCESS_WIFI_INFORMATION" ] }, { "type": "CertificateType", "values": [ "OS_DEVELOPMENT", "IOS_DISTRIBUTION", "MAC_APP_DISTRIBUTION", "MAC_INSTALLER_DISTRIBUTION", "MAC_APP_DEVELOPMENT", "DEVELOPER_ID_KEXT", "DEVELOPER_ID_APPLICATION" ] }, { "type": "InAppPurchaseType", "values": [ "CONSUMABLE", "NON_CONSUMABLE", "NON_RENEWING_SUBSCRIPTION" ] }, { "type": "Platform", "values": [ "IOS", "MAC_OS", "TV_OS" ] }, { "type": "PhasedReleaseState", "values": [ "INACTIVE", "ACTIVE", "PAUSED", "COMPLETE" ] }, { "type": "UserRole", "values": [ "ADMIN", "FINANCE", "TECHNICAL", "SALES", "MARKETING", "DEVELOPER", "ACCOUNT_HOLDER", "READ_ONLY", "APP_MANAGER", "ACCESS_TO_REPORTS", "CUSTOMER_REPORTS" ] } ] } app-store-connect-0.37.0/lib/tasks/0000755000175000017500000000000014411772371016102 5ustar vinayvinayapp-store-connect-0.37.0/lib/tasks/release.rake0000644000175000017500000000101114411772371020357 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/version' desc 'Release' task :release do version_increment, = Rake::Task['version:increment'].invoke version = version_increment.call Rake::Task['bundle:install'].invoke Rake::Task['changelog'].invoke("v#{version}") Rake::Task['git:add'].invoke('-A') Rake::Task['git:commit'].invoke("v#{version}") Rake::Task['git:tag'].invoke("v#{version}") Rake::Task['git:push'].invoke('origin main') Rake::Task['git:push'].invoke("origin v#{version}") end app-store-connect-0.37.0/lib/tasks/bundle.rake0000644000175000017500000000014614411772371020220 0ustar vinayvinay# frozen_string_literal: true namespace :bundle do task :install do `bundle install` end end app-store-connect-0.37.0/lib/tasks/git.rake0000644000175000017500000000056114411772371017533 0ustar vinayvinay# frozen_string_literal: true namespace :git do task :add, [:extra] do |_task, args| `git add #{args[:extra]}` end task :commit, [:message] do |_task, args| `git commit -m "#{args[:message]}"` end task :tag, [:tag] do |_task, args| `git tag #{args[:tag]}` end task :push, [:extra] do |_task, args| `git push #{args[:extra]}` end end app-store-connect-0.37.0/lib/tasks/version.rake0000644000175000017500000000122014411772371020426 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/version' require 'semantic' namespace :version do desc 'Print current version' task :current do puts AppStoreConnect::VERSION end desc 'Increment version' task :increment do version = Semantic::Version.new(AppStoreConnect::VERSION) path = File.expand_path(File.join('..', 'app_store_connect', 'version.rb'), __dir__) new_version = version.increment!(:minor).to_s File.open(path, 'r+') do |file| contents = file.read contents.gsub!(AppStoreConnect::VERSION, new_version) file.rewind file.write(contents) new_version end end end app-store-connect-0.37.0/lib/tasks/push.rake0000644000175000017500000000070314411772371017725 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/version' version = AppStoreConnect::VERSION desc "Push app_store_connect-#{version}.gem" task :push, [:key] do |_task, args| args.with_defaults(key: 'rubygems') key = args.key.to_sym host = { rubygems: 'https://rubygems.org', github: 'https://rubygems.pkg.github.com/kyledecot' }.fetch(key) sh %(gem push --key=#{key} --host=#{host} app_store_connect-#{version}.gem) end app-store-connect-0.37.0/lib/tasks/build.rake0000644000175000017500000000030214411772371020040 0ustar vinayvinay# frozen_string_literal: true require 'app_store_connect/version' desc "Build app_store_connect-#{AppStoreConnect::VERSION}.gem" task :build do sh %(gem build app_store_connect.gemspec) end app-store-connect-0.37.0/lib/tasks/changelog.rake0000644000175000017500000000075714411772371020706 0ustar vinayvinay# frozen_string_literal: true require 'github_changelog_generator' task :changelog, [:release] do |_task, args| options = GitHubChangelogGenerator::Parser.default_options options[:user] = 'kyledecot' options[:project] = 'app_store_connect' options[:future_release] = args[:release] generator = GitHubChangelogGenerator::Generator.new(options) log = generator.compound_changelog output_filename = 'CHANGELOG.md' File.open(output_filename, 'w') { |file| file.write(log) } end app-store-connect-0.37.0/lib/tasks/console.rake0000644000175000017500000000024314411772371020407 0ustar vinayvinay# frozen_string_literal: true require 'pry' require 'app_store_connect' desc 'Start a pry console' task :console do Pry.start(AppStoreConnect::Client.new) end app-store-connect-0.37.0/Guardfile0000644000175000017500000000052714411772371016040 0ustar vinayvinay# frozen_string_literal: true guard :rspec, cmd: 'bundle exec rspec' do require 'guard/rspec/dsl' dsl = Guard::RSpec::Dsl.new(self) rspec = dsl.rspec watch(rspec.spec_helper) { rspec.spec_dir } watch(rspec.spec_support) { rspec.spec_dir } watch(rspec.spec_files) ruby = dsl.ruby dsl.watch_spec_files_for(ruby.lib_files) end app-store-connect-0.37.0/.rubocop.yml0000644000175000017500000000141414411772371016461 0ustar vinayvinay# The behavior of RuboCop can be controlled via the .rubocop.yml # configuration file. It makes it possible to enable/disable # certain cops (checks) and to alter their behavior if they accept # any parameters. The file can be placed either in your home # directory or in some project directory. # # RuboCop will start looking for the configuration file in the directory # where the inspected file is and continue its way up to the root directory. # # See https://github.com/rubocop-hq/rubocop/blob/master/manual/configuration.md # AllCops: NewCops: disable TargetRubyVersion: 2.7 Metrics/MethodLength: Enabled: false Metrics/BlockLength: Enabled: false Style/Documentation: Enabled: false Layout/LineLength: Enabled: false Metrics/ClassLength: Enabled: false app-store-connect-0.37.0/.rspec0000644000175000017500000000006514411772371015325 0ustar vinayvinay--format documentation --color --require spec_helper app-store-connect-0.37.0/app_store_connect.gemspec0000644000175000017500000000304614411772371021264 0ustar vinayvinay# frozen_string_literal: true lib = File.expand_path('lib', __dir__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'app_store_connect/version' Gem::Specification.new do |spec| spec.name = 'app_store_connect' spec.version = AppStoreConnect::VERSION spec.authors = ['Kyle Decot'] spec.email = ['kyle.decot@icloud.com'] spec.summary = 'A Ruby interface to the App Store Connect API' spec.homepage = 'https://github.com/kyledecot/app_store_connect' spec.license = 'MIT' spec.files = Dir.chdir(File.expand_path(__dir__)) do `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } end spec.require_paths = ['lib'] spec.required_ruby_version = '>= 2.7.0' spec.add_runtime_dependency 'activesupport', '>= 6.0.0' spec.add_runtime_dependency 'jwt', '>= 1.4' spec.add_development_dependency 'bundler' spec.add_development_dependency 'factory_bot', '~> 6.2.1' spec.add_development_dependency 'github_changelog_generator', '1.16.4' spec.add_development_dependency 'guard-rspec', '~> 4.7.3' spec.add_development_dependency 'pry', '~> 0.14.1' spec.add_development_dependency 'rake', '~> 13.0.6' spec.add_development_dependency 'rspec', '~> 3.11.0' spec.add_development_dependency 'rubocop', '~> 1.36.0' spec.add_development_dependency 'semantic', '~> 1.6.1' spec.add_development_dependency 'simplecov', '~> 0.21.2' spec.add_development_dependency 'timecop', '~> 0.9.5' spec.add_development_dependency 'webmock', '~> 3.18.1' end app-store-connect-0.37.0/.ruby-version0000644000175000017500000000001314411772371016646 0ustar vinayvinayruby-2.7.6 app-store-connect-0.37.0/Gemfile0000644000175000017500000000010614411772371015477 0ustar vinayvinay# frozen_string_literal: true source 'https://rubygems.org' gemspec app-store-connect-0.37.0/README.md0000644000175000017500000001516614411772371015477 0ustar vinayvinay

App Store Connect for Ruby

[![CI/CD](https://github.com/kyledecot/app_store_connect/actions/workflows/default.yml/badge.svg)](https://github.com/kyledecot/app_store_connect/actions/workflows/default.yml)
A Ruby interface to the [App Store Connect API](https://developer.apple.com/app-store-connect/api/) ## Installation Add this line to your application's Gemfile: ```Ruby gem 'app_store_connect' ``` And then execute: ```Bash $ bundle ``` Or install it yourself as: ```Bash $ gem install app_store_connect ``` ## Usage ```ruby AppStoreConnect.config = { issuer_id: 'issuer_id', key_id: 'key_id', private_key: File.read(File.new("/Path/AuthKey.p8")) } app_store_connect = AppStoreConnect::Client.new app_store_connect.apps app_store_connect.app(id: '1234') app_store_connect.builds(id: '1234') ``` ### Create Bundle ID ```ruby app_store_connect.create_bundle_id( name: 'Example', identifier: 'com.kyledecot.Example', platform: 'IOS' ) ``` ### Sales Reports ```ruby app_store_connect.sales_reports( filter: { report_type: 'SALES', report_sub_type: 'SUMMARY', frequency: 'DAILY', vendor_number: '123456' } ) ``` ### Fetch All Devices ```ruby devices = app_store_connect.devices puts JSON.pretty_generate(devices) ``` ### Register a New Device ```ruby created_device = app_store_connect.create_device( name: 'name', platform: 'IOS', udid: 'udid' ) puts JSON.pretty_generate(created_device) ``` ### Update an App Store Version ```ruby app_store_connect.update_app_store_version( id: '', version_string: '1.0' ) ``` ### Link a Build to an App Store Version ```ruby app_store_connect.update_app_store_version_build( id: '', build_id: '' ) ``` ### Create a Review Submission Item ```ruby app_store_connect.create_review_submission_item( relationships: { reviewSubmission: { data: { id: '', type: 'reviewSubmissions' } }, appStoreVersion: { data: { id: '', type: 'appStoreVersions' } } } ) ``` ### Create In-App Purchase Price Schedule ```ruby app_store_connect.create_in_app_purchase_price_schedule(relationships: { manual_prices: { data: [ { type: 'inAppPurchasePrices', id: '${price1}' } ] }, in_app_purchase: { data: { type: 'inAppPurchases', id: '' } } }, included: [ { type: 'inAppPurchasePrices', id: '${price1}', attributes: { startDate: nil }, relationships: { inAppPurchaseV2: { data: { type: 'inAppPurchases', id: '' } }, inAppPurchasePricePoint: { data: { type: 'inAppPurchasePricePoints', id: '' } } } } ]) ``` ## FAQ ### How to understand the `devices, sales_reports, create_bundle_id` keyword seen in the demo? It's function key from `schema.json` file. ### How to understand `()` in the demo, and when should use it? eg: `create_bundle_id()`, `sales_reports()` `()` is mean: you have mapped to `http_body_type` in file `schema.json` ### How to set this content in `()` `http_body_type` have a value type. Based on this value, we can find the definition of the relevant configuration in the source code of ruby. ### How to include related resources? ```ruby app_store_connect.in_app_purchase(id: 123, include: 'appStoreReviewScreenshot,pricePoints') ``` ### How to filter fields? ```ruby app_store_connect.in_app_purchase(id: 123, fields: 'name,productId') ``` ## Development After checking out the repo, run `bundle install` to install dependencies. Then, run `rake spec` to run the tests. You can also run `rake console` for an interactive prompt that will allow you to experiment. ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/kyledecot/app_store_connect. ## License The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). app-store-connect-0.37.0/Gemfile.lock0000644000175000017500000001074514411772371016440 0ustar vinayvinayPATH remote: . specs: app_store_connect (0.37.0) activesupport (>= 6.0.0) jwt (>= 1.4) GEM remote: https://rubygems.org/ specs: activesupport (7.0.4.2) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) addressable (2.8.1) public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) async (1.30.3) console (~> 1.10) nio4r (~> 2.3) timers (~> 4.1) async-http (0.60.1) async (>= 1.25) async-io (>= 1.28) async-pool (>= 0.2) protocol-http (~> 0.24.0) protocol-http1 (~> 0.15.0) protocol-http2 (~> 0.15.0) traces (>= 0.8.0) async-http-faraday (0.11.0) async-http (~> 0.42) faraday async-io (1.34.3) async async-pool (0.3.12) async (>= 1.25) coderay (1.1.3) concurrent-ruby (1.2.0) console (1.16.2) fiber-local crack (0.4.5) rexml diff-lcs (1.5.0) docile (1.4.0) factory_bot (6.2.1) activesupport (>= 5.0.0) faraday (2.7.4) faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-http-cache (2.4.1) faraday (>= 0.8) faraday-net_http (3.0.2) ffi (1.15.5) fiber-local (1.0.0) formatador (1.1.0) github_changelog_generator (1.16.4) activesupport async (>= 1.25.0) async-http-faraday faraday-http-cache multi_json octokit (~> 4.6) rainbow (>= 2.2.1) rake (>= 10.0) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) lumberjack (>= 1.0.12, < 2.0) nenv (~> 0.1) notiffany (~> 0.0) pry (>= 0.13.0) shellany (~> 0.0) thor (>= 0.18.1) guard-compat (1.2.1) guard-rspec (4.7.3) guard (~> 2.1) guard-compat (~> 1.1) rspec (>= 2.99.0, < 4.0) hashdiff (1.0.1) i18n (1.12.0) concurrent-ruby (~> 1.0) json (2.6.2) jwt (2.7.0) listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) lumberjack (1.2.8) method_source (1.0.0) minitest (5.17.0) multi_json (1.15.0) nenv (0.3.0) nio4r (2.5.8) notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) octokit (4.25.1) faraday (>= 1, < 3) sawyer (~> 0.9) parallel (1.22.1) parser (3.1.2.1) ast (~> 2.4.1) protocol-hpack (1.4.2) protocol-http (0.24.0) protocol-http1 (0.15.0) protocol-http (~> 0.22) protocol-http2 (0.15.0) protocol-hpack (~> 1.4) protocol-http (~> 0.18) pry (0.14.1) coderay (~> 1.1) method_source (~> 1.0) public_suffix (5.0.0) rainbow (3.1.1) rake (13.0.6) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) regexp_parser (2.5.0) rexml (3.2.5) rspec (3.11.0) rspec-core (~> 3.11.0) rspec-expectations (~> 3.11.0) rspec-mocks (~> 3.11.0) rspec-core (3.11.0) rspec-support (~> 3.11.0) rspec-expectations (3.11.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) rspec-mocks (3.11.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) rspec-support (3.11.1) rubocop (1.36.0) json (~> 2.3) parallel (~> 1.10) parser (>= 3.1.2.1) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) rubocop-ast (>= 1.20.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.21.0) parser (>= 3.1.1.0) ruby-progressbar (1.11.0) ruby2_keywords (0.0.5) sawyer (0.9.2) addressable (>= 2.3.5) faraday (>= 0.17.3, < 3) semantic (1.6.1) shellany (0.0.1) simplecov (0.21.2) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) simplecov-html (0.12.3) simplecov_json_formatter (0.1.4) thor (1.2.1) timecop (0.9.5) timers (4.3.5) traces (0.8.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) unicode-display_width (2.3.0) webmock (3.18.1) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) PLATFORMS arm64-darwin-21 x86_64-darwin-22 x86_64-linux DEPENDENCIES app_store_connect! bundler factory_bot (~> 6.2.1) github_changelog_generator (= 1.16.4) guard-rspec (~> 4.7.3) pry (~> 0.14.1) rake (~> 13.0.6) rspec (~> 3.11.0) rubocop (~> 1.36.0) semantic (~> 1.6.1) simplecov (~> 0.21.2) timecop (~> 0.9.5) webmock (~> 3.18.1) BUNDLED WITH 2.3.24