CLI

Installation Command

RoostGPT binary is available at https://github.com/roost-io/roost-support/releases

The RoostGPT binary allows for unmatched flexibility during test generation, by allowing you to trigger test generation both locally and through git through the use of one simple .env file.

Add the "roostgpt-<linux|macos|win.exe>" binary to your PATH environment variable

For Linux/MacOS,  you can execute the below command to install roostgpt

curl https://raw.githubusercontent.com/roost-io/roost-support/master/roostgpt.sh | bash -

CLI Commands

roostgpt   (for mac) &  ./roostGPT-win.exe (for windows)

This command is used to run the RoostGPT CLI on your operating system.

Instructions for creating .env file

An easy way to download the .env file is to use https://app.roost.ai/gptCLIForm

The .env file should be in the same folder path as RoostGPT binary.
Here is what the content of your .env file will look like:

# GIT env vars
GIT_TYPE=                                        # Default is github; Supports [github, gitlab, azure, bitbucket, local]
HOSTED_TYPE=                                     # Default is cloud; Supports [cloud, hosted]
GIT_HOSTED_URL=                                  # Required if HOSTED_TYPE=hosted
USE_SSH=                                         # Optional; Default is false; Supports [true, false]; SSH based auth for Git
LOCAL_PROJECT_PATH=                              # Required if GIT_TYPE is local, Path to your workspace
SOURCE_GIT_CLONE_URL=                            # Optional; the source repo clone URL
SOURCE_GIT_TOKEN=                                # Required
SOURCE_OWNER_NAME=                               # Required
SOURCE_REPO_NAME=                                # Required
SOURCE_REPO_ID=                                  # Required for GIT_TYPE=gitlab
SOURCE_PROJECT_NAME=                             # Required for GIT_TYPE=azure
SOURCE_PROJECT_ID=                               # Required for GIT_TYPE=bitbucket
SOURCE_BASE_BRANCH=                              # Required
SOURCE_RELATIVE_DIRECTORY=                       # Optional; the relative path of the repository
SAME_TARGET_DETAIL=                              # Optional; Default true, Supports [true, false]
DESTINATION_GIT_CLONE_URL=                       # Optional; the destination repo clone URL
DESTINATION_GIT_TOKEN=                           # Required if SAME_TARGET_DETAIL=false
DESTINATION_OWNER_NAME=                          # Required if SAME_TARGET_DETAIL=false
DESTINATION_REPO_NAME=                           # Required if SAME_TARGET_DETAIL=false
DESTINATION_REPO_ID=                             # Required if SAME_TARGET_DETAIL=false and GIT_TYPE=gitlab
DESTINATION_PROJECT_NAME=                        # Required for GIT_TYPE=azure
DESTINATION_PROJECT_ID=                          # Required if SAME_TARGET_DETAIL=false and GIT_TYPE=bitbucket
DESTINATION_BASE_BRANCH=                         # Required if SAME_TARGET_DETAIL=false

# Open AI env vars
OPENAI_API_MODEL=                                # Optional; Default is gpt-4
OPENAI_API_KEY=                                  # Required if AI_TYPE=openai

# Vertex AI env vars
VERTEX_FINE_TUNE=                                # Optional; Default is false, Supports [true, false]
VERTEX_PROJECT_ID=                               # Required if AI_TYPE=vertexai
VERTEX_REGION=                                   # Required if AI_TYPE=vertexai and VERTEX_FINE_TUNE=true
VERTEX_BEARER_TOKEN=                             # Required if AI_TYPE=vertexai
VERTEX_MODEL=                                    # Required if AI_TYPE=vertexai; Supports [text-bison, code-bison, codechat-bison, text-bison-32k, code-bison-32k, codechat-bison-32k, gemini-pro]

# Azure Open AI env vars
AZURE_OPENAI_ENDPOINT=                           # Required if AI_TYPE=azure_open_ai
AZURE_DEPLOYMENT_NAME=                           # Required if AI_TYPE=azure_open_ai
AZURE_OPENAI_KEY=                                # Required if AI_TYPE=azure_open_ai
AZURE_OPENAI_VERSION=                            # Optional Default is 2023-12-01-preview

# Open source env vars
OPEN_SOURCE_MODEL_ENDPOINT=                      # Required if AI_TYPE=open_source_ai
OPEN_SOURCE_MODEL=                               # Optional; Supports [meta-llama/Llama-2-13b-chat, HuggingFaceH4/starchat-beta]

# Sagemaker model env vars
SAGEMAKER_MODEL_ENDPOINT=                        # Required if AI_TYPE=sagemake_model

# Claude AI env vars 
CLAUDE_AI_MODEL=                                 # Required if AI_TYPE=claude_ai
CLAUDE_AI_API_KEY=                               # Required if AI_TYPE=claude_ai

# DBRX AI env vars 
DBRX_MODEL_ENDPOINT=                             # Required if AI_TYPE=dbrx
DBRX_AUTH_TOKEN=                                 # Required if AI_TYPE=dbrx                                   
DBRX_MODEL_NAME=                                 # Required if AI_TYPE=dbrx

# Advanced AI env vars
AI_TEMPERATURE=                                  # Optional; Default value is 0.6
USE_ASSISTANT=                                   # Optional; Use Assistant feature in openai. Default:false

# Jira board env vars
JIRA_HOST_NAME=                                  # Required if TEST_TYPE=functional and BOARD_TYPE=jira
JIRA_EMAIL=                                      # Required if TEST_TYPE=functional and BOARD_TYPE=jira
JIRA_TOKEN=                                      # Required if TEST_TYPE=functional and BOARD_TYPE=jira
JIRA_ID=                                         # Optional if TEST_TYPE=functional and BOARD_TYPE=jira

# Azure board env vars
AZURE_ORG=                                       # Required if TEST_TYPE=functional and BOARD_TYPE=azure
AZURE_PROJECT=                                   # Required if TEST_TYPE=functional and BOARD_TYPE=azure
AZURE_TOKEN=                                     # Required if TEST_TYPE=functional and BOARD_TYPE=azure
AZURE_WORK_ITEM_ID=                              # Optional if TEST_TYPE=functional and BOARD_TYPE=azure

# Advanced Jira/Azure board env vars
CREATE_API_SPEC=                                 # Optional; Used for TEST_TYPE=functional

# Log env vars
LOG_SOURCE=                                      # Optional; Default is elks
LOG_SOURCE_PATH=                                 # Optional; the log file path
LOG_FILE_ENCODING=                               # Optional; Default is utf-8, supports [utf-8, utf-16le]
LOG_ELASTICSEARCH_URL=                           # Optional; the Elastic search URL
LOG_ELASTICSEARCH_USER=                          # Optional; the Elastic search user name
LOG_ELASTICSEARCH_TOKEN=                         # Optional; the Elastic search token
LOG_ELASTICSEARCH_API_KEY=                       # Optional; the Elastic search api key

# Behavioural test cases env vars
BEHAVIORAL_TEST_TYPE=                            # Optional; Supports [gherkin]
BEHAVIORAL_TEST_SOURCE=                          # Optional; Supports [file, gitpath, url]
BEHAVIORAL_TEST_FILE_PATH=                       # Optional; path of the source file if source is file/gitpath. Relative path in case of gitpath
BEHAVIORAL_TEST_URL=                             # Optional; URL of the source file if source is url

# API Spec env vars
API_SPEC_TYPE=                                   # Optional; Supports [swagger, postman, raml]
API_SPEC_SOURCE=                                 # Optional; Supports [file, gitpath, url]
API_SPEC_FILE_PATH=                              # Optional; path of the source file if source is file/gitpath. Relative path in case of gitpath
API_SPEC_URL=                                    # Optional; URL of the source file if source is url
API_SPEC_ALIAS=

# Cypress test env vars
SCREENSHOTS_SOURCE=                              # Optional; Used for cypress test. Supports [file, gitpath, url]
SCREENSHOTS_URL=                                 # Optional; URL of the source file if source is url
SCREENSHOTS_FILE_PATH=                           # Optional; path of the source file if source is file/gitpath. Relative path in case of gitpath

HTTP_VERBS_FOR_TESTING=                          # Optional; Default is "get,post,put,patch,delete", Supports all the combinations of http verbs. The specific http methods to be tested for all APIs. Enter "," seperated values here. 
REGEX_HTTP_ENDPOINTS_FOR_TESTING=                # Optional; Regex string that matches to specific endpoints that needs to be tested. If empty, all the endpoints will be tested.

# Application test env vars
APPLICATION_ENTRYPOINT=                          # Required; if you need to generate application tests along with unit tests. This feature is supported only for GPT Turbo models. Use a relative path from the project root.

# License env vars
ROOST_DOMAIN=                                    # Optional; Default is app.roost.ai
ROOST_TOKEN=                                     # Optional; the Roost token or license filepath, default $HOME/.roost/license.ral
TELEMETRY=                                       # Optional; Default is true, Supports [true, false], send telemetry data to roost, no private information is shared.

# Additional env vars
TEST_NAME=                                       # Optional; Default is roost-test
ROOST_DIR=                                       # Optional; Default is /var/tmp/Roost/RoostGPT
LANGUAGE=                                        # Optional; Default is java; Supports [java, go, python, csharp, nodejs, reactjs, cpp]
AI_TYPE=                                         # Optional; Default is openai; Supports [openai, vertexai, azure_open_ai, open_source_ai, sagemaker_model, claude_ai, dbrx]
JAVA_BUILD_TOOL=                                 # Optional; Default is maven; Supports [maven, gradle]
PACKAGES_TO_SCAN=                                # Optional; Default is "*"; used for LANGUAGE=java, for generating tests for specific packages; Enter comma seperated values. E.g. "com.demo.sample,"com.example.products"
ITERATION=                                       # Optional; Set VERIFY_TEST=true to enable iteration; Default value of ITERATION is 1
TIMEOUT=                                         # Optional; Default is 1 hour
TEST_TYPE=                                       # Optional; Default is unit Supports [unit, functional, artillery, integration, api-spec-test]
TEST_FRAMEWORK=                                  # Optional; Default is "pytest" for Python, "gotest" for Golang, "JUnit4" for Java, "nunit" for CSharp, "jest" for Node.js, "postman" for Postman test-script. Supports [pytest, unittest] for Python, [gotest] for Golang, [JUnit4, JUnit5] for Java, [nunit] for Csharp, [jest] for Node.js, [postman, artillery, rest-assured] for [test_type: api-spec-test]
TRIGGER_ID=                                      # Unique id to identify multiple triggers; Default is epoch
BOARD_TYPE=                                      # Optional; Default is jira; Supports [jira, azure, none]
MAX_DEPTH=                                       # Optional; Default is -1; if MAX_DEPTH is -1, it will traverse all the sub directories else the maximum depth directories to look for
FUNCTIONS_TO_TEST=                               # Optional; List of function names to be tested, separated by comma. Name to be specified as module.[class.]method OR module.function
USE_CACHE=                                       # Optional; Used for only developer. Default:false
VERIFY_TEST=                                     # Optional; Default is true, Supports [true, false]
VULNERABILITY_GEN=                               # Optional; Default is false, Supports [true, false]
CONSIDER_EXISTING_TEST=                          # Optional; Default is true, Supports [true, false], used for Java, python, Golang unit test generation, It scans your repository to identify any existing tests for the specified function. If tests are found, it incorporates them into its consideration and generates additional test cases as needed
GRADING_NOTES=                                   # Optional; default is true
CUSTOM_TAGS=                                     # Optional; The tags to be attached to test code, so that the test's can run based on tags
ROOST_USER_INPUT=                                # Optional; The user input will be used to generate tests

# Improve test env vars
FILE_PATH=                                       # Required if IMPROVE_TEST=true
USER_CONTENT=                                    # Required if IMPROVE_TEST=true
TESTSCRIPT_ENDPOINT=                             # Required if IMPROVE_TEST=true and TEST_FRAMEWORK=postman

# Language version env vars, Used when RoostGPT is run in docker mode, visit https://docs.roost.ai/topics/roostgpt/page/cli to check the supported language versions
JAVA_VERSION=                                    # Optional; Default is 17, Used for TEST_FRAMEWORK "JUnit4, "JUnit5", "karate", "rest-assured"
MAVEN_VERSION=                                   # Optional; Default is 3.8.6, Used for TEST_FRAMEWORK "JUnit4, "JUnit5", "karate", "rest-assured"
GRADLE_VERSION=                                  # Optional; Default is 8.6, Used for TEST_FRAMEWORK "JUnit4, "JUnit5", "karate", "rest-assured"
GO_VERSION=                                      # Optional; Default is 1.19.9, Used for TEST_FRAMEWORK "gotest"
PYTHON_VERSION=                                  # Optional; Default is 3, Used for TEST_FRAMEWORK "pytest", "unittest"
DOTNET_VERSION=                                  # Optional; Default is 8, Used for TEST_FRAMEWORK "nunit"
NODE_VERSION=                                    # Optional; Default is 18.18.0, Used for TEST_FRAMEWORK "artillery", "postman", "rest-assured", "karate", "jest","mocha"


Note: If a value in your .env file contains the '#' character, enclose the entire value in quotes. This prevents the '#' from being interpreted as the start of a comment.
Example: SECRET_KEY="my#secret#key"

Here's a description of each variable:

# Git env vars
# Open AI env vars
  • OPENAI_API_MODEL
    Description: Specifies the type of the OpenAI API model to be used.
    Default Value: "gpt-4"
    Supported Values: "gpt-4", "gpt-3.5-turbo", etc. (Availability of models depends on the OPENAI_API_KEY).
    Optional/Required: Optional
  • OPENAI_API_KEY
    Description: The API key required for accessing the OpenAI API.
    Optional/Required: Required if AI_TYPE is "openai"
# AZURE Open AI env vars
# Vertex AI env vars
  • VERTEX_FINE_TUNE
    Description: Indicates whether fine-tuning is enabled for the model.
    Default Value: "false"
    Supported Values: "true", "false"

  • VERTEX_PROJECT_ID
    Description: The ID of the Vertex project you are working with.
    Optional/Required: Required if AI_TYPE is "vertexai"
  • VERTEX_REGION
    Description: The region where the Vertex project is located. For example, "us-central1".
    Optional/Required: Required if AI_TYPE is "vertexai" and VERTEX_FINE_TUNE is "true"
  • VERTEX_BEARER_TOKEN
    Description: The bearer token used for authenticating requests to the Vertex API.
    Optional/Required: Required if AI_TYPE is "vertexai"
  • VERTEX_MODEL
    Description: The name of the Vertex model to be used.
    Supported Values: "text-bison", "code-bison"
    Optional/Required: Required if AI_TYPE is "vertexai"
# Open Source AI env vars
# SageMaker Model env vars
# Claude AI env vars
# DBRX AI env vars
# Advanced AI env vars
# Jira board env vars
# Azure board env vars
# Advanced Jira/Azure board env vars
# Log env vars
# Behavioural Test cases env vars
# API Spec env vars
# Cypress test env vars
# Application test env variables
# API test env vars
# License env vars
# Additional vars
# Improve Test env vars
# Language version env vars

Revision #43
Created 14 June 2023 08:07:49 by Divyesh
Updated 23 October 2024 09:24:13 by Yash