Added Shopify Themes CLI Plugin (The Second Attempt™️) #434
+126
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR fully implements the Shopify Theme CLI Shell Plugin. It builds off of the great work done by @ammiranda and @hculea on #397.
Shopify.CLI.Integration.Demo.mov
The video shows the 1Password Shopify Shell Plugin integrating with the
shopify theme
CLI and a theme access API key.Incidentally, there were a few interesting things I stumbled upon.
I couldn't implement the
importer
because the Shopify CLI stores the environment file by project directory rather than a fixed path.(instead of something like
~/config.toml
, it's{PROJECT_DIRECTORY}/shopify.theme.toml
).I noticed that
importer.NoOp()
would cause theop plugin init
flow to fail with[ERROR]... credential not found
for theImport into 1Password...
option. The same issue was mentioned in new(mongosh): Support mongosh executable for connecting to a MongoDB database #283. Without being able to see the underlying code causing the error, I provide a band-aid solution in this PR that fixes theimporter.NoOp()
implementation to no longer give this error.Shopify CLI also has a lone Webhooks CLI integration called
shopify webhook trigger
that requires a--client-secret
passkey. I'm very happy to implement this too. What are your thoughts?Type of change
Related Issue(s)
How To Test
(Side note: Not sure how to test the automatic chrome extension detection import here)
op plugin init shopify
. Store the key through the import option.--password
option or the Shopify built-in authentication. It should work.Changelog
Added Shopify Themes Plugin.
Added an empty attempt to importer.NoOp() to correctly function without error.