# RoostGPT Command Line Interface (CLI)

Execute RoostGPT from your system as a local binary. 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.Executable is available for MacOS, Windows and Linux. RoostGPT binary is available at https://github.com/roost-io/roost-support/releases

# Download instructions

##### **For Windows**

Download the roostgpt-win.exe from [https://github.com/roost-io/roost-support/releases/download/v1.1.17/roostgpt-win.exe](https://github.com/roost-io/roost-support/releases/download/v1.1.17/roostgpt-win.exe)

Add the "roostgpt-win.exe" binary to your PATH environment variable


##### **For Ubuntu and MacOS**

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

# CLI Commands

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

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

- `-h, --help`: Displays the help message that provides information about the available options and usage.
- `roostgpt version update`: Update roostgpt version.
- `roostgpt config create`: Creates roostgpt configuration file. The configuration file contains environment variables used by RoostGPT application.  
    
    - `--output-dir, -o <path>`: Creates a configuration file in a specific directory. The configuration file contains environment variables used by the RoostGPT application. Default path is pwd.
    - `--name <name>`: Creates the configuration file with specific name. Default name is default.env.

- `roostgpt config update`: Updates the roostgpt configuration file.
    
    
    - `--config, -c <path>`: Specifies the location of the environment configuration file. The configuration file contains environment variables used by the RoostGPT application.
    - `--name <name>`: loads pwd/$name.env. It is ignored if the --file is provided.

- `roostgpt test create`: Triggers the test generation.
    
    
    - `--config,-c <path>`: Path to the configuration file if provided, Default value is pwd/default.env.
    - `--docker,-d`: Generate tests in a docker environment, see [supported features](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features) to see what tool/language versions are supported.
    - `--verbose,-v`: Enable verbose logging(Debug mode).
    - <span class="s1">`--interactive, -i`: Enable interactive mode.  
        </span>
- `roostgpt test improve`: Improve the selected test based on user feedback. 
    - `--docker,-d`: Improve tests in a docker environment, see [supported features](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features) to see what tool/language versions are supported.
    - `--verbose,-v`: Enable verbose logging(Debug mode).
    - <span class="s1">`--interactive, -i`: Enable interactive mode.  
          
        </span>
- `roostgpt test retrigger`: Re-trigger the chosen test from where it left off during its last execution.  
    
    - `--docker,-d`: Re-trigger tests in a docker environment, see [supported features](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features) to see what tool/language versions are supported.
    - `--verbose,-v`: Enable verbose logging(Debug mode).
    - <span class="s1">`--interactive, -i`: Enable interactive mode.</span>
- <span class="s1">roostgpt test support :<span class="Apple-converted-space"> </span>Involve RoostGPT support to improve the selected test.</span>
    
    
    - <span class="s1">`--verbose,-v`: Enable verbose logging(Debug mode).  
          
        </span>
- <span class="s1">roostgpt test execute : Execute the selected test  
    </span>
    
    
    - `--docker,-d`: Re-trigger tests in a docker environment, see [supported features](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features) to see what tool/language versions are supported.
    - `--verbose,-v`: Enable verbose logging(Debug mode).
    - <span class="s1">`--interactive, -i`: Enable interactive mode.</span><span class="s1">  
        </span>
    
    <span class="s1">  
    </span>
- <span class="s1">`roostgpt test view`: View all recent test plans and their triggers  
    </span>
- `roostgpt analysis`: Analyse the existing tests and scenarios and generate a report.
    
    
    - `--config,-c <path>`: Path to the configuration file if provided, Default value is pwd/default.env.
    - `--docker,-d`: Re-trigger tests in a docker environment, see [supported features](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features) to see what tool/language.
    - `--verbose,-v`: Enable verbose logging(Debug mode).

# Instructions for creating .env file

**An easy way to download the .env file is to use [https://app.roost.ai/gptCLIForm](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=github                                  # Default is github; Supports [github, gitlab, azure, bitbucket, local]
HOSTED_TYPE=cloud                                # Default is cloud; Supports [cloud, hosted]
GIT_HOSTED_URL=                                  # Required if HOSTED_TYPE=hosted
USE_SSH=false                                    # 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=true                          # 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
ENABLE_SECRET_SCANNING_BYPASS=                    # Optional; Default is true; Supports [true, false]

# Open AI env vars
OPENAI_API_MODEL=gpt-4                           # Optional; Default is gpt-4
OPENAI_BASE_URL=                                  # Optional; Default is "https://api.openai.com/v1"
OPENAI_API_KEY=                                  # Required if AI_TYPE=openai

# Vertex AI env vars
VERTEX_FINE_TUNE=false                           # Optional; Default is false, Supports [true, false]
VERTEX_CREDENTIAL_TYPE=                          # Required if AI_TYPE=vertexai; Supports [file, token]
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 and VERTEX_CREDENTIAL_TYPE=token
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]
VERTEX_SERVICE_ACCOUNT_KEY=                      # Required if AI_TYPE=vertexai and VERTEX_CREDENTIAL_TYPE=file; path to the service account key file

# 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=2024-02-15-preview          # Optional Default is 2024-02-15-preview
AZURE_INFERENCE_AI=                              # Optional; Default is false; Supports [true, false]

# 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

# AWS Bedrock env vars
AWS_BEDROCK_MODEL=                               # Required if AI_TYPE=AWS_BEDROCK
AWS_DEFAULT_REGION=                              # Required if AI_TYPE=AWS_BEDROCK
AWS_ACCESS_KEY_ID=                               # Optional if AI_TYPE=AWS_BEDROCK
AWS_SECRET_ACCESS_KEY=                           # Optional if AI_TYPE=AWS_BEDROCK
AWS_SESSION_TOKEN=                               # Optional if AI_TYPE=AWS_BEDROCK

# Advanced AI env vars
AI_TEMPERATURE=0.2                               # Optional; Default value is 0.2
USE_ASSISTANT=false                              # 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
CREATE_EXCEL=                                    # Optional; Default is false; Supports [true, false]
TICKET_INPUT_TYPE=                               # Optional; Default is id; Supports [id, file]
TICKET_FILES=                                    # Required if TICKET_INPUT_TYPE is file, List of comma separated files

# Log env vars
LOG_SOURCE=elks                                  # Optional; Default is elks
LOG_SOURCE_PATH=                                 # Optional; the log file path
LOG_FILE_ENCODING=                               # Optional; the log file encodeing; Default is utf-8
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=

# Proto Spec env cars
PROTO_SPEC_SOURCE=                               # Optional; Supports [file, gitpath, url, gitrepo]
PROTO_SPEC_FILE_PATH=                            # Optional; path of the source file if source is file/gitpath. Relative path in case of gitpath
PROTO_SPEC_URL=                                  # Optional; URL of the source file if source is url

PROTO_SPEC_GIT_REPO_URL=                         # Optional; the proto repo clone URL
PROTO_SPEC_GIT_BRANCH=                           # Required: branch of git repo of proto file
PROTO_SPEC_REPO_NAME=                            # Required; Repo name of proto file
PROTO_SPEC_REPO_ID=                              # Required if GIT_TYPE=gitlab
PROTO_SPEC_PROJECT_NAME=                         # Required for GIT_TYPE=azure
PROTO_SPEC_PROJECT_ID=                           # Required for GIT_TYPE=bitbucket

API_TEST_SERVER_CONFIG=                          # Optional; The api server config

# 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=get,post,put,patch,delete # 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=app.roost.ai                        # Optional; Default is app.roost.ai
ROOST_TOKEN=                                     # Optional; the Roost token or license filepath, default $HOME/.roost/license.ral
TELEMETRY=true                                   # Optional; Default is true, Supports [true, false], send telemetry data to roost, no private information is shared.

# Additional env vars
TEST_NAME=roost-test                             # Optional; Default is roost-test
ROOST_DIR=/var/tmp/Roost/RoostGPT                # Optional; Default is /var/tmp/Roost/RoostGPT
LANGUAGE=java                                    # Optional; Default is java; Supports [java, go, python, csharp, nodejs, cpp]
AI_TYPE=openai                                   # Optional; Default is openai; Supports [openai, vertexai, azure_open_ai, open_source_ai, sagemaker_model, claude_ai, dbrx, bedrock_ai, deepseek_ai]
JAVA_BUILD_TOOL=maven                            # 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=1                                      # Optional; Set VERIFY_TEST=true to enable iteration; Default value of ITERATION is 1
TIMEOUT=1                                        # Optional; Default is 1 hour
ROOST_USER_INPUT=                                # Optional; The user input will be used to generate tests.
TEST_TYPE=unit                                   # Optional; Default is unit Supports [unit, functional, artillery, integration, api-spec-test, ui-test, functional-source]
BOARD_TYPE=jira                                  # Optional; Default is jira; Supports [jira, azure, none]
MAX_DEPTH=-1                                     # Optional; Default is -1; if MAX_DEPTH is -1, it will traverse all the sub directories else the maximum depth directories to look for
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, karate, playwright] for [test_type: api-spec-test]
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
VERIFY_TEST=false                                # Optional; Default is false, Supports [true, false]
VULNERABILITY_GEN=false                          # Optional; Default is false, Supports [true, false]
CUSTOM_TAGS=                                     # Optional; The tags to be attached to test code, so that the test's can run based on tags
CONSIDER_EXISTING_TEST=false                     # Optional; Default is false, 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
CREATE_UNIQUE_BRANCH_FOR_REPORT=                 # Optional; Default is false; Supports [true, false]
ONE_TEST_FILE_PER_SOURCEFILE=                    # Optional; valid for LANGUAGE=go , if user want to generate a single test file per source file
GRADING_NOTES=
USER_SCENARIOS=
USE_CACHE=

# UI Test vars
BROWSER_USE_HEADLESS=true                        # Optional; Default is false; Supports [true, false]
URLS_TO_TEST=                                    # Required if TEST_TYPE="ui-test" and TEST_FRAMEWORK="playwright"

# User can provide additional env var starting with "UI_" prefix
UI_LOGIN_TYPE=                                   # Optional; use only if TEST_TYPE="ui-test" and TEST_FRAMEWORK="playwright"
UI_SITE_USERNAME=                                # Optional; use only if TEST_TYPE="ui-test" and TEST_FRAMEWORK="playwright"
UI_SITE_PASSWORD=                                # Optional; use only if TEST_TYPE="ui-test" and TEST_FRAMEWORK="playwright"                                       # 

# 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=17                                  # Optional; Default is 17, Used for TEST_FRAMEWORK "JUnit4, "JUnit5", "karate", "rest-assured"
MAVEN_VERSION=3.8.6                              # Optional; Default is 3.8.6, Used for TEST_FRAMEWORK "JUnit4, "JUnit5", "karate", "rest-assured"
GRADLE_VERSION=8.6                               # Optional; Default is 8.6, Used for TEST_FRAMEWORK "JUnit4, "JUnit5", "karate", "rest-assured"
GO_VERSION=1.19.9                                # Optional; Default is 1.19.9, Used for TEST_FRAMEWORK "gotest"
PYTHON_VERSION=3                                 # Optional; Default is 3, Used for TEST_FRAMEWORK "pytest", "unittest"
DOTNET_VERSION=8                                 # Optional; Default is 8, Used for TEST_FRAMEWORK "nunit"
NODE_VERSION=18.18.0                             # Optional; Default is 18.18.0, Used for TEST_FRAMEWORK "artillery", "postman", "rest-assured", "karate", "jest", "mocha"
KARATE_VERSION=1.5.1                             # Optional; Default is 1.5.1, Used for TEST_FRAMEWORK "karate",
```

**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"

# Details about env variables

**Here's a description of each variable:**

##### **\# Git env vars**

- **GIT\_TYPE**  
    Description: Specifies the type of Git repository.  
    Default Value: "github"  
    Supported Values: "github", "gitlab", "azure", "bitbucket", "local"  
    Optional/Required: Optional
- **HOSTED\_TYPE**  
    Description: Indicates where the Git platform is accessible.  
    Default Value: "cloud"  
    Supported Values: "cloud", "hosted"  
    Optional/Required: Optional
- **GIT\_HOSTED\_URL**  
    Description: The URL of the hosted Git platform.  
    Optional/Required: Required if HOSTED\_TYPE is "hosted"
- **USE\_SSH**  
    Description: Specifies whether to use SSH-based authentication for Git.  
    Default Value: "false"  
    Supported Values: "true", "false"  
    Optional/Required: Optional
- **LOCAL\_PROJECT\_PATH**  
    Description: Path to your workspace.  
    Optional/Required: Required if GIT\_TYPE is "local"
- **SOURCE\_GIT\_CLONE\_URL**  
    Description: Clone URL for the source repository.  
    Optional/Required: Optional
- **SOURCE\_GIT\_TOKEN**  
    Description: Token for authenticating the specific source Git repository.  
    Optional/Required: Required
- **SOURCE\_OWNER\_NAME**  
    Description: Name of the source repository owner (Git username).  
    Optional/Required: Required
- **SOURCE\_REPO\_NAME**  
    Description: Name of the source repository.  
    Optional/Required: Required
- **SOURCE\_REPO\_ID**  
    Description: ID of the source repository.  
    Optional/Required: Required if GIT\_TYPE is "gitlab"
- **SOURCE\_PROJECT\_NAME**  
    Description: Name of the source project.  
    Optional/Required: Required if GIT\_TYPE is "azure"
- **SOURCE\_PROJECT\_ID**  
    Description: ID of the source project.  
    Optional/Required: Required if GIT\_TYPE is "bitbucket"
- **SOURCE\_BASE\_BRANCH**  
    Description: Base branch to be tested in the source repository.  
    Optional/Required: Required
- **SOURCE\_RELATIVE\_DIRECTORY**  
    Description: Relative directory path within the source repository.  
    Optional/Required: Optional
- **SAME\_TARGET\_DETAIL**  
    Description: Indicates if the destination Git details are the same as the source Git details.  
    Default Value: "true"  
    Supported Values: "true", "false"  
    Optional/Required: Optional
- **DESTINATION\_GIT\_CLONE\_URL**  
    Description: Clone URL for the destination repository.  
    Optional/Required: Optional
- **DESTINATION\_GIT\_TOKEN**  
    Description: Token for authenticating the specific destination Git repository.  
    Optional/Required: Required if SAME\_TARGET\_DETAIL is "false"
- **DESTINATION\_OWNER\_NAME**  
    Description: Name of the destination repository owner (Git username).  
    Optional/Required: Required if SAME\_TARGET\_DETAIL is "false"
- **DESTINATION\_REPO\_NAME**  
    Description: Name of the destination repository.  
    Optional/Required: Required if SAME\_TARGET\_DETAIL is "false"
- **DESTINATION\_REPO\_ID**  
    Description: ID of the destination repository.  
    Optional/Required: Required if SAME\_TARGET\_DETAIL is "false" and GIT\_TYPE is "gitlab"
- **DESTINATION\_PROJECT\_NAME**  
    Description: Name of the destination project.  
    Optional/Required: Required if SAME\_TARGET\_DETAIL is "false" and GIT\_TYPE is "azure"
- **DESTINATION\_PROJECT\_ID**  
    Description: ID of the destination project.  
    Optional/Required: Required if SAME\_TARGET\_DETAIL is "false" and GIT\_TYPE is "bitbucket"
- **DESTINATION\_BASE\_BRANCH**  
    Description: Base branch in which the test code is to be pushed in the destination repository.  
    Optional/Required: Required if SAME\_TARGET\_DETAIL is "false"

##### **\# Open AI env vars**

<div id="bkmrk-openai_api_modeldesc"><div>- **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

</div><div>- **OPENAI\_API\_KEY**  
    Description: The API key required for accessing the OpenAI API.  
    Optional/Required: Required if AI\_TYPE is "openai"

</div></div>##### **\# AZURE Open AI env vars**

- <div><div>**AZURE\_OPENAI\_ENDPOINT**</div><div>Description: The API endpoint used to access Azure OpenAI services.</div><div>Optional/Required: Required if AI_TYPE is "azure_open_ai"</div><div>  
    </div></div>
- <div>**AZURE\_DEPLOYMENT\_NAME**<div>Description: The name of the Azure OpenAI deployment you wish to use.</div><div>Optional/Required: Required if AI_TYPE is "azure_open_ai"  
      
    </div></div>
- <div>**AZURE\_OPENAI\_KEY**<div>Description: The API key required for authenticating requests to Azure OpenAI.</div><div>Optional/Required: Required if AI_TYPE is "azure_open_ai"</div><div>  
    </div></div>
- <div>**AZURE\_OPENAI\_VERSION**<div>Description: Specifies the version of the Azure OpenAI API to be used.  
    Default Value: "2024-02-15-preview"</div><div>Optional/Required: Optional</div></div>

##### **\#Bedrock AI env vars** 

<div id="bkmrk-vertex_fine_tunedesc"><div>- **AWS\_BEDROCK\_MODEL**  
    Description: Indicates which bedrock model should be used.  
    Optional/Required: Required if AI\_TYPE is "bedrock\_ai"
- **AWS\_DEFAULT\_REGION**  
    Description: The AWS region of the model hosted  
    Optional/Required: Required if AI\_TYPE is "bedrock\_ai"

</div><div>- **AWS\_ACCESS\_KEY\_ID** Description: AWS Access Key ID Credentials  
    Optional/Required: Optional. Can be exported in the environment where Roost Binary will be running

</div><div>- **AWS\_SECRET\_ACCESS\_KEY** Description: AWS Secret Access Key ID Credentials  
    Optional/Required: Optional. Can be exported in the environment where Roost Binary will be running
- **AWS\_SESSION\_TOKEN** Description: AWS Session Token Credentials  
    Optional/Required: Optional. Can be exported in the environment where Roost Binary will be running

</div></div>##### **\# Vertex AI env vars** 

<div id="bkmrk-vertex_fine_tunedesc-1"><div>- **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"

</div><div>- **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"

</div><div>- **VERTEX\_BEARER\_TOKEN** Description: The bearer token used for authenticating requests to the Vertex API.  
    Optional/Required: Required if AI\_TYPE is "vertexai"

</div><div>- **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"

</div></div>##### **\# Open Source AI env vars**  


- <div><div>**OPEN\_SOURCE\_MODEL\_ENDPOINT**</div><div>Description: The API endpoint used to access the Open Source AI model.</div><div>Optional/Required: Required if AI_TYPE is "open_source_ai"</div><div>  
    </div></div>
- <div>**OPEN\_SOURCE\_MODEL**<div>Description: The name of the Open Source AI model you wish to use.</div><div>Supported Values: "meta-llama/Llama-2-13b-chat", "HuggingFaceH4/starchat-beta"</div><div>Optional/Required: Optional</div></div>

##### **\# SageMaker Model env vars**

- <div><div>**SAGEMAKER\_MODEL\_ENDPOINT**</div><div>Description: The endpoint where the SageMaker model is hosted.</div><div>Optional/Required: Required if AI_TYPE is "sagemaker_model"</div></div>

##### **\# Claude AI env vars**

- <div><div>**CLAUDE\_AI\_MODEL**</div><div>Description: Specifies the type of Claude AI model to be used.</div><div>Supported Values: "claude-3-opus-20240229", "claude-3-sonnet-20240229", "claude-3-haiku-20240307"</div><div>Optional/Required: Required if AI_TYPE is "claude_ai"</div><div>  
    </div></div>
- <div>**CLAUDE\_AI\_API\_KEY**<div>Description: The API key required for accessing the Claude AI API.</div><div>Optional/Required: Required if AI_TYPE is "claude_ai"</div></div>

##### **\# DBRX AI env vars**

- <div><div>**DBRX\_MODEL\_ENDPOINT**</div><div>Description: The endpoint where the DBRX AI model is hosted.</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**DBRX\_AUTH\_TOKEN**<div>Description: The authentication token required for accessing the DBRX model.</div><div>Optional/Required: Required if AI_TYPE is "dbrx"</div><div>  
    </div></div>
- <div>**DBRX\_MODEL\_NAME**<div>Description: The name of the DBRX model you wish to use.</div><div>Optional/Required: Required if AI_TYPE is "dbrx"</div></div>

##### **\# Advanced AI env vars**

- <div><div>**AI\_TEMPERATURE**</div><div>Description: Specifies the temperature setting for AI responses, which influences the creativity and variability of the test generation. A higher value results in more creative and varied outputs, while a lower value produces more deterministic responses.</div><div>Default Value: 0.6</div><div>Supported Values: Any numeric value, typically between 0.0 and 1.0.</div><div>Optional/Required: Optional</div></div><div>  
    </div>
- **USE\_ASSISTANT**<div>Description: Indicates whether to use the Assistant feature in OpenAI.</div><div>Supported Values: "true", "false"</div><div>Optional/Required: Optional</div>

##### **\# Jira board env vars**

- <div><div>**JIRA\_EMAIL**</div><div>Description: The email address associated with your Jira account.</div><div>Optional/Required: Required if TEST_TYPE is "functional" and BOARD_TYPE is "jira"</div><div>  
    </div></div>
- <div>**JIRA\_HOST\_NAME**<div>Description: The hostname of your Jira instance (e.g., jira.company.com).</div><div>Optional/Required: Required if TEST_TYPE is "functional" and BOARD_TYPE is "jira"</div><div>  
    </div></div>
- <div>**JIRA\_PASSWORD**<div>Description: The password for your Jira account.</div><div>Optional/Required: Required if TEST_TYPE is "functional" and BOARD_TYPE is "jira"</div><div>  
    </div></div>
- <div>**JIRA\_ID**<div>Description: The Jira ID associated with your account, often used as a unique identifier.</div><div>Optional/Required: Required if TEST_TYPE is "functional" and BOARD_TYPE is "jira"</div></div>

##### **\# Azure board env vars**

- <div><div>**AZURE\_ORG**</div><div>Description: The organization associated with your Azure DevOps account.</div><div>Optional/Required: Required if TEST_TYPE is "functional" and BOARD_TYPE is "azure"</div></div>
- <div>**AZURE\_TOKEN**<div>Description: The access token for authenticating with Azure DevOps.</div><div>Optional/Required: Required if TEST_TYPE is "functional" and BOARD_TYPE is "azure"</div><div>  
    </div></div>
- <div>**AZURE\_PROJECT**<div>Description: The name of the Azure DevOps project.</div><div>Optional/Required: Required if TEST_TYPE is "functional" and BOARD_TYPE is "azure"</div></div><div>  
    </div>
- <div><div>**AZURE\_WORK\_ITEM\_ID**</div><div>Description: The ID associated with the relevant work item in Azure DevOps.</div></div>


##### **\# Advanced Jira/Azure board env vars**

- <div><div>**CREATE\_API\_SPEC**</div><div>Description: Used for functional test type</div><div>Optional/Required: Required if TEST_TYPE=functional</div></div>

##### **\# Log env vars**

- <div><div>**LOG\_SOURCE**</div><div>Description: Origin from where the logs are generated.</div><div>Default Value: "elks"</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**LOG\_SOURCE\_PATH**<div>Description: Location where the log files are stored.</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**LOG\_ELASTICSEARCH\_URL**<div>Description: The URL for the Elasticsearch instance.</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**LOG\_ELASTICSEARCH\_USER**<div>Description: Username for accessing Elasticsearch resources.</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**LOG\_ELASTICSEARCH\_TOKEN**<div>Description: Authentication token used for accessing Elasticsearch resources.</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**LOG\_ELASTICSEARCH\_API\_KEY**<div>Description: API key used to authenticate and authorize access to Elasticsearch APIs.</div><div>Optional/Required: Optional</div></div><div>  
    </div>
- <div><div>**LOG\_FILE\_ENCODING**</div><div>Description: Used to encode the log file, default is utf-8, supports [utf-8, utf-16le].</div><div>Optional/Required: Optional</div></div>

##### **\# Behavioural Test cases env vars** 

- <div><div>**BEHAVIORAL\_TEST\_TYPE**</div><div>Description: Specifies the type of behavioral tests to be used.</div><div>Supported Values: "gherkin"</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**BEHAVIORAL\_TEST\_SOURCE**<div>Description: Specifies the source location for the behavioral test data.</div><div>Supported Values: "file", "gitpath", "url"</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**BEHAVIORAL\_TEST\_FILE\_PATH**<div>Description: Path to the source file if the BEHAVIORAL_TEST_SOURCE is "file" or "gitpath". For "gitpath", this should be a relative path within the repository.</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**BEHAVIORAL\_TEST\_URL**<div>Description: The URL of the source file if the BEHAVIORAL_TEST_SOURCE is "url".</div><div>Optional/Required: Optional</div></div>

##### **\# API Spec env vars**

- <div><div>**API\_SPEC\_TYPE**</div><div>Description: Specifies the type of API specification to be used.</div><div>Supported Values: "Swagger", "Postman"</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**API\_SPEC\_SOURCE**<div>Description: Specifies the source location for the API specification data.</div><div>Supported Values: "file", "gitpath", "url"</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**API\_SPEC\_FILE\_PATH**<div>Description: Path to the source file if API_SPEC_SOURCE is "file" or "gitpath". For "gitpath", this should be a relative path within the repository.</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**API\_SPEC\_URL**<div>Description: The URL of the source file if API_SPEC_SOURCE is "url".</div><div>Optional/Required: Optional</div></div><div>  
    </div>
- <div><div>**API\_SPEC\_ALIAS:**</div><div>Optional/Required: Optional</div></div>

##### **\# Application test env variables**

- <div><div>**APPLICATION\_ENTRYPOINT**</div><div>Description: Specifies the relative path of the application's entry point from the project root. This is used when application test generation is required in addition to unit tests.</div><div>Supported Values: Any valid relative path to the entry point file or directory within the project. Only supported for GPT-4-turbo models.</div><div>Optional/Required: Optional</div></div>

##### **\# API test env vars**

- <div><div>**HTTP\_VERBS\_FOR\_TESTING**</div><div>Description: Specifies the HTTP methods to be tested for all APIs. This allows you to filter which HTTP verbs (methods) should be included in the tests.</div><div>Default Value: "get,post,put,patch,delete"</div><div>Supported Values: Any combination of HTTP verbs, separated by commas (e.g., "get,post,put,patch,delete").</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**REGEX\_HTTP\_ENDPOINTS\_FOR\_TESTING**<div>Description: A regular expression string used to match specific endpoints that need to be tested. If this variable is left empty, all endpoints will be included in the testing.</div><div>Supported Values: Any valid regex pattern to filter endpoints.</div><div>Optional/Required: Optional</div></div>

##### **\# License env vars**

- <div><div>**ROOST\_DOMAIN**</div><div>Description: Specifies the Roost domain to be used. This defines the base URL for RoostGPT services.</div><div>Default Value: "app.roost.ai"</div><div>Supported Values: Any valid Roost domain URL.</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**ROOST\_TOKEN**<div>Description: The authentication token required for accessing RoostGPT CLI. This token is necessary for authenticating and authorizing your requests to RoostGPT.</div><div>Optional/Required: Required</div><div>  
    </div></div>
- <div>**TELEMETRY**<div>Description: Determines whether telemetry data is sent to Roost. Telemetry data helps improve the service but does not include private information.</div><div>Default Value: "true"</div><div>Supported Values: "true", "false"</div><div>Optional/Required: Optional</div></div>

##### **\# Additional vars**

- <div><div>**TEST\_NAME**</div><div>Description: The name assigned to the test.</div><div>Default Value: "roost-test"</div><div>Supported Values: Any valid string.</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**ROOST\_DIR**<div>Description: The directory path where RoostGPT files and configurations are stored.</div><div>Default Value: "/var/tmp/Roost/RoostGPT"</div><div>Supported Values: Any valid directory path.</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**LANGUAGE**<div>Description: The programming language of the source code to be tested.</div><div>Default Value: "java"</div><div>Supported Values: "java", "go", "python", "csharp", "node.js"</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**AI\_TYPE**<div>Description: Specifies the AI model used for generating tests.</div><div>Default Value: "openai"</div><div>Supported Values: "openai", "vertexai", "open_source_ai", "azure_open_ai", "sagemaker_model", "claude_ai", "dbrx"</div><div>Optional/Required: Optional</div></div><div>  
    </div>
- <div><div>**JAVA\_BUILD\_TOOL**</div><div>Description: Specifies the java build tool for which to generate test.</div><div>Default Value: "maven"</div><div>Supported Values: "maven", "gradle".</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**PACKAGES\_TO\_SCAN**<div>Description: Specifies the packages to be scanned for test generation. Supports single package or comma-separated values.</div><div>Supported Values: Comma-separated list of package names (e.g., "com.example.product" or "com.example.product, com.example.controller").</div><div>Optional/Required: Required for Java</div><div>  
    </div></div>
- <div>**ITERATION**<div>Description: The number of iterations to run and improve the tests.</div><div>Default Value: "1"</div><div>Supported Values: Any positive integer.</div><div>Optional/Required: Optional</div></div><div>  
    </div>
- **TIMEOUT**<div>Description: The duration after which test generation will automatically stop.</div><div>Default Value: "1 hour"</div><div>Supported Values: Any valid duration string (e.g., "30 minutes", "2 hours").</div><div>Optional/Required: Optional</div>
- **TEST\_TYPE**<div>Description: The type of test to generate.</div><div>Default Value: "unit"</div><div>Supported Values: "unit", "functional", "api-spec-test", "integration"</div><div>Optional/Required: Optional</div>
- **TEST\_FRAMEWORK**<div>Description: Specifies the testing framework to be used based on the programming language and test type.</div><div>Supported Values:</div><div>For Python: "pytest", "unittest"</div><div>For Golang: "gotest"</div><div>For Java: "JUnit4", "JUnit5"</div><div>For Csharp: "nunit"</div><div>For Node.js: "jest", "mocha"</div><div>For API spec tests or integration tests: "postman", "artillery", "rest-assured", "karate"</div><div>Optional/Required: Optional</div>
- <div>**TRIGGER\_ID**<div>Description: Unique identifier for triggers. Used to distinguish between multiple triggers.</div><div>Default Value: Epoch timestamp</div><div>Supported Values: Any unique string or timestamp.</div><div>Optional/Required: Optional</div></div><div>  
    </div>
- **BOARD\_TYPE**<div>Description: Specifies the type of board to be used for tracking.</div><div>Default Value: "jira"</div><div>Supported Values: "jira", "azure", "none"</div><div>Optional/Required: Optional</div>
- <div>**MAX\_DEPTH**<div>Description: Maximum depth of directories to search for test files. If set to -1, it will traverse all subdirectories.</div><div>Supported Values: Any non-negative integer or -1.</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**FUNCTIONS\_TO\_TEST**<div>Description: List of function names to be tested, specified as module.[class.]method or module.function.</div><div>Supported Values: Comma-separated list of function names.</div><div>Optional/Required: Optional</div></div><div>  
    </div>
- <div><div>**USE\_CACHE**</div><div><div>Description: Use local cache to generate test.(Only for Developers)</div><div>Default Value: "false"</div><div>Supported Values: "true","false".</div><div>Optional/Required: Optional</div></div><div>  
    </div></div>
- <div>**VERIFY\_TEST**<div>Description: Indicates whether to verify if the generated tests are running correctly.</div><div>Supported Values: "true", "false"</div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**VULNERABILITY\_GEN**<div>Description: Specifies whether to generate a vulnerability report based on the tests.</div><div>Supported Values: "true", "false"</div><div>Optional/Required: Optional</div></div><div>  
    </div>
- <div><div>**CONSIDER\_EXISTING\_TEST**</div></div><div>Description: 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</div><div>additional test cases as needed.</div>Default Value: "true" <div>Supported Values: "true", "false"</div><div>Optional/Required: Optional</div>
- <div><div><div>**GRADING\_NOTES**</div></div></div><div>Description:Grading notes are audit criteria used to evaluate and improve AI generated response for better accuracy and effectiveness.</div>Default Value: "true" <div>Supported Values: "true", "false"</div><div>Optional/Required: Optional</div>
- <div><div><div>**CUSTOM\_TAGS**</div></div></div><div>Description:The tags to be attached to test code, so that the test's can run based on tags</div><div>Optional/Required: Optional</div>
- **ROOST\_USER\_INPUT**<div>Description: User input to be used for generating tests.</div><div>Supported Values: Any valid input string.</div><div>Optional/Required: Optional  
      
    </div>

##### **\#UI Test env vars** 

- BROWSER\_USE\_HEADLESS  
    <div>Description: To Open the Browser in headless mode when running UI test  
    Supported Values: "true","false"  
    Optional/Required: Optional</div>
- URLS\_TO\_TEST  
    Description: The URL for which RoostGPT need to generate playwright test  
    Supported Values: Any valid website url  
    Optional/Required: Required  
      
    \# User can provide additional env var starting with "UI\_" prefix like UI\_LOGIN\_TYPE,UI\_LOGIN\_EMAIL etc.

#####   


##### **\# Improve Test env vars**

- **FILE\_PATH**<div>Description: Location of the file containing the test if the IMPROVE_TEST variable is set to "true." This file will be used as a basis for improving the generated test.</div><div>Supported Values: Any valid file path.</div><div>Optional/Required: Required if IMPROVE_TEST is set to "true."</div><div>  
    </div>
- <div>**USER\_CONTENT**<div>Description: Content provided by the user to be used for improving the generated test. This content will be incorporated into the improvement process.</div><div>Supported Values: Any valid text or data provided by the user.</div><div>Optional/Required: Required if IMPROVE_TEST is set to "true."  
      
    </div></div>
- <div>**TESTSCRIPT\_ENDPOINT**<div>Description: The endpoint to be improved when the TEST_TYPE is set to "postman." This specifies which API endpoint the Postman test script will target.</div><div>Supported Values: Any valid API endpoint URL.</div><div>Optional/Required: Required if TEST_TYPE is set to "postman."</div></div>

##### **\# Language version env vars**  


- <div>**JAVA\_VERSION**</div><div>Description: Specifies the version of Java to be used when the TEST_FRAMEWORK is "JUnit4", "JUnit5", "karate", or "rest-assured".</div><div>Default Value: "17"</div><div>[Supported Values](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features)</div><div>Optional/Required: Optional</div><div>  
    </div>
- **MAVEN\_VERSION**<div>Description: Specifies the version of Maven to be used for Java projects when the TEST_FRAMEWORK is "JUnit4", "JUnit5", "karate", or "rest-assured".  
    Default Value: "3.8.6"  
    </div><div>[Supported Values](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features)</div><div>Optional/Required: Optional</div><div>  
    </div>
- **GRADLE\_VERSION**<div>Description: Specifies the version of Gradle to be used for Java projects when the TEST_FRAMEWORK is "JUnit4", "JUnit5", "karate", or "rest-assured".  
    Default Value: "8.6"  
    </div><div>[Supported Values](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features)</div><div>Optional/Required: Optional</div><div>  
    </div>
- <div>**GO\_VERSION**<div>Description: Specifies the version of Go to be used when the TEST_FRAMEWORK is "gotest".  
    Default Value: "1.19.9"  
    [Supported Values](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features)  
    </div><div>Optional/Required: Optional</div><div>  
    </div></div>
- **PYTHON\_VERSION**<div>Description: Specifies the version of Python to be used when the TEST_FRAMEWORK is "pytest" or "unittest".  
    Default Value: "3"  
    </div><div>[Supported Values](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features)</div><div>Optional/Required: Optional</div><div>  
    </div>
- <div>**DOTNET\_VERSION**<div>Description: Specifies the version of .NET to be used when the TEST_FRAMEWORK is "nunit".  
    Default Value: "8"  
    [Supported Values](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features)  
    </div><div>Optional/Required: Optional</div><div>  
    </div></div>
- <div>**NODE\_VERSION**<div>Description: Specifies the version of Node.js to be used when the TEST_FRAMEWORK is "artillery", "postman", "rest-assured", "karate", "jest", or "mocha".  
    Default Value: "18.18.0"  
    </div><div>[Supported Values](https://docs.roost.ai/topics/trying-roostgpt/page/supported-features)</div><div>Optional/Required: Optional</div></div>