Links
Comment on page

Contribute to Open Source

How to Submit xRunBooks and Actions to Github

xRunBooks

If you have created a xRunBook in the SAAS/Sandbox, select the xRunBook's 3 dot menu and choose "Download."
the xRUnbook list
The Three dot menu:
menu screenshot
In the repository, there is a sanitize.py script that will remove all of your parameters, credentials and outputs. Run this script against your RunBook:
python3 sanitize.py -f <ipynb file>

RunBook JSON file

You'll need to create a <RunBook name>.json file. This JSON has several attributes:
  • Name: the name of your xRunBook
  • Description: a detailed description of your runbook.
  • uuid: A unique Id. Generate this using the description value, and running:
echo "DESCRIPTION OF THE RUNBOOK" | shasum -a 256
  • icon: The connector type
  • categories: the categories of the xRunBook.
  • connector_types: The connector type
  • version: The version
Save this JSON file. With these 2 files, create a branch of the repo, and submit a PR.

Actions

To submit a custom Action, first create a working version in unSkript. To create an Action that can be submitted to Open Source:
  1. 1.
    Copy an existing "lego" in the Awesome-CloudOps-Automation.
  2. 2.
    Rename the folder, and the .py and .json files with teh same name - that describes your action (for example: "aws_get_ec2_instance_age")
  3. 3.
    Next we'll edit the files. Copy the Python code of your Action into the .py file.
    1. 1.
      Add a Class called InputSchema that describes the inputs for your action:
    class InputSchema(BaseModel):
    region: str = Field(
    title='Region',
    description='AWS Region of the ECS service')
  4. 4.
    Now Edit the JSON file (this is created for you when you save from Docker):
    1. 1.
      Name: the Name of your Action,
    2. 2.
      Description: the Description
    3. 3.
      Type: what connector will it use (ex: "LEGO_TYPE_AWS")
    4. 4.
      Entry Function: The name of the function called to run the Action.
    5. 5.
      Needs Credential: Boolean
    6. 6.
      Output_Type: Dict, Array, String
    7. 7.
      Supports polling: Boolean
    8. 8.
      Supports Iteration: Boolean
  5. 5.
    Write a readme file (a template is created on save from Docker). Attach images (save in the same directory) if helpful.
  6. 6.
    Once these files are completed, create a fork of the repo, and submit a PR to the Master branch. The unSkript team will promptly review your Action and provide comments, or accept your submission.