shopify-cli 1.4.0 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +2 -2
  3. data/.github/CONTRIBUTING.md +9 -1
  4. data/.github/PULL_REQUEST_TEMPLATE.md +10 -1
  5. data/.github/workflows/release.yml +61 -0
  6. data/.github/workflows/triage.yml +22 -0
  7. data/.rubocop.yml +56 -7
  8. data/.rubocop_todo.yml +4 -13
  9. data/.travis.yml +1 -0
  10. data/CHANGELOG.md +27 -1
  11. data/Gemfile +12 -10
  12. data/Gemfile.lock +33 -31
  13. data/README.md +39 -7
  14. data/RELEASING.md +5 -27
  15. data/Rakefile +32 -28
  16. data/bin/load_shopify.rb +6 -6
  17. data/bin/shopify +2 -2
  18. data/dev.yml +2 -2
  19. data/docs/_config.yml +1 -18
  20. data/docs/app/node/commands/index.md +2 -80
  21. data/docs/app/node/index.md +2 -33
  22. data/docs/app/rails/commands/index.md +2 -78
  23. data/docs/app/rails/index.md +2 -34
  24. data/docs/core/index.md +2 -84
  25. data/docs/getting-started/index.md +2 -25
  26. data/docs/getting-started/install/index.md +1 -118
  27. data/docs/getting-started/migrate/index.md +2 -94
  28. data/docs/getting-started/uninstall/index.md +2 -35
  29. data/docs/getting-started/upgrade/index.md +2 -39
  30. data/docs/help/start-app/index.md +2 -4
  31. data/docs/index.md +2 -24
  32. data/ext/shopify-cli/extconf.rb +7 -7
  33. data/install.sh +1 -1
  34. data/lib/docgen/markdown.rb +11 -11
  35. data/lib/{project_types/extension/graphql → graphql}/get_app_by_api_key.graphql +0 -0
  36. data/lib/project_types/extension/cli.rb +64 -47
  37. data/lib/project_types/extension/commands/build.rb +3 -3
  38. data/lib/project_types/extension/commands/create.rb +16 -9
  39. data/lib/project_types/extension/commands/extension_command.rb +8 -5
  40. data/lib/project_types/extension/commands/push.rb +8 -8
  41. data/lib/project_types/extension/commands/register.rb +19 -30
  42. data/lib/project_types/extension/commands/serve.rb +23 -3
  43. data/lib/project_types/extension/commands/tunnel.rb +12 -12
  44. data/lib/project_types/extension/extension_project.rb +4 -4
  45. data/lib/project_types/extension/extension_project_keys.rb +4 -4
  46. data/lib/project_types/extension/features/argo.rb +117 -0
  47. data/lib/project_types/extension/features/argo_config.rb +5 -5
  48. data/lib/project_types/extension/features/argo_dependencies.rb +5 -5
  49. data/lib/project_types/extension/features/argo_setup.rb +2 -2
  50. data/lib/project_types/extension/features/argo_setup_steps.rb +4 -4
  51. data/lib/project_types/extension/forms/create.rb +28 -34
  52. data/lib/project_types/extension/forms/questions/ask_app.rb +53 -0
  53. data/lib/project_types/extension/forms/questions/ask_name.rb +40 -0
  54. data/lib/project_types/extension/forms/questions/ask_type.rb +36 -0
  55. data/lib/project_types/extension/messages/messages.rb +53 -52
  56. data/lib/project_types/extension/models/lazy_specification_handler.rb +12 -0
  57. data/lib/project_types/extension/models/specification.rb +35 -0
  58. data/lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb +19 -0
  59. data/lib/project_types/extension/models/specification_handlers/default.rb +67 -0
  60. data/lib/project_types/extension/models/specifications.rb +77 -0
  61. data/lib/project_types/extension/tasks/configure_features.rb +52 -0
  62. data/lib/project_types/extension/tasks/converters/app_converter.rb +6 -6
  63. data/lib/project_types/extension/tasks/converters/registration_converter.rb +6 -6
  64. data/lib/project_types/extension/tasks/converters/validation_error_converter.rb +4 -4
  65. data/lib/project_types/extension/tasks/converters/version_converter.rb +7 -7
  66. data/lib/project_types/extension/tasks/create_extension.rb +4 -4
  67. data/lib/project_types/extension/tasks/fetch_specifications.rb +38 -0
  68. data/lib/project_types/extension/tasks/get_app.rb +4 -4
  69. data/lib/project_types/extension/tasks/get_apps.rb +3 -3
  70. data/lib/project_types/extension/tasks/update_draft.rb +4 -4
  71. data/lib/project_types/extension/tasks/user_errors.rb +4 -4
  72. data/lib/project_types/node/cli.rb +19 -16
  73. data/lib/project_types/node/commands/connect.rb +15 -0
  74. data/lib/project_types/node/commands/create.rb +44 -41
  75. data/lib/project_types/node/commands/deploy.rb +4 -4
  76. data/lib/project_types/node/commands/deploy/heroku.rb +24 -24
  77. data/lib/project_types/node/commands/generate.rb +9 -18
  78. data/lib/project_types/node/commands/open.rb +2 -2
  79. data/lib/project_types/node/commands/populate.rb +6 -6
  80. data/lib/project_types/node/commands/populate/customer.rb +5 -5
  81. data/lib/project_types/node/commands/populate/draft_order.rb +5 -5
  82. data/lib/project_types/node/commands/populate/product.rb +5 -5
  83. data/lib/project_types/node/commands/serve.rb +9 -9
  84. data/lib/project_types/node/commands/tunnel.rb +7 -7
  85. data/lib/project_types/node/forms/create.rb +7 -7
  86. data/lib/project_types/node/messages/messages.rb +19 -53
  87. data/lib/project_types/rails/cli.rb +21 -18
  88. data/lib/project_types/rails/commands/connect.rb +15 -0
  89. data/lib/project_types/rails/commands/create.rb +58 -57
  90. data/lib/project_types/rails/commands/deploy.rb +4 -4
  91. data/lib/project_types/rails/commands/deploy/heroku.rb +30 -30
  92. data/lib/project_types/rails/commands/generate.rb +7 -7
  93. data/lib/project_types/rails/commands/generate/webhook.rb +6 -6
  94. data/lib/project_types/rails/commands/open.rb +2 -2
  95. data/lib/project_types/rails/commands/populate.rb +6 -6
  96. data/lib/project_types/rails/commands/populate/customer.rb +5 -5
  97. data/lib/project_types/rails/commands/populate/draft_order.rb +5 -5
  98. data/lib/project_types/rails/commands/populate/product.rb +5 -5
  99. data/lib/project_types/rails/commands/serve.rb +11 -11
  100. data/lib/project_types/rails/commands/tunnel.rb +7 -7
  101. data/lib/project_types/rails/forms/create.rb +24 -24
  102. data/lib/project_types/rails/gem.rb +24 -24
  103. data/lib/project_types/rails/messages/messages.rb +12 -9
  104. data/lib/project_types/rails/ruby.rb +2 -2
  105. data/lib/project_types/script/cli.rb +44 -38
  106. data/lib/project_types/script/commands/create.rb +15 -10
  107. data/lib/project_types/script/commands/disable.rb +3 -3
  108. data/lib/project_types/script/commands/enable.rb +19 -9
  109. data/lib/project_types/script/commands/push.rb +10 -17
  110. data/lib/project_types/script/config/extension_points.yml +17 -12
  111. data/lib/project_types/script/errors.rb +22 -0
  112. data/lib/project_types/script/forms/create.rb +29 -5
  113. data/lib/project_types/script/graphql/app_script_update_or_create.graphql +12 -1
  114. data/lib/project_types/script/layers/application/build_script.rb +19 -19
  115. data/lib/project_types/script/layers/application/create_script.rb +41 -12
  116. data/lib/project_types/script/layers/application/disable_script.rb +2 -2
  117. data/lib/project_types/script/layers/application/enable_script.rb +2 -2
  118. data/lib/project_types/script/layers/application/extension_points.rb +24 -0
  119. data/lib/project_types/script/layers/application/project_dependencies.rb +4 -4
  120. data/lib/project_types/script/layers/application/push_script.rb +15 -18
  121. data/lib/project_types/script/layers/domain/config_ui.rb +16 -0
  122. data/lib/project_types/script/layers/domain/errors.rb +23 -0
  123. data/lib/project_types/script/layers/domain/extension_point.rb +62 -7
  124. data/lib/project_types/script/layers/domain/metadata.rb +55 -0
  125. data/lib/project_types/script/layers/domain/push_package.rb +29 -6
  126. data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +19 -55
  127. data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +49 -18
  128. data/lib/project_types/script/layers/infrastructure/config_ui_repository.rb +46 -0
  129. data/lib/project_types/script/layers/infrastructure/errors.rb +37 -1
  130. data/lib/project_types/script/layers/infrastructure/extension_point_repository.rb +12 -6
  131. data/lib/project_types/script/layers/infrastructure/project_creator.rb +2 -1
  132. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +20 -13
  133. data/lib/project_types/script/layers/infrastructure/rust_project_creator.rb +72 -0
  134. data/lib/project_types/script/layers/infrastructure/rust_task_runner.rb +59 -0
  135. data/lib/project_types/script/layers/infrastructure/script_service.rb +39 -17
  136. data/lib/project_types/script/layers/infrastructure/task_runner.rb +4 -3
  137. data/lib/project_types/script/messages/messages.rb +79 -10
  138. data/lib/project_types/script/script_project.rb +26 -16
  139. data/lib/project_types/script/ui/error_handler.rb +141 -45
  140. data/lib/project_types/script/ui/printing_spinner.rb +1 -1
  141. data/lib/project_types/script/ui/strict_spinner.rb +1 -1
  142. data/lib/project_types/theme/cli.rb +40 -0
  143. data/lib/project_types/theme/commands/connect.rb +54 -0
  144. data/lib/project_types/theme/commands/create.rb +48 -0
  145. data/lib/project_types/theme/commands/deploy.rb +38 -0
  146. data/lib/project_types/theme/commands/generate.rb +20 -0
  147. data/lib/project_types/theme/commands/generate/env.rb +79 -0
  148. data/lib/project_types/theme/commands/push.rb +55 -0
  149. data/lib/project_types/theme/commands/serve.rb +31 -0
  150. data/lib/project_types/theme/forms/connect.rb +34 -0
  151. data/lib/project_types/theme/forms/create.rb +22 -0
  152. data/lib/project_types/theme/messages/messages.rb +147 -0
  153. data/lib/project_types/theme/tasks/ensure_themekit_installed.rb +78 -0
  154. data/lib/project_types/theme/themekit.rb +113 -0
  155. data/lib/rubygems_plugin.rb +3 -3
  156. data/lib/shopify-cli/admin_api.rb +52 -12
  157. data/lib/shopify-cli/admin_api/populate_resource_command.rb +17 -17
  158. data/lib/shopify-cli/admin_api/schema.rb +3 -3
  159. data/lib/shopify-cli/api.rb +36 -31
  160. data/lib/shopify-cli/command.rb +1 -1
  161. data/lib/shopify-cli/commands.rb +9 -9
  162. data/lib/shopify-cli/commands/config.rb +28 -28
  163. data/lib/shopify-cli/commands/connect.rb +35 -18
  164. data/lib/shopify-cli/commands/create.rb +5 -5
  165. data/lib/shopify-cli/commands/help.rb +6 -6
  166. data/lib/shopify-cli/commands/logout.rb +3 -3
  167. data/lib/shopify-cli/commands/system.rb +33 -33
  168. data/lib/shopify-cli/commands/version.rb +2 -2
  169. data/lib/shopify-cli/context.rb +43 -22
  170. data/lib/shopify-cli/core.rb +4 -4
  171. data/lib/shopify-cli/core/entry_point.rb +5 -5
  172. data/lib/shopify-cli/core/executor.rb +1 -1
  173. data/lib/shopify-cli/core/help_resolver.rb +2 -2
  174. data/lib/shopify-cli/core/monorail.rb +21 -19
  175. data/lib/shopify-cli/db.rb +2 -2
  176. data/lib/shopify-cli/feature.rb +1 -3
  177. data/lib/shopify-cli/form.rb +1 -1
  178. data/lib/shopify-cli/git.rb +17 -17
  179. data/lib/shopify-cli/helpers.rb +1 -1
  180. data/lib/shopify-cli/helpers/haikunator.rb +1 -1
  181. data/lib/shopify-cli/heroku.rb +28 -28
  182. data/lib/shopify-cli/http_request.rb +21 -9
  183. data/lib/shopify-cli/js_deps.rb +13 -13
  184. data/lib/shopify-cli/js_system.rb +5 -5
  185. data/lib/shopify-cli/lazy_delegator.rb +55 -0
  186. data/lib/shopify-cli/messages/messages.rb +21 -10
  187. data/lib/shopify-cli/method_object.rb +104 -0
  188. data/lib/shopify-cli/oauth.rb +25 -25
  189. data/lib/shopify-cli/oauth/servlet.rb +9 -9
  190. data/lib/shopify-cli/options.rb +3 -3
  191. data/lib/shopify-cli/packager.rb +24 -24
  192. data/lib/shopify-cli/partners_api.rb +38 -16
  193. data/lib/shopify-cli/partners_api/organizations.rb +10 -10
  194. data/lib/shopify-cli/process_supervision.rb +8 -8
  195. data/lib/shopify-cli/project.rb +27 -23
  196. data/lib/shopify-cli/project_type.rb +21 -5
  197. data/lib/shopify-cli/resolve_constant.rb +25 -0
  198. data/lib/shopify-cli/resources.rb +1 -1
  199. data/lib/shopify-cli/resources/env_file.rb +9 -9
  200. data/lib/shopify-cli/result.rb +432 -0
  201. data/lib/shopify-cli/shopifolk.rb +35 -18
  202. data/lib/shopify-cli/sub_command.rb +1 -1
  203. data/lib/shopify-cli/task.rb +9 -1
  204. data/lib/shopify-cli/tasks.rb +7 -7
  205. data/lib/shopify-cli/tasks/create_api_client.rb +17 -6
  206. data/lib/shopify-cli/tasks/ensure_dev_store.rb +11 -11
  207. data/lib/shopify-cli/tasks/ensure_env.rb +18 -15
  208. data/lib/shopify-cli/tasks/ensure_loopback_url.rb +4 -4
  209. data/lib/shopify-cli/tasks/select_org_and_shop.rb +29 -24
  210. data/lib/shopify-cli/tasks/update_dashboard_urls.rb +10 -10
  211. data/lib/shopify-cli/transform_data_structure.rb +86 -0
  212. data/lib/shopify-cli/tunnel.rb +36 -30
  213. data/lib/shopify-cli/version.rb +1 -1
  214. data/lib/shopify_cli.rb +57 -52
  215. data/shopify-cli.gemspec +6 -6
  216. data/shopify.fish +1 -1
  217. data/shopify.sh +1 -1
  218. data/vendor/deps/cli-kit/REVISION +1 -1
  219. data/vendor/deps/cli-kit/lib/cli/kit/logger.rb +2 -2
  220. data/vendor/deps/cli-kit/lib/cli/kit/system.rb +3 -3
  221. data/vendor/deps/cli-ui/REVISION +1 -1
  222. data/vendor/deps/cli-ui/lib/cli/ui.rb +26 -22
  223. data/vendor/deps/cli-ui/lib/cli/ui/ansi.rb +4 -6
  224. data/vendor/deps/cli-ui/lib/cli/ui/frame.rb +3 -3
  225. data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_stack.rb +8 -9
  226. data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_style.rb +1 -1
  227. data/vendor/deps/cli-ui/lib/cli/ui/glyph.rb +1 -0
  228. data/vendor/deps/cli-ui/lib/cli/ui/printer.rb +15 -3
  229. data/vendor/deps/cli-ui/lib/cli/ui/prompt/interactive_options.rb +4 -11
  230. data/vendor/deps/cli-ui/lib/cli/ui/spinner.rb +3 -5
  231. data/vendor/deps/cli-ui/lib/cli/ui/terminal.rb +10 -10
  232. data/vendor/deps/cli-ui/lib/cli/ui/version.rb +1 -1
  233. data/vendor/deps/cli-ui/lib/cli/ui/wrap.rb +56 -0
  234. data/vendor/deps/webrick/.gitignore +9 -0
  235. data/vendor/deps/webrick/Gemfile +3 -0
  236. data/vendor/deps/webrick/LICENSE.txt +22 -0
  237. data/vendor/deps/webrick/README.md +61 -0
  238. data/vendor/deps/webrick/Rakefile +10 -0
  239. data/vendor/deps/webrick/lib/webrick.rb +232 -0
  240. data/vendor/deps/webrick/lib/webrick/accesslog.rb +157 -0
  241. data/vendor/deps/webrick/lib/webrick/cgi.rb +313 -0
  242. data/vendor/deps/webrick/lib/webrick/compat.rb +36 -0
  243. data/vendor/deps/webrick/lib/webrick/config.rb +158 -0
  244. data/vendor/deps/webrick/lib/webrick/cookie.rb +172 -0
  245. data/vendor/deps/webrick/lib/webrick/htmlutils.rb +30 -0
  246. data/vendor/deps/webrick/lib/webrick/httpauth.rb +96 -0
  247. data/vendor/deps/webrick/lib/webrick/httpauth/authenticator.rb +117 -0
  248. data/vendor/deps/webrick/lib/webrick/httpauth/basicauth.rb +116 -0
  249. data/vendor/deps/webrick/lib/webrick/httpauth/digestauth.rb +395 -0
  250. data/vendor/deps/webrick/lib/webrick/httpauth/htdigest.rb +132 -0
  251. data/vendor/deps/webrick/lib/webrick/httpauth/htgroup.rb +97 -0
  252. data/vendor/deps/webrick/lib/webrick/httpauth/htpasswd.rb +158 -0
  253. data/vendor/deps/webrick/lib/webrick/httpauth/userdb.rb +53 -0
  254. data/vendor/deps/webrick/lib/webrick/httpproxy.rb +354 -0
  255. data/vendor/deps/webrick/lib/webrick/httprequest.rb +636 -0
  256. data/vendor/deps/webrick/lib/webrick/httpresponse.rb +564 -0
  257. data/vendor/deps/webrick/lib/webrick/https.rb +152 -0
  258. data/vendor/deps/webrick/lib/webrick/httpserver.rb +294 -0
  259. data/vendor/deps/webrick/lib/webrick/httpservlet.rb +23 -0
  260. data/vendor/deps/webrick/lib/webrick/httpservlet/abstract.rb +152 -0
  261. data/vendor/deps/webrick/lib/webrick/httpservlet/cgi_runner.rb +47 -0
  262. data/vendor/deps/webrick/lib/webrick/httpservlet/cgihandler.rb +126 -0
  263. data/vendor/deps/webrick/lib/webrick/httpservlet/erbhandler.rb +88 -0
  264. data/vendor/deps/webrick/lib/webrick/httpservlet/filehandler.rb +552 -0
  265. data/vendor/deps/webrick/lib/webrick/httpservlet/prochandler.rb +47 -0
  266. data/vendor/deps/webrick/lib/webrick/httpstatus.rb +194 -0
  267. data/vendor/deps/webrick/lib/webrick/httputils.rb +512 -0
  268. data/vendor/deps/webrick/lib/webrick/httpversion.rb +76 -0
  269. data/vendor/deps/webrick/lib/webrick/log.rb +156 -0
  270. data/vendor/deps/webrick/lib/webrick/server.rb +381 -0
  271. data/vendor/deps/webrick/lib/webrick/ssl.rb +215 -0
  272. data/vendor/deps/webrick/lib/webrick/utils.rb +265 -0
  273. data/vendor/deps/webrick/lib/webrick/version.rb +18 -0
  274. data/vendor/deps/webrick/webrick.gemspec +74 -0
  275. data/vendor/gen/template/bin/update-deps +9 -9
  276. metadata +83 -29
  277. data/docs/Gemfile +0 -5
  278. data/docs/Gemfile.lock +0 -258
  279. data/docs/_data/nav.yml +0 -35
  280. data/docs/_includes/footer.html +0 -15
  281. data/docs/_includes/head.html +0 -19
  282. data/docs/_includes/sidebar_nav.html +0 -22
  283. data/docs/_includes/toc.html +0 -112
  284. data/docs/_layouts/default.html +0 -79
  285. data/docs/css/docs.css +0 -157
  286. data/docs/images/header.png +0 -0
  287. data/docs/installing-ruby.md +0 -28
  288. data/lib/project_types/extension/features/argo/admin.rb +0 -20
  289. data/lib/project_types/extension/features/argo/base.rb +0 -129
  290. data/lib/project_types/extension/features/argo/checkout.rb +0 -20
  291. data/lib/project_types/extension/forms/register.rb +0 -47
  292. data/lib/project_types/extension/models/type.rb +0 -81
  293. data/lib/project_types/extension/models/types/checkout_post_purchase.rb +0 -23
  294. data/lib/project_types/extension/models/types/product_subscription.rb +0 -24
  295. data/lib/project_types/node/commands/generate/billing.rb +0 -39
  296. data/lib/project_types/node/commands/generate/page.rb +0 -59
  297. data/lib/project_types/node/commands/generate/webhook.rb +0 -37
  298. data/lib/project_types/script/layers/domain/script.rb +0 -18
  299. data/lib/project_types/script/layers/infrastructure/assemblyscript_tsconfig.rb +0 -38
  300. data/lib/project_types/script/layers/infrastructure/script_repository.rb +0 -59
  301. data/lib/project_types/script/templates/ts/as-pect.config.js +0 -27
  302. data/lib/project_types/script/templates/ts/as-pect.d.ts +0 -1
data/README.md CHANGED
@@ -1,13 +1,45 @@
1
- # Shopify App CLI
1
+ # [Shopify App CLI](https://shopify.dev/tools/cli)
2
2
 
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE.md)[![Build Status](https://travis-ci.com/Shopify/shopify-app-cli.svg?token=qtPazgjyosjEEgxgq7VZ&branch=master)](https://travis-ci.com/Shopify/shopify-app-cli)
4
4
 
5
- Shopify App CLI helps you build Shopify apps faster. It automates many common tasks in the development process and lets you quickly add popular features, such as billing and webhooks.
5
+ Shopify App CLI helps you build Shopify apps faster. It quickly generates Node.js and Ruby on Rails apps and automates many common development tasks.
6
6
 
7
- ## Using the CLI
8
- Consult the [Shopify App CLI documentation](https://shopify.github.io/shopify-app-cli) to get started.
7
+ ## Features
9
8
 
10
- ## Developing the CLI
11
- This is an [open-source](https://github.com/Shopify/shopify-app-cli/blob/master/.github/LICENSE.md) tool and developers are [invited to contribute](https://github.com/Shopify/shopify-app-cli/blob/master/.github/CONTRIBUTING.md) to it. Please check the [code of conduct](https://github.com/Shopify/shopify-app-cli/blob/master/.github/CODE_OF_CONDUCT.md) before you begin.
9
+ Shopify App CLI helps your app development process in the following ways:
12
10
 
13
- [Read the development guide](https://github.com/Shopify/shopify-app-cli/wiki) to learn more.
11
+ - Creates an app in the [Partner dashboard](https://partners.shopify.com/current/resources)
12
+ - Populates test data for your app, including products, customers, and draft orders
13
+ - Generates new [webhooks](https://shopify.dev/tutorials/manage-webhooks) for your app
14
+ - Deploys your app to an external platform, such as [Heroku](https://www.heroku.com/)
15
+
16
+ ## Installation
17
+
18
+ Refer to [*Install Shopify App CLI*](https://shopify.dev/tools/cli/installation) to learn how to install Shopify App CLI on Windows, macOS, or Linux.
19
+
20
+ ## Getting started
21
+
22
+ Refer to [*Getting started with Shopify App CLI*](https://shopify.dev/tools/cli/getting-started) to learn how to create and manage different types of projects with Shopify App CLI.
23
+
24
+ ## References
25
+
26
+ - **[Shopify App CLI core commands](https://shopify.dev/tools/cli/reference)** - A complete reference of core commands for Shopify App CLI.
27
+ - **[Node.js app commands](https://shopify.dev/tools/cli/reference/node-app)** - A complete Shopify App CLI command reference for Node.js apps.
28
+ - **[Ruby on Rails app commands](https://shopify.dev/tools/cli/reference/ruby-on-rails-app)** - A complete Shopify App CLI command reference for Ruby on Rails apps.
29
+
30
+ ## Troubleshooting
31
+
32
+ Refer to [*Troubleshooting Shopify App CLI*](https://shopify.dev/tools/cli/troubleshooting) to learn how to upgrade, migrate from a legacy version, and uninstall Shopify App CLI.
33
+
34
+ ## Contributing to Shopify App CLI
35
+
36
+ Shopify App CLI is an [open source](https://github.com/Shopify/shopify-app-cli/blob/master/.github/LICENSE.md) tool and you can [help contribute to the GitHub repository](https://github.com/Shopify/shopify-app-cli/blob/master/.github/CONTRIBUTING.md).
37
+
38
+ ## Developing Shopify App CLI
39
+
40
+ Read the [development guide](https://github.com/Shopify/shopify-app-cli/wiki).
41
+
42
+ ## Where to get help
43
+
44
+ - **[Open a GitHub issue](https://github.com/Shopify/shopify-app-cli/issues)** - To report bugs or request new features, open an issue in the Shopify App CLI repository.
45
+ - **[Shopify Community Forums](https://community.shopify.com/)** - Visit our forums to connect with the community and learn more about Shopify App CLI development.
data/RELEASING.md CHANGED
@@ -31,33 +31,11 @@
31
31
 
32
32
  1. Deploy using Shipit
33
33
 
34
- 1. Update your `master` branch to the latest version
35
- ```
36
- $ git checkout master
37
- $ git pull
38
- ```
34
+ 1. Check the "Actions" tab to see if the _Create Release_ workflow is successful.
35
+ The workflow will automatically create a [release](https://github.com/Shopify/shopify-app-cli/releases) with the latest tag and `.deb`, `.rpm` assets attached.
39
36
 
40
- 1. On local machine and _AFTER_ gem has been published to https://rubygems.org, run
41
- ```
42
- $ rake package
43
- ```
44
- This will generate the `.deb`, `.rpm` and brew formula files, which will be located in `packaging/builds/X.Y.Z/`.
37
+ 2. Check the `Shopify/homebrew-shopify` repository for new PR `shopify-cli {version}`
38
+ * rename PR to `Packaging for release of v{version} of shopify-cli`
39
+ * when PR is approved, merge into main branch
45
40
 
46
- 1. Clone the `Shopify/homebrew-shopify` repository (if not already cloned), and then
47
- * create a branch named `release_X_Y_Z_of_shopify-cli`
48
- * update the brew formula in `shopify-cli.rb` with the generated formula in `packaging/builds/X.Y.Z/` in the `Shopify/shopify-app-cli` repo (from step 9)
49
- * commit the change and create a PR on the [Shopify Homebrew repository](https://github.com/Shopify/homebrew-shopify)
50
- * when PR is approved, merge into main branch
51
41
 
52
- 1. Go to [releases](https://github.com/Shopify/shopify-app-cli/releases) page of `Shopify/shopify-app-cli` repo and create a new release:
53
- * use the tag created in step 8 by Shipit (should be "vX.Y.Z")
54
- * release title = "Version X.Y.Z"
55
- * description should be
56
- ```
57
- Release of version X.Y.Z of Shopify App CLI
58
-
59
- Please refer to [CHANGELOG](https://github.com/Shopify/shopify-app-cli/blob/master/CHANGELOG.md) for details.
60
- ```
61
- * upload the `.deb` and `.rpm` files from `packaging/builds/X.Y.Z/` (generated in step 9)
62
- * if it's a pre-release version, select the "This is a pre-release" checkbox
63
- * and click "Publish release".
data/Rakefile CHANGED
@@ -1,11 +1,11 @@
1
- require_relative 'bin/load_shopify'
2
- require 'rake/testtask'
3
- require 'rubocop/rake_task'
4
- require 'bundler/gem_tasks'
1
+ require_relative "bin/load_shopify"
2
+ require "rake/testtask"
3
+ require "rubocop/rake_task"
4
+ require "bundler/gem_tasks"
5
5
 
6
6
  Rake::TestTask.new do |t|
7
7
  t.libs += %w(test)
8
- t.test_files = FileList['test/**/*_test.rb']
8
+ t.test_files = FileList["test/**/*_test.rb"]
9
9
  t.verbose = false
10
10
  t.warning = false
11
11
  end
@@ -16,33 +16,37 @@ task(default: [:test, :rubocop])
16
16
 
17
17
  desc("Start up irb with cli loaded")
18
18
  task :console do
19
- exec('irb', '-r', './bin/load_shopify.rb', '-r', 'byebug')
19
+ exec("irb", "-r", "./bin/load_shopify.rb", "-r", "byebug")
20
20
  end
21
21
 
22
22
  namespace :rdoc do
23
- repo = 'https://github.com/Shopify/shopify-app-cli.wiki.git'
24
- intermediate = 'markdown_intermediate'
23
+ repo = "https://github.com/Shopify/shopify-app-cli.wiki.git"
24
+ intermediate = "markdown_intermediate"
25
25
  file_to_doc = [
26
- 'lib/shopify-cli/admin_api.rb',
27
- 'lib/shopify-cli/context.rb',
28
- 'lib/shopify-cli/db.rb',
29
- 'lib/shopify-cli/git.rb',
30
- 'lib/shopify-cli/heroku.rb',
31
- 'lib/shopify-cli/js_deps.rb',
32
- 'lib/shopify-cli/partners_api.rb',
33
- 'lib/shopify-cli/process_supervision.rb',
34
- 'lib/shopify-cli/project.rb',
35
- 'lib/shopify-cli/tunnel.rb',
26
+ "lib/shopify-cli/admin_api.rb",
27
+ "lib/shopify-cli/context.rb",
28
+ "lib/shopify-cli/db.rb",
29
+ "lib/shopify-cli/git.rb",
30
+ "lib/shopify-cli/heroku.rb",
31
+ "lib/shopify-cli/js_deps.rb",
32
+ "lib/shopify-cli/method_object.rb",
33
+ "lib/shopify-cli/partners_api.rb",
34
+ "lib/shopify-cli/process_supervision.rb",
35
+ "lib/shopify-cli/project.rb",
36
+ "lib/shopify-cli/result.rb",
37
+ "lib/shopify-cli/transform_data_structure.rb",
38
+ "lib/shopify-cli/tunnel.rb",
39
+ "lib/shopify-cli/lazy_delegator.rb",
36
40
  ]
37
41
 
38
42
  task all: [:markdown, :wiki, :cleanup]
39
43
 
40
44
  desc("Generate markdown files from rdoc comments")
41
45
  task :markdown do
42
- require 'rdoc/rdoc'
43
- require 'docgen/markdown'
46
+ require "rdoc/rdoc"
47
+ require "docgen/markdown"
44
48
  options = RDoc::Options.new
45
- options.setup_generator('markdown')
49
+ options.setup_generator("markdown")
46
50
  options.op_dir = intermediate
47
51
  options.files = file_to_doc
48
52
  RDoc::RDoc.new.document(options)
@@ -50,14 +54,14 @@ namespace :rdoc do
50
54
 
51
55
  desc("Copy markdown documentation to the wiki and commit them")
52
56
  task :wiki do
53
- require 'tmpdir'
57
+ require "tmpdir"
54
58
  Dir.mktmpdir do |temp_dir|
55
59
  system("git clone --depth=1 #{repo} #{temp_dir}")
56
- FileUtils.cp(Dir[File.join(intermediate, '*.md')], temp_dir)
60
+ FileUtils.cp(Dir[File.join(intermediate, "*.md")], temp_dir)
57
61
  Dir.chdir(temp_dir) do
58
- system('git add --all')
62
+ system("git add --all")
59
63
  system('git commit -am "auto doc update"')
60
- system('git push')
64
+ system("git push")
61
65
  end
62
66
  end
63
67
  end
@@ -69,10 +73,10 @@ namespace :rdoc do
69
73
  end
70
74
 
71
75
  desc("Generate markdown documentation and update the wiki")
72
- task(rdoc: 'rdoc:all')
76
+ task(rdoc: "rdoc:all")
73
77
 
74
78
  namespace :package do
75
- require 'shopify-cli/packager'
79
+ require "shopify-cli/packager"
76
80
 
77
81
  task all: [:debian, :rpm, :homebrew]
78
82
 
@@ -93,4 +97,4 @@ namespace :package do
93
97
  end
94
98
 
95
99
  desc("Builds all distribution packages of the CLI")
96
- task(package: 'package:all')
100
+ task(package: "package:all")
data/bin/load_shopify.rb CHANGED
@@ -3,20 +3,20 @@
3
3
  lib_path = File.expand_path("../../lib", __FILE__)
4
4
  $LOAD_PATH.unshift(lib_path) unless $LOAD_PATH.include?(lib_path)
5
5
 
6
- ENV['SHELLPID'] ||= Process.ppid.to_s
7
- ENV['USER_PWD'] ||= Dir.pwd
6
+ ENV["SHELLPID"] ||= Process.ppid.to_s
7
+ ENV["USER_PWD"] ||= Dir.pwd
8
8
 
9
9
  # Prune non-absolute paths from PATH to prevent non-deterministic behavior
10
10
  # i.e. If user has "." or "./bin" in their PATH
11
11
  # Note that this logic is duplicated in lib/shopify.rb
12
- ENV['PATH'] = ENV['PATH'].split(File::PATH_SEPARATOR).select do |p|
13
- p.start_with?('/', '~', /[A-Z]:\\/)
12
+ ENV["PATH"] = ENV["PATH"].split(File::PATH_SEPARATOR).select do |p|
13
+ p.start_with?("/", "~", /[A-Z]:\\/)
14
14
  end.join(File::PATH_SEPARATOR)
15
15
 
16
16
  $original_env = ENV.to_hash
17
17
 
18
- require 'shopify_cli'
18
+ require "shopify_cli"
19
19
 
20
- if ENV['PRINT_LOADED_FEATURES']
20
+ if ENV["PRINT_LOADED_FEATURES"]
21
21
  puts $LOADED_FEATURES
22
22
  end
data/bin/shopify CHANGED
@@ -14,7 +14,7 @@ module Kernel
14
14
  raise if name == "#{RUBY_VERSION[/\d+\.\d+/]}/psych.so"
15
15
  STDERR.puts "[Note] You cannot use gems with Shopify App CLI."
16
16
  STDERR.puts "[LoadError] #{e.message}"
17
- if ENV['DEBUG']
17
+ if ENV["DEBUG"]
18
18
  STDERR.puts e.backtrace
19
19
  STDERR.puts "\n"
20
20
  end
@@ -27,7 +27,7 @@ module Kernel
27
27
  end
28
28
  end
29
29
 
30
- require_relative './load_shopify'
30
+ require_relative "./load_shopify"
31
31
 
32
32
  exit(ShopifyCli::ErrorHandler.call do
33
33
  ShopifyCli::Core::EntryPoint.call(ARGV.dup)
data/dev.yml CHANGED
@@ -11,7 +11,7 @@ test:
11
11
  run: |
12
12
  if [ "$#" -eq 1 ] && [[ -f $1 ]];
13
13
  then
14
- rake test TEST=$1
14
+ bundle exec rake test TEST=$1
15
15
  else
16
- rake test $@
16
+ bundle exec rake test $@
17
17
  fi
data/docs/_config.yml CHANGED
@@ -1,19 +1,2 @@
1
- title: Shopify App CLI
2
- markdown: kramdown
3
- url: https://shopify.github.io
4
- baseurl: /shopify-app-cli
5
-
6
- exclude: [
7
- 'heroku/',
8
- 'Gemfile',
9
- 'Gemfile.lock'
10
- ]
11
-
12
- defaults:
13
- - scope:
14
- path: ""
15
- values:
16
- toc: true
17
-
18
1
  plugins:
19
- - jekyll-redirect-from
2
+ - jekyll-redirect-from
@@ -1,82 +1,4 @@
1
1
  ---
2
- title: Node.js app project command reference
3
- section: node
2
+ title: Node.js app commands
3
+ redirect_to: https://shopify.dev/tools/cli/reference/node-app
4
4
  ---
5
-
6
- ## `deploy`
7
-
8
- Deploy the current Node.js app to a hosting service. Currently, the only option is [Heroku](https://www.heroku.com).
9
-
10
- ```console
11
- $ shopify deploy heroku
12
- ```
13
-
14
- ## `generate`
15
-
16
- Generate boilerplate code inside your app project. Node.js apps support generating new **pages**, **Billing API calls**, and **webhooks**.
17
-
18
- ```console
19
- $ shopify generate page
20
- $ shopify generate billing
21
- $ shopify generate webhook
22
- ```
23
-
24
- ## `open`
25
-
26
- Open your local development app in your default browser.
27
-
28
- ```console
29
- $ shopify open
30
- ```
31
-
32
- ## `populate`
33
-
34
- Add example data to your development store. This is useful for testing your app’s behavior. You can create the following types of example store records:
35
-
36
- - Products
37
- - Customers
38
- - Orders
39
-
40
- ```console
41
- $ shopify populate products
42
- $ shopify populate customers
43
- $ shopify populate draftorders
44
- ```
45
-
46
- By default, the `populate` command adds 5 records. Use the `--count` option to specify a different number:
47
-
48
- ```console
49
- $ shopify populate products --count 10
50
- ```
51
-
52
- ## `serve`
53
-
54
- Start a local development server for your project, as well as a public [ngrok](https://ngrok.com/) tunnel to your localhost.
55
-
56
- ```console
57
- $ shopify serve
58
- ```
59
-
60
- ## `tunnel`
61
-
62
- Control an HTTP tunnel to your local development app using [ngrok](https://ngrok.com). With the `tunnel` command you can authenticate with ngrok and start or stop the tunnel. (Note that the `serve` command will automatically run `tunnel start` for you.)
63
-
64
- To authenticate with ngrok, you need an authentication token. You can find it in [your ngrok dashboard](https://dashboard.ngrok.com/auth/your-authtoken). Copy your token and use it with the `tunnel auth` command:
65
-
66
- ```console
67
- $ shopify tunnel auth <token>
68
- ```
69
-
70
- This will write your ngrok auth token to `~/.ngrok2/ngrok.yml`. To learn more about ngrok configuration, [consult ngrok’s documentation](https://ngrok.com/docs#config).
71
-
72
- To start an ngrok tunnel to your app in your localhost development environment:
73
-
74
- ```console
75
- $ shopify tunnel start
76
- ```
77
-
78
- To stop the running ngrok tunnel:
79
-
80
- ```console
81
- $ shopify tunnel stop
82
- ```
@@ -1,35 +1,4 @@
1
1
  ---
2
- title: Getting started with Node.js app projects
3
- section: node
4
- toc: false
2
+ title: Getting started with Shopify App CLI
3
+ redirect_to: https://shopify.dev/tools/cli/getting-started
5
4
  ---
6
-
7
- ## Create a new Node.js app project
8
-
9
- To create a new Node.js project, type `shopify create node`. This will scaffold a new Node.js app in a subdirectory.
10
-
11
- ```console
12
- $ shopify create node
13
- ? App Name
14
- >
15
- ```
16
-
17
- ## Start a local development server
18
-
19
- Once your app is created, you can work with it immediately by running `shopify serve` to start a local development server. Shopify App CLI uses [ngrok](https://ngrok.com) to create a tunnel. ngrok will choose a unique URL for you. The server will stay open until you type **Ctrl-C**.
20
-
21
- ```console
22
- $ shopify serve
23
- ✓ ngrok tunnel running at https://example.ngrok.io
24
- ✓ writing .env file...
25
- ```
26
-
27
- ## Install your app on your development store
28
-
29
- With the server running, open a new terminal window and run `shopify open` to open your app in your browser and install it on a development store.
30
-
31
- ```console
32
- $ shopify open
33
- ```
34
-
35
- For more information, consult the [Node.js project command reference]({{ site.baseurl }}{% link app/node/commands/index.md %}).
@@ -1,80 +1,4 @@
1
1
  ---
2
- title: Rails app project command reference
3
- section: rails
2
+ title: Ruby on Rails app commands
3
+ redirect_to: https://shopify.dev/tools/cli/reference/ruby-on-rails-app
4
4
  ---
5
-
6
- ## `deploy`
7
-
8
- Deploy the current Rails project to a hosting service. Currently, the only option is [Heroku](https://www.heroku.com).
9
-
10
- ```console
11
- $ shopify deploy heroku
12
- ```
13
-
14
- ## `generate`
15
-
16
- Generate boilerplate code inside your app project. Rails projects support generating new webhooks.
17
-
18
- ```console
19
- $ shopify generate webhook
20
- ```
21
-
22
- ## `open`
23
-
24
- Open your local development app in your default browser.
25
-
26
- ```console
27
- $ shopify open
28
- ```
29
-
30
- ## `populate`
31
-
32
- Add example data to your development store. This is useful for testing your app’s behavior. You can create the following types of example store records:
33
-
34
- - Products
35
- - Customers
36
- - Orders
37
-
38
- ```console
39
- $ shopify populate products
40
- $ shopify populate customers
41
- $ shopify populate draftorders
42
- ```
43
-
44
- By default, the `populate` command adds 5 records. Use the `--count` option to specify a different number:
45
-
46
- ```console
47
- $ shopify populate products --count 10
48
- ```
49
-
50
- ## `serve`
51
-
52
- Start a local development server for your project, as well as a public [ngrok](https://ngrok.com/) tunnel to your localhost.
53
-
54
- ```console
55
- $ shopify serve
56
- ```
57
-
58
- ## `tunnel`
59
-
60
- Control an HTTP tunnel to your local development app using [ngrok](https://ngrok.com). With the `tunnel` command you can authenticate with ngrok and start or stop the tunnel. (Note that the `serve` command will automatically run `tunnel start` for you.)
61
-
62
- To authenticate with ngrok, you need an authentication token. You can find it in [your ngrok dashboard](https://dashboard.ngrok.com/auth/your-authtoken). Copy your token and use it with the `tunnel auth` command:
63
-
64
- ```console
65
- $ shopify tunnel auth <token>
66
- ```
67
-
68
- This will write your ngrok auth token to `~/.ngrok2/ngrok.yml`. To learn more about ngrok configuration, [consult ngrok’s documentation](https://ngrok.com/docs#config).
69
-
70
- To start an ngrok tunnel to your app in your localhost development environment:
71
-
72
- ```console
73
- $ shopify tunnel start
74
- ```
75
-
76
- To stop the running ngrok tunnel:
77
-
78
- ```console
79
- $ shopify tunnel stop
80
- ```