Sha256: e5b50a66ad9cb3d690e9e6d6f9b3283be945b6194622535faed980d1c2af9500
Contents?: true
Size: 1.85 KB
Versions: 12
Compression:
Stored size: 1.85 KB
Contents
# Hephaestus A plug template for Yetto. Use this to quickly spin up new plugs with a set of defaults. ## Usage ``` gem install hephaestus hephaestus plug-app ``` Where `app` represents the name of the platform you'd like to interact with `jira`, `notion`, `slack`, etc. If you're working on updating/testing this gem locally, you may also want: ``` rm -rf plug-app && DEBUG=1 hephaestus/bin/hephaestus plug-app ``` This way you can wipe the dir and quickly iterate on new changes. ## Building upon it ### Launching the server First, you'll note that you have a `script/ngrok` file, which launches an ngrok server at `https://plug-app.ngrok.io`, which maps locally to `http://localhost:6661`. This can be essential when testing the platform locally for the first time. (Keep in mind that you still need to run `script/server` to actually start the local server—this is just to help facilitate communication with the platform.) ### Setting up routes You should probably open up config/routes.rb to make modifications to any incoming (from the platform) or outgoing (for Yetto) HTTP flows. ### Defining settings Next, you'll want to open `app/views/settings/new.json.jbuilder` and modify the JSON structure of the Settings form page users will see when they first install the plug. Note that this adheres to a strict schema. ### Accepting events After a user submits a plug installation on the Yetto side, it'll send a POST payload to `/api/:version/:event/:record_type`--for example, `/api/2023-03-06/after/plug_installation`. Open up the `yetto_controller.rb` file and decide what happens next! ### Creating services Any code which communicates with the third party should be placed in the `app/services` directory. A generic HTTP service is included. ## Acknowledgements This project was heavily based on [thoughtbot/suspenders](https://github.com/thoughtbot/suspenders).
Version data entries
12 entries across 12 versions & 1 rubygems