shopify_app 14.4.4 → 18.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/ISSUE_TEMPLATE/bug-report.md +63 -0
  4. data/.github/ISSUE_TEMPLATE/config.yml +1 -0
  5. data/.github/ISSUE_TEMPLATE/feature-request.md +33 -0
  6. data/.github/PULL_REQUEST_TEMPLATE.md +17 -1
  7. data/.github/workflows/build.yml +41 -0
  8. data/.github/workflows/release.yml +24 -0
  9. data/.github/workflows/rubocop.yml +1 -7
  10. data/.gitignore +0 -2
  11. data/CHANGELOG.md +75 -0
  12. data/CONTRIBUTING.md +76 -0
  13. data/Gemfile.lock +268 -0
  14. data/README.md +73 -572
  15. data/app/assets/images/storage_access.svg +1 -2
  16. data/app/assets/javascripts/shopify_app/post_redirect.js +9 -0
  17. data/app/controllers/concerns/shopify_app/ensure_authenticated_links.rb +26 -0
  18. data/app/controllers/concerns/shopify_app/shop_access_scopes_verification.rb +32 -0
  19. data/app/controllers/shopify_app/callback_controller.rb +34 -10
  20. data/app/controllers/shopify_app/sessions_controller.rb +19 -20
  21. data/app/views/shopify_app/partials/_button_styles.html.erb +41 -36
  22. data/app/views/shopify_app/partials/_card_styles.html.erb +3 -3
  23. data/app/views/shopify_app/partials/_empty_state_styles.html.erb +28 -59
  24. data/app/views/shopify_app/partials/_form_styles.html.erb +56 -0
  25. data/app/views/shopify_app/partials/_layout_styles.html.erb +16 -1
  26. data/app/views/shopify_app/partials/_typography_styles.html.erb +6 -6
  27. data/app/views/shopify_app/sessions/enable_cookies.html.erb +1 -1
  28. data/app/views/shopify_app/sessions/new.html.erb +38 -110
  29. data/app/views/shopify_app/sessions/request_storage_access.html.erb +1 -1
  30. data/app/views/shopify_app/sessions/top_level_interaction.html.erb +20 -15
  31. data/app/views/shopify_app/shared/post_redirect_to_auth_shopify.html.erb +13 -0
  32. data/config/locales/de.yml +11 -11
  33. data/config/locales/nl.yml +1 -1
  34. data/config/locales/vi.yml +22 -0
  35. data/config/locales/zh-CN.yml +1 -1
  36. data/docs/Quickstart.md +15 -77
  37. data/docs/Releasing.md +9 -6
  38. data/docs/Troubleshooting.md +147 -4
  39. data/docs/Upgrading.md +126 -0
  40. data/docs/shopify_app/authentication.md +124 -0
  41. data/docs/shopify_app/engine.md +82 -0
  42. data/docs/shopify_app/generators.md +127 -0
  43. data/docs/shopify_app/handling-access-scopes-changes.md +14 -0
  44. data/docs/shopify_app/script-tags.md +28 -0
  45. data/docs/shopify_app/session-repository.md +88 -0
  46. data/docs/shopify_app/testing.md +38 -0
  47. data/docs/shopify_app/webhooks.md +72 -0
  48. data/lib/generators/shopify_app/home_controller/home_controller_generator.rb +16 -7
  49. data/lib/generators/shopify_app/home_controller/templates/home_controller.rb +10 -0
  50. data/lib/generators/shopify_app/home_controller/templates/index.html.erb +11 -11
  51. data/lib/generators/shopify_app/home_controller/templates/unauthenticated_home_controller.rb +2 -0
  52. data/lib/generators/shopify_app/install/install_generator.rb +36 -2
  53. data/lib/generators/shopify_app/install/templates/embedded_app.html.erb +2 -1
  54. data/lib/generators/shopify_app/install/templates/omniauth.rb +1 -0
  55. data/lib/generators/shopify_app/install/templates/shopify_app.js +1 -1
  56. data/lib/generators/shopify_app/install/templates/shopify_app.rb.tt +13 -4
  57. data/lib/generators/shopify_app/install/templates/shopify_provider.rb.tt +8 -0
  58. data/lib/generators/shopify_app/shop_model/shop_model_generator.rb +27 -0
  59. data/lib/generators/shopify_app/shop_model/templates/db/migrate/add_shop_access_scopes_column.erb +5 -0
  60. data/lib/generators/shopify_app/shop_model/templates/shop.rb +1 -1
  61. data/lib/generators/shopify_app/shopify_app_generator.rb +1 -1
  62. data/lib/generators/shopify_app/user_model/templates/db/migrate/add_user_access_scopes_column.erb +5 -0
  63. data/lib/generators/shopify_app/user_model/templates/user.rb +1 -1
  64. data/lib/generators/shopify_app/user_model/user_model_generator.rb +27 -0
  65. data/lib/shopify_app/access_scopes/noop_strategy.rb +13 -0
  66. data/lib/shopify_app/access_scopes/shop_strategy.rb +24 -0
  67. data/lib/shopify_app/access_scopes/user_strategy.rb +41 -0
  68. data/lib/shopify_app/configuration.rb +25 -0
  69. data/lib/shopify_app/controller_concerns/itp.rb +0 -2
  70. data/lib/shopify_app/controller_concerns/login_protection.rb +14 -17
  71. data/lib/shopify_app/engine.rb +1 -0
  72. data/lib/shopify_app/middleware/same_site_cookie_middleware.rb +1 -1
  73. data/lib/shopify_app/omniauth/omniauth_configuration.rb +64 -0
  74. data/lib/shopify_app/session/in_memory_shop_session_store.rb +9 -7
  75. data/lib/shopify_app/session/in_memory_user_session_store.rb +9 -7
  76. data/lib/shopify_app/session/jwt.rb +3 -1
  77. data/lib/shopify_app/session/shop_session_storage_with_scopes.rb +58 -0
  78. data/lib/shopify_app/session/user_session_storage_with_scopes.rb +58 -0
  79. data/lib/shopify_app/utils.rb +12 -0
  80. data/lib/shopify_app/version.rb +1 -1
  81. data/lib/shopify_app.rb +11 -0
  82. data/package.json +1 -1
  83. data/service.yml +1 -4
  84. data/shopify_app.gemspec +5 -4
  85. data/translation.yml +1 -1
  86. data/yarn.lock +92 -123
  87. metadata +62 -16
  88. data/.github/ISSUE_TEMPLATE.md +0 -19
  89. data/.travis.yml +0 -27
  90. data/docs/install-on-dev-shop.png +0 -0
  91. data/docs/test-your-app.png +0 -0
  92. data/lib/generators/shopify_app/install/templates/shopify_provider.rb +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a3962aefcffacf58b7e57836a66b40a7689d5fe64d754fe1b236081cfeefcda2
4
- data.tar.gz: 3f7200abedcd9598e08e7fcc816009acd236093c5a3ca011fa1d05684b31a1ed
3
+ metadata.gz: 2fcfa987c56d06c327c1cff6e12350711473a1a265844b6f4f3c32b696c1495e
4
+ data.tar.gz: 57b44743afc3e0175fe408ccfa688bc0b8c28d7b99db6fae5e6c7ab1a843ec9a
5
5
  SHA512:
6
- metadata.gz: a3c2eaf95a630a628de9252be8f1802b35ce57be387a5e5ae3e8047484432b5ed7b1af98b739911c1f6afa74b09c44b5f8589481ad699c6595ef95d5332952de
7
- data.tar.gz: 312ef3c7dd4013c17696289e9b8890e359d24753501468155cdb3ae63a7ff5a577d4b5f1a3f0606d438e78be655b0df791ccd45406d88485f5386db1a563d9af
6
+ metadata.gz: 583dbf51eaa3a3a600a410eca4d30fab58776709f6882908ed72af5da222163bbeaeba6805682ed95100abcce1217aceeba5851fa9cf00836b7a1f1201f30289
7
+ data.tar.gz: 8dcb0f7bceb2f4ec7bcbe8eb5f5d5bb294767fa5ead28b1d329ef34a5119fd835f99669480514473a5e184b91f9e79f4abd9941399b269faf5522ce6f69e6eb7
data/.github/CODEOWNERS CHANGED
@@ -1 +1,2 @@
1
1
  * @shopify/platform-dev-tools-education
2
+ * @shopify/app-foundations
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: Bug report
3
+ about: Report a technical issue with the Shopify App gem.
4
+ labels: bug
5
+ ---
6
+
7
+ <!--
8
+
9
+ Do you want to ask a question? Are you looking for support? The Shopify Community forum is the best place for getting support: https://community.shopify.com
10
+
11
+ You can also join the Partners Slack Community group: https://www.shopify.com/partners/community#conversation
12
+
13
+ Authentication Issues: A great deal of the issues surrounding this repo are around authenticating (installing) the generated app with Shopify.
14
+
15
+ If you are experiencing issues with your app authenticating/installing the best way to get help fast is to create a repo with the minimal amount of code to demonstrate the issue and a clearly documented set of steps you took to arrive there. This will help us solve your problem quicker since we won't need to spend any time figuring out how to reproduce the bug. Please also include your operating system and browser.
16
+
17
+ -->
18
+
19
+ ### Description
20
+
21
+ <!-- Description of the issue -->
22
+
23
+ ### Steps to Reproduce
24
+
25
+ 1. <!-- First Step -->
26
+ 2. <!-- Second Step -->
27
+ 3. <!-- and so on… -->
28
+
29
+ **Expected behavior:**
30
+
31
+ <!-- What you expect to happen -->
32
+
33
+ **Actual behavior:**
34
+
35
+ <!-- What actually happens -->
36
+
37
+ **Reproduces how often:**
38
+
39
+ <!-- What percentage of the time does it reproduce? -->
40
+
41
+ ### Browsers
42
+
43
+ <!-- Please specify the browser(s) you have tested that exhibit this behaviour. -->
44
+
45
+ ### Gem versions
46
+
47
+ <!-- Please specify which version(s) of the gem exhibit this behaviour. -->
48
+
49
+ ### Additional Information
50
+
51
+ <!-- Any additional information, configuration or data that might be necessary to reproduce the issue. See common examples of important information below. -->
52
+
53
+ <!-- - [x] My app relies on third-party cookies -->
54
+ <!-- - [x] My app is intended to be a non-embedded app -->
55
+ <!-- - [x] My app uses session tokens -->
56
+
57
+
58
+ ### Security
59
+
60
+ <!-- Please be certain to redact any private information from your logs or code snippets such as Api Keys, Api Secrets, and any authentication tokens such as shop_tokens. -->
61
+
62
+ - [ ] I have redacted any private information from my logs or code snippets.
63
+
@@ -0,0 +1 @@
1
+ blank_issues_enabled: false
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: Feature request
3
+ about: Request new functionality for the Shopify App gem.
4
+ labels: feature request
5
+ ---
6
+
7
+ <!--
8
+
9
+ Do you want to ask a question? Are you looking for support? The Shopify Community forum is the best place for getting support: https://community.shopify.com
10
+
11
+ You can also join the Partners Slack Community group: https://www.shopify.com/partners/community#conversation
12
+
13
+ ---
14
+
15
+ Please note that the team that maintains this gem has finite resources so it's unlikely that we'll work on feature requests. If we're interested in a particular feature however, we'll follow up and ask for more detail.
16
+
17
+ -->
18
+
19
+ ### Summary
20
+
21
+ <!-- One paragraph explanation of the feature or suggestions. -->
22
+
23
+ ### Motivation
24
+
25
+ <!-- Why is this feature or suggestion needed? What is the expected outcome? -->
26
+
27
+ ### Describe alternatives you've considered
28
+
29
+ <!-- A clear and concise description of the alternative solutions you've considered. -->
30
+
31
+ ### Additional context
32
+
33
+ <!-- Add any other context or screenshots about the feature request here. -->
@@ -1,6 +1,22 @@
1
+ ### What this PR does
2
+
3
+ <!-- Please describe what changes this PR introduces and why they're needed. -->
4
+
5
+ ### Reviewer's guide to testing
6
+
7
+ <!-- If this PR changes functionality, please list out steps to test your changes. This helps reviewers verify your changes are correct. -->
8
+
9
+ ### Things to focus on
10
+
11
+ 1. <!-- Focus on a particular file -->
12
+ 2. <!-- Is the test case correct? -->
13
+ 3. <!-- Etc. -->
14
+
15
+ ### Checklist
16
+
1
17
  Before submitting the PR, please consider if any of the following are needed:
2
18
 
3
19
  - [ ] Update `CHANGELOG.md` if the changes would impact users
4
20
  - [ ] Update `README.md`, if appropriate.
5
- - [ ] Update any relevant pages in `docs/`, if necessary
21
+ - [ ] Update any relevant pages in `/docs`, if necessary
6
22
  - [ ] For security fixes, the [Disclosure Policy](https://github.com/Shopify/shopify_app/blob/master/SECURITY.md#disclosure-policy) must be followed.
@@ -0,0 +1,41 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ build:
11
+ runs-on: macos-latest # prevents intermittent Chrome Headless error unlike ubuntu
12
+ name: Ruby ${{ matrix.version }}
13
+ strategy:
14
+ matrix:
15
+ version: [2.5, 2.6, 2.7]
16
+
17
+ steps:
18
+ - uses: actions/checkout@v2
19
+ - name: Cache node modules
20
+ uses: actions/cache@v2
21
+ with:
22
+ # npm cache files are stored in `~/.npm` on Linux/macOS
23
+ path: ~/.npm
24
+ key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
25
+ - name: Set up Ruby ${{ matrix.version }}
26
+ uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: ${{ matrix.version }}
29
+ bundler-cache: true
30
+ - name: Set up Node
31
+ uses: actions/setup-node@v2-beta
32
+ with:
33
+ node-version: '12'
34
+ - name: Install Dependencies
35
+ run: |
36
+ yarn
37
+ - name: Run Tests
38
+ run: |
39
+ yarn test
40
+ bundle exec rake test
41
+
@@ -0,0 +1,24 @@
1
+ name: Create Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ create-release:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Extract tag name
13
+ id: tag
14
+ run: echo "::set-output name=value::${GITHUB_REF##*/}"
15
+ - uses: actions/checkout@v2
16
+
17
+ - name: Create Release
18
+ id: create_release
19
+ uses: actions/create-release@v1
20
+ env:
21
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22
+ with:
23
+ tag_name: ${{ steps.tag.outputs.value }}
24
+ release_name: ${{ steps.tag.outputs.value }}
@@ -12,13 +12,7 @@ jobs:
12
12
  uses: ruby/setup-ruby@v1
13
13
  with:
14
14
  ruby-version: 2.7
15
- - name: Cache gems
16
- uses: actions/cache@v1
17
- with:
18
- path: vendor/bundle
19
- key: ${{ runner.os }}-rubocop-${{ hashFiles('**/Gemfile.lock') }}
20
- restore-keys: |
21
- ${{ runner.os }}-rubocop-
15
+ bundler-cache: true
22
16
  - name: Install gems
23
17
  run: |
24
18
  bundle config path vendor/bundle
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  *.gem
2
2
  .bundle
3
- Gemfile.lock
4
3
  pkg/*
5
4
  .DS_Store
6
5
  .yardoc
@@ -13,4 +12,3 @@ test/tmp/*
13
12
  /test/dummy/tmp/*
14
13
  /node_modules/
15
14
  .byebug_history
16
-
data/CHANGELOG.md CHANGED
@@ -1,3 +1,78 @@
1
+ 18.0.2 (Jun 15, 2021)
2
+ ----------
3
+ * Added careers link to readme. [#1274](https://github.com/Shopify/shopify_app/pull/1274)
4
+
5
+ 18.0.1 (May 7, 2021)
6
+ ----------
7
+ * Fix bug causing OAuth flow to fail due to CSP violation. [#1265](https://github.com/Shopify/shopify_app/pull/1265)
8
+
9
+ 18.0.0 (May 3, 2021)
10
+ ----------
11
+ * Support OmniAuth 2.x
12
+ * If your app has custom OmniAuth configuration, please refer to the [OmniAuth 2.0 upgrade guide](https://github.com/omniauth/omniauth/wiki/Upgrading-to-2.0).
13
+ * Support App Bridge version 2.x in the Embedded App layout. [#1241](https://github.com/Shopify/shopify_app/pull/1241)
14
+
15
+ 17.2.1 (April 1, 2021)
16
+ ----------
17
+ * Bug fix: Lock the CDN App Bridge version to `v1.X.Y` in the Embedded App layout [#1238](https://github.com/Shopify/shopify_app/pull/1238)
18
+ * App Bridge `v2.0` is a non-backwards compatible release
19
+ * A future major shopify_app gem release will support only App Bridge `v2.0`
20
+
21
+ 17.2.0 (April 1, 2021)
22
+ ----------
23
+ * Support Rails `v6.1` [#1221](https://github.com/Shopify/shopify_app/pull/1221)
24
+ * Check out [Upgrading to `v17.2.0`](/docs/Upgrading.md#upgrading-to-v1720) in the Upgrading.md guide for the changes needed to support Rails `v6.1`
25
+
26
+ 17.1.1 (March 12, 2021)
27
+ ----------
28
+ * Fix issues with mocking OmniAuth callback controller tests [#1210](https://github.com/Shopify/shopify_app/pull/1210)
29
+
30
+ 17.1.0 (March 5, 2021)
31
+ ----------
32
+ * Create OmniAuthConfiguration object to build future OmniAuth strategies [#1190](https://github.com/Shopify/shopify_app/pull/1190)
33
+ * Added access scopes to Shop and User models, added checks to handle scope changes [#1192](https://github.com/Shopify/shopify_app/pull/1192) [#1197](https://github.com/Shopify/shopify_app/pull/1197)
34
+
35
+ 17.0.5 (January 27, 2021)
36
+ ----------
37
+ * Fix omniauth strategy not being set correctly for apps using session tokens [#1164](https://github.com/Shopify/shopify_app/pull/1164)
38
+
39
+ 17.0.4 (January 25, 2021)
40
+ ----------
41
+ * Redirect user to login page if shopify domain is not found in the `EnsureAuthenticatedLinks` concern [#1158](https://github.com/Shopify/shopify_app/pull/1158)
42
+
43
+ 17.0.3 (January 22, 2021)
44
+ ----------
45
+ * Amend fix for #1144 to raise on missing API keys only when running the server [#1155](https://github.com/Shopify/shopify_app/pull/1155)
46
+
47
+ 17.0.2 (January 20, 2021)
48
+ ------
49
+ * Fix failing script tags and webhooks installs after completing OAuth [#1151](https://github.com/Shopify/shopify_app/pull/1151)
50
+
51
+ 17.0.1 (January 18, 2021)
52
+ ------
53
+ * Don't attempt to read Shopify environment variables when the generators are running, since they may not be present yet [#1144](https://github.com/Shopify/shopify_app/pull/1144)
54
+
55
+ 17.0.0 (January 13, 2021)
56
+ ------
57
+ * Rails 6.1 is not yet supported [#1134](https://github.com/Shopify/shopify_app/pull/1134)
58
+
59
+ 16.1.0
60
+ ------
61
+ * Use Session Token auth strategy by default for new embedded apps [#1111](https://github.com/Shopify/shopify_app/pull/1111)
62
+ * Create optional `EnsureAuthenticatedLinks` concern to authenticate deep links using Turbolinks [#1118](https://github.com/Shopify/shopify_app/pull/1118)
63
+
64
+ 16.0.0
65
+ ------
66
+ * Update all `html.erb` and `css` files to correspond with updated store admin design language [#1102](https://github.com/Shopify/shopify_app/pull/1102)
67
+
68
+ 15.0.1
69
+ ------
70
+ * Allow JWT session token `sub` field to be parsed as a string [#1103](https://github.com/Shopify/shopify_app/pull/1103)
71
+
72
+ 15.0.0
73
+ ------
74
+ * Change `X-Shopify-API-Request-Failure-Unauthorized` HTTP header value from boolean to string
75
+
1
76
  14.4.4
2
77
  ------
3
78
  * Patch to not log params in ShopifyApp jobs [#1086](https://github.com/Shopify/shopify_app/pull/1086)
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,76 @@
1
+ # Contributing to the Shopify App gem
2
+
3
+ The following is a set of guidelines for contributing to the Shopify App gem. These are mostly guidelines, not rules. Use your best judgement, and feel free to propose changes to this document in a pull request.
4
+
5
+ #### Table of contents
6
+
7
+ [I just have a question!](#i-just-have-a-question)
8
+
9
+ [How can I contribute?](#how-can-i-contribute)
10
+ * [Reporting bugs](#reporting-bugs)
11
+ * [Suggesting or requesting improvements](#suggesting-or-requesting-improvements)
12
+ * [Pull requests](#pull-requests)
13
+
14
+ ## I just have a question!
15
+
16
+ > **Note:** Please don't file an issue to ask a question. You'll get faster results by using the resources below.
17
+
18
+ Shopify has an official message board with dedicated forums to discuss all things apps, APIs, SDKs and more.
19
+
20
+ #### Shopify Community forum links
21
+
22
+ * [Shopify Community](https://community.shopify.com)
23
+ * [Shopify Apps](https://community.shopify.com/c/Shopify-Apps/bd-p/shopify-apps)
24
+ * [Shopify APIs & SDKs](https://community.shopify.com/c/Shopify-APIs-SDKs/bd-p/shopify-apis-and-technology)
25
+
26
+ If you prefer to chat instead, join the [Shopify Partners Slack Community group](https://www.shopify.com/partners/community#conversation). This Slack group hosts an active community of thousands of app developers.
27
+
28
+ By participating in the Community forum or Slack group, you agree to adhere to the forum [Code of Conduct](https://community.shopify.com/c/Announcements/Code-of-Conduct/m-p/491969#M23) outlined.
29
+
30
+ ## How can I contribute?
31
+
32
+ ### Reporting bugs
33
+
34
+ This section guides you through submitting a bug report for the Shopify App gem. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
35
+
36
+ #### Before submitting a bug report
37
+
38
+ * **Check the [troubleshooting guide](/docs/Troubleshooting.md).** You may be able to troubleshoot the issue you're facing.
39
+ * **Check the [Shopify Community links](#shopify-community-forum-links) to search for your issue.** This problem may have been reported before and solved on the Shopify forum.
40
+ * **Perform a cursory search for similar issues.** You may find that the same problem (or a similar one) has been filed already as an issue.
41
+
42
+ #### How do I submit a good bug report?
43
+
44
+ Bugs are tracked as GitHub issues. Create an issue and provide the following information by filling in the [bug-report template](/.github/ISSUE_TEMPLATE/bug-report.md).
45
+
46
+ Explain the problem and include additional details to help maintainers reproduce the problem:
47
+
48
+ * **Use a clear and descriptive title** for the issue to identify the problem.
49
+ * **Describe the exact steps which reproduce the problem** in as many details as possible.
50
+ * **Provide specific examples to demonstrate the steps.** Include links to files, or copy/pasteable snippets. If you're providing snippets in the issue, use Markdown code blocks.
51
+ * **Describe the behavior you observed** after following the steps and point out what exactly is the problem with that behavior.
52
+ * **Explain which behavior you expected to see** instead and why.
53
+ * **Include screenshots and animated GIFs** where possible.
54
+ * **Redact any private information** from your logs and issue description. This includes things like API keys, API secrets, and any access tokens.
55
+
56
+ ### Suggesting or requesting improvements
57
+
58
+ If you have a suggestion for the Shopify App gem or a feature request, provide the appropriate information by filling out the [feature-request template](/.github/ISSUE_TEMPLATE/feature-request.md).
59
+
60
+ ### Pull requests
61
+
62
+ The process described here has several goals:
63
+
64
+ * Maintain the Shopify App gem's quality
65
+ * Fix problems that are important to app developers
66
+ * Enable a sustainable system for the Shopify App gem's maintainers to review contributions
67
+
68
+ Please follow these steps to have your contribution considered by the maintainers:
69
+
70
+ * Follow all instructions in the [pull request template](/.github/PULL_REQUEST_TEMPLATE.md)
71
+ * After you submit your pull request, verify that all status checks are passing
72
+ * <details>
73
+ <summary>What if the status checks are failing?</summary>
74
+
75
+ While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.
76
+ </details>
data/Gemfile.lock ADDED
@@ -0,0 +1,268 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ shopify_app (18.0.2)
5
+ browser_sniffer (~> 1.2.2)
6
+ jwt (>= 2.2.3)
7
+ omniauth-rails_csrf_protection
8
+ omniauth-shopify-oauth2 (~> 2.3)
9
+ rails (> 5.2.1, < 6.2)
10
+ redirect_safely (~> 1.0)
11
+ shopify_api (~> 9.4)
12
+
13
+ GEM
14
+ remote: https://rubygems.org/
15
+ specs:
16
+ actioncable (6.1.3.1)
17
+ actionpack (= 6.1.3.1)
18
+ activesupport (= 6.1.3.1)
19
+ nio4r (~> 2.0)
20
+ websocket-driver (>= 0.6.1)
21
+ actionmailbox (6.1.3.1)
22
+ actionpack (= 6.1.3.1)
23
+ activejob (= 6.1.3.1)
24
+ activerecord (= 6.1.3.1)
25
+ activestorage (= 6.1.3.1)
26
+ activesupport (= 6.1.3.1)
27
+ mail (>= 2.7.1)
28
+ actionmailer (6.1.3.1)
29
+ actionpack (= 6.1.3.1)
30
+ actionview (= 6.1.3.1)
31
+ activejob (= 6.1.3.1)
32
+ activesupport (= 6.1.3.1)
33
+ mail (~> 2.5, >= 2.5.4)
34
+ rails-dom-testing (~> 2.0)
35
+ actionpack (6.1.3.1)
36
+ actionview (= 6.1.3.1)
37
+ activesupport (= 6.1.3.1)
38
+ rack (~> 2.0, >= 2.0.9)
39
+ rack-test (>= 0.6.3)
40
+ rails-dom-testing (~> 2.0)
41
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
42
+ actiontext (6.1.3.1)
43
+ actionpack (= 6.1.3.1)
44
+ activerecord (= 6.1.3.1)
45
+ activestorage (= 6.1.3.1)
46
+ activesupport (= 6.1.3.1)
47
+ nokogiri (>= 1.8.5)
48
+ actionview (6.1.3.1)
49
+ activesupport (= 6.1.3.1)
50
+ builder (~> 3.1)
51
+ erubi (~> 1.4)
52
+ rails-dom-testing (~> 2.0)
53
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
54
+ activejob (6.1.3.1)
55
+ activesupport (= 6.1.3.1)
56
+ globalid (>= 0.3.6)
57
+ activemodel (6.1.3.1)
58
+ activesupport (= 6.1.3.1)
59
+ activemodel-serializers-xml (1.0.2)
60
+ activemodel (> 5.x)
61
+ activesupport (> 5.x)
62
+ builder (~> 3.1)
63
+ activerecord (6.1.3.1)
64
+ activemodel (= 6.1.3.1)
65
+ activesupport (= 6.1.3.1)
66
+ activeresource (5.1.1)
67
+ activemodel (>= 5.0, < 7)
68
+ activemodel-serializers-xml (~> 1.0)
69
+ activesupport (>= 5.0, < 7)
70
+ activestorage (6.1.3.1)
71
+ actionpack (= 6.1.3.1)
72
+ activejob (= 6.1.3.1)
73
+ activerecord (= 6.1.3.1)
74
+ activesupport (= 6.1.3.1)
75
+ marcel (~> 1.0.0)
76
+ mini_mime (~> 1.0.2)
77
+ activesupport (6.1.3.1)
78
+ concurrent-ruby (~> 1.0, >= 1.0.2)
79
+ i18n (>= 1.6, < 2)
80
+ minitest (>= 5.1)
81
+ tzinfo (~> 2.0)
82
+ zeitwerk (~> 2.3)
83
+ addressable (2.7.0)
84
+ public_suffix (>= 2.0.2, < 5.0)
85
+ ast (2.4.1)
86
+ binding_of_caller (0.8.0)
87
+ debug_inspector (>= 0.0.1)
88
+ browser_sniffer (1.2.2)
89
+ builder (3.2.4)
90
+ byebug (11.1.3)
91
+ coderay (1.1.3)
92
+ concurrent-ruby (1.1.8)
93
+ crack (0.4.4)
94
+ crass (1.0.6)
95
+ debug_inspector (0.0.3)
96
+ erubi (1.10.0)
97
+ faraday (1.4.1)
98
+ faraday-excon (~> 1.1)
99
+ faraday-net_http (~> 1.0)
100
+ faraday-net_http_persistent (~> 1.1)
101
+ multipart-post (>= 1.2, < 3)
102
+ ruby2_keywords (>= 0.0.4)
103
+ faraday-excon (1.1.0)
104
+ faraday-net_http (1.0.1)
105
+ faraday-net_http_persistent (1.1.0)
106
+ globalid (0.4.2)
107
+ activesupport (>= 4.2.0)
108
+ graphql (1.12.8)
109
+ graphql-client (0.16.0)
110
+ activesupport (>= 3.0)
111
+ graphql (~> 1.8)
112
+ hashdiff (1.0.1)
113
+ hashie (4.1.0)
114
+ i18n (1.8.9)
115
+ concurrent-ruby (~> 1.0)
116
+ jwt (2.2.3)
117
+ loofah (2.9.0)
118
+ crass (~> 1.0.2)
119
+ nokogiri (>= 1.5.9)
120
+ mail (2.7.1)
121
+ mini_mime (>= 0.1.1)
122
+ marcel (1.0.1)
123
+ method_source (0.9.2)
124
+ mini_mime (1.0.3)
125
+ mini_portile2 (2.5.0)
126
+ minitest (5.14.4)
127
+ mocha (1.11.2)
128
+ multi_json (1.15.0)
129
+ multi_xml (0.6.0)
130
+ multipart-post (2.1.1)
131
+ nio4r (2.5.7)
132
+ nokogiri (1.11.2)
133
+ mini_portile2 (~> 2.5.0)
134
+ racc (~> 1.4)
135
+ oauth2 (1.4.7)
136
+ faraday (>= 0.8, < 2.0)
137
+ jwt (>= 1.0, < 3.0)
138
+ multi_json (~> 1.3)
139
+ multi_xml (~> 0.5)
140
+ rack (>= 1.2, < 3)
141
+ omniauth (2.0.4)
142
+ hashie (>= 3.4.6)
143
+ rack (>= 1.6.2, < 3)
144
+ rack-protection
145
+ omniauth-oauth2 (1.7.1)
146
+ oauth2 (~> 1.4)
147
+ omniauth (>= 1.9, < 3)
148
+ omniauth-rails_csrf_protection (1.0.0)
149
+ actionpack (>= 4.2)
150
+ omniauth (~> 2.0)
151
+ omniauth-shopify-oauth2 (2.3.2)
152
+ activesupport
153
+ omniauth-oauth2 (~> 1.5)
154
+ parallel (1.20.1)
155
+ parser (2.7.2.0)
156
+ ast (~> 2.4.1)
157
+ pry (0.12.2)
158
+ coderay (~> 1.1.0)
159
+ method_source (~> 0.9.0)
160
+ pry-nav (0.3.0)
161
+ pry (>= 0.9.10, < 0.13.0)
162
+ pry-stack_explorer (0.4.9.3)
163
+ binding_of_caller (>= 0.7)
164
+ pry (>= 0.9.11)
165
+ public_suffix (4.0.6)
166
+ racc (1.5.2)
167
+ rack (2.2.3)
168
+ rack-protection (2.1.0)
169
+ rack
170
+ rack-test (1.1.0)
171
+ rack (>= 1.0, < 3)
172
+ rails (6.1.3.1)
173
+ actioncable (= 6.1.3.1)
174
+ actionmailbox (= 6.1.3.1)
175
+ actionmailer (= 6.1.3.1)
176
+ actionpack (= 6.1.3.1)
177
+ actiontext (= 6.1.3.1)
178
+ actionview (= 6.1.3.1)
179
+ activejob (= 6.1.3.1)
180
+ activemodel (= 6.1.3.1)
181
+ activerecord (= 6.1.3.1)
182
+ activestorage (= 6.1.3.1)
183
+ activesupport (= 6.1.3.1)
184
+ bundler (>= 1.15.0)
185
+ railties (= 6.1.3.1)
186
+ sprockets-rails (>= 2.0.0)
187
+ rails-controller-testing (1.0.5)
188
+ actionpack (>= 5.0.1.rc1)
189
+ actionview (>= 5.0.1.rc1)
190
+ activesupport (>= 5.0.1.rc1)
191
+ rails-dom-testing (2.0.3)
192
+ activesupport (>= 4.2.0)
193
+ nokogiri (>= 1.6)
194
+ rails-html-sanitizer (1.3.0)
195
+ loofah (~> 2.3)
196
+ railties (6.1.3.1)
197
+ actionpack (= 6.1.3.1)
198
+ activesupport (= 6.1.3.1)
199
+ method_source
200
+ rake (>= 0.8.7)
201
+ thor (~> 1.0)
202
+ rainbow (3.0.0)
203
+ rake (13.0.3)
204
+ rb-readline (0.5.5)
205
+ redirect_safely (1.0.0)
206
+ activemodel
207
+ regexp_parser (2.0.0)
208
+ rexml (3.2.4)
209
+ rubocop (1.5.2)
210
+ parallel (~> 1.10)
211
+ parser (>= 2.7.1.5)
212
+ rainbow (>= 2.2.2, < 4.0)
213
+ regexp_parser (>= 1.8, < 3.0)
214
+ rexml
215
+ rubocop-ast (>= 1.2.0, < 2.0)
216
+ ruby-progressbar (~> 1.7)
217
+ unicode-display_width (>= 1.4.0, < 2.0)
218
+ rubocop-ast (1.3.0)
219
+ parser (>= 2.7.1.5)
220
+ rubocop-shopify (1.0.7)
221
+ rubocop (~> 1.4)
222
+ ruby-progressbar (1.10.1)
223
+ ruby2_keywords (0.0.4)
224
+ shopify_api (9.4.1)
225
+ activeresource (>= 4.1.0, < 6.0.0)
226
+ graphql-client
227
+ rack
228
+ sprockets (4.0.2)
229
+ concurrent-ruby (~> 1.0)
230
+ rack (> 1, < 3)
231
+ sprockets-rails (3.2.2)
232
+ actionpack (>= 4.0)
233
+ activesupport (>= 4.0)
234
+ sprockets (>= 3.0.0)
235
+ sqlite3 (1.4.2)
236
+ thor (1.1.0)
237
+ tzinfo (2.0.4)
238
+ concurrent-ruby (~> 1.0)
239
+ unicode-display_width (1.7.0)
240
+ webmock (3.9.1)
241
+ addressable (>= 2.3.6)
242
+ crack (>= 0.3.2)
243
+ hashdiff (>= 0.4.0, < 2.0.0)
244
+ websocket-driver (0.7.3)
245
+ websocket-extensions (>= 0.1.0)
246
+ websocket-extensions (0.1.5)
247
+ zeitwerk (2.4.2)
248
+
249
+ PLATFORMS
250
+ ruby
251
+
252
+ DEPENDENCIES
253
+ byebug
254
+ minitest
255
+ mocha
256
+ pry
257
+ pry-nav
258
+ pry-stack_explorer
259
+ rails-controller-testing
260
+ rake
261
+ rb-readline
262
+ rubocop-shopify
263
+ shopify_app!
264
+ sqlite3 (~> 1.4)
265
+ webmock
266
+
267
+ BUNDLED WITH
268
+ 2.1.4