RoostGPT

RoostGPT דורש את הדברים הבאים כדי לפעול בהצלחה

השוואת תכונות של פלטפורמת RoostGPT

תכונות נתמכות באפשרויות פריסה שונות

קטגוריית תכונה ממשק אינטרנט (UI) ממשק שורת פקודה (CLI) תוסף IDE
שילוב סביבת עבודה לא זמין ✅ תמיכה בטריגר של סביבת עבודה מקומית ✅ תמיכה בטריגר של סביבת עבודה מקומית
שילוב בקרת גרסאות ✅ תמיכה מלאה בפעילות Git דרך ממשק אינטרנט ✅ תמיכה מלאה בפעילות Git באמצעות פקודות CLI ❌ מוגבל לפעולות בסביבת עבודה מקומית
התראות ✅ התראות בזמן אמת עם סיום יצירת הבדיקה ❌ אין מערכת התראות ❌ אין מערכת התראות
ניהול רישיונות ✅ אימות רישיון משולב בממשק המשתמש ✅ אימות קבצי רישיון או מבוסס API ✅ אימות קבצי רישיון או מבוסס API
ניטור אירועים ✅ תמיכה ב-Webhook עבור אירועי Git (יצירת PR, דחיפה וכו') ❌ אין ניטור אירועי Git ❌ אין ניטור אירועי Git
ניהול משתמשים ✅ בקרת גישה מבוססת תפקידים עם תצוגות מנהל ומשתמש נפרדות ⚠️ על בסיס משתמש אינדיבידואלי במערכת מקומית ⚠️ על בסיס משתמש אינדיבידואלי במערכת מקומית
אנליטיקה ודיווח ✅ לוח מחוונים מקיף עם דוחות ומדדים מפורטים ליצירת בדיקות ❌ אין פונקציונליות של לוח המחוונים ⚠️ ממשק משתמש בסיסי המציג רק בדיקות שנוספו
סביבת ביצוע בדיקות ✅ מכולות Docker מבודדות לביצוע בדיקות מאובטח ואימות קומפילציה ⚠️ מצב מקומי: ניהול תלויות ידני
     מצב Docker: דורש זמן ריצה של Docker
⚠️ נדרש ניהול תלות ידני
קלות שימוש ✅ טפסי אינטרנט אינטואיטיביים עם יצירת בדיקות בלחיצה אחת ⚠️ הגדרת קובץ env או הורדת env מממשק המשתמש של האינטרנט עבור טריגר ממשק שורת פקודה (CLI) ✅ שילוב תפריט הקשר עם תמיכה בעדשות קוד
כלי השוואת בדיקות ✅ תצוגת השוואה מובנית עבור תרחישי בדיקה מרובים ❌ אין פונקציונליות השוואה ❌ אין פונקציונליות השוואה
שרת API ✅ שרת API ייעודי לגישה תכנותית ❌ אין שרת API ❌ אין שרת API
היסטוריה ומסלול ביקורת ✅ היסטוריית אירועים מקיפה ורישום ביקורת ⚠️ היסטוריה מבוססת ממשק שורת פקודה (CLI) עבור סשן המשתמש הנוכחי ❌ אין ניהול היסטוריה
שיתוף צוות ✅ שיתוף אישורים מרכזי באמצעות מחברים והפצה של תצורות בדיקה כלל-צוותיות ❌ אין יכולות שיתוף ❌ אין יכולות שיתוף

מסד נתונים

הַתמָדָה 

✅ תצורות בדיקה ומחברים מאוחסנים במסד נתונים מרכזי ⚠️ אין שמירה על הגדרות. התצורה נשמרת באופן מקומי במערכת. ⚠️ אין שמירה על הגדרות. התצורה נשמרת באופן מקומי במערכת.

מערכת עצמאית

❌ לא ניתן לפרוס את ממשק המשתמש כעצמאי ויש לאחסן אותו בשרת ✅ ניתן לפרוס ממשק שורת פקודה (CLI) כעצמאי ללא שרת API או שרת מתארח ✅ ניתן לפרוס את התוסף כעצמאי ללא שרת API או שרת מתארח

פְּרִיסָה

בענן ובמקום העבודה  בלינוקס, חלונות, מק OS מהתקנת VSCode Marketplace והדיסק של IntelliJ

אַגָדָה

אפשרויות פריסה

ממשק אינטרנט (UI)

הכי טוב עבור: צוותים הדורשים ניהול פרויקטים מקיף, ניתוח מפורט וניהול מרכזי.

ממשק שורת פקודה (CLI)

הכי טוב בשביל: מפתחים המעדיפים זרימות עבודה מבוססות טרמינל ואינטגרציה אוטומטית של צינורות CI/CD.

תוסף IDE

מתאים ביותר ל: מפתחים פרטיים המחפשים אינטגרציה חלקה בסביבת הפיתוח שלהם.

ממשק תכנות יישומים (API)

הכי טוב בשביל: שילוב אוטומטי של צינורות CI/CD (ממשקי API מוגבלים חשופים לגישה לשרת ה-API המתארח של RoostGPT).

RoostGPT בניהול עצמי (Self hosted) - OnPrem

התקנת RoostGPT על שרת אובונטו

RoostGPT בניהול עצמי (Self hosted) - OnPrem

דרישות שרת אובונטו

למשתמשי אובונטו רצוי שיהיה להם גישת sudo ללא סיסמה

RoostGPT בניהול עצמי (Self hosted) - OnPrem

Roost הורד את כלי הפריסה של

העתק והפעל את קטע ה-bash שלהלן. הכלי יבקש את הפרטים הדרושים ויפעיל את מחסנית RoostGPT.

curl -sLO https://github.com/roost-io/roost-support/releases/latest/download/roost-deployment-tool 
chmod +x roost-deployment-tool
RoostGPT בניהול עצמי (Self hosted) - OnPrem

SSL תצורת רשת ותעודות

תעודות SSL לדומיין הארגוני

העתיקו תעודות SSL לשרת אובונטו ורשום לעצמך את המפתח ואת מיקום קובץ האישור.

זה חייב להיות מוזכר בקובץ config.json 

תצורת רשת

אפשר תעבורה נכנסת לפורטים הבאים

פּרוֹטוֹקוֹל נָמָל IP מקור
TCP (HTTPS) 443 כל כתובות ה-IP ברשת החברה
SSH 22 לשימוש צוות תמיכת ה-IT בלבד
TCP 60001 - 62120

RoostGPT בניהול עצמי (Self hosted) - OnPrem

RoostGPT הפעלת סטאק

בצע את הפקודה למטה כדי לעדכן את הסטאק

./roost-deployment-tool create-stack


כדי לרענן/לשדרג את גרסת Roost סטאק
./roost-deployment-tool refresh-stack

RoostGPT מאוחסן בעצמו - פריסה ב-AWS באמצעות Terraform

כדי לארח את ערימת RoostGPT באופן עצמאי, אנו זקוקים למשאבי התשתית הבאים. 

המשאבים הבאים יוקצו באמצעות סקריפט Terraform

RoostGPT מאוחסן בעצמו - פריסה ב-AWS באמצעות Terraform

1. תחילת העבודה

Roost מספקת סקריפטים של Terraform כדי להפעיל ולקבוע את התצורה של פלטפורמת RoostGPT בקלות. להלן השלבים לפריסת Roost ב-AWS באמצעות Terraform. 

ארכיטקטורה ברמה גבוהה

סקריפטים של Roost Terraform יוצרים את הרכיבים הבאים בענן AWS 

RoostGPT-architecture-multiple-ec2.jpg

דיאגרמה אינטראקטיבית בכתובת https://docs.roost.ai/arch

דרישות קדם 

הורד את הסקריפטים של Terraform

curl -LO https://github.com/roost-io/roost-support/raw/refs/heads/master/terraform-ec2.zip
RoostGPT מאוחסן בעצמו - פריסה ב-AWS באמצעות Terraform

2. הגדרת ספק OAuth

Roost תומך במנגנוני אימות שונים כפי שצוין להלן

  1. אוקטה
  2. גוגל
  3. מיקרוסופט ת'ור ADFS

הגדרת לקוח אימות OKTA

הגדרת לקוח אימות גוגל

הגדרת לקוח אימות Azure ADFS

Roost 0Auth2 Setup - Windows Server 2016/2019 - ADFS 4.0

  1. פתח את מנהל השרתים מתפריט התחל, בחר כלים > ניהול AD FS

  2. ממסך ניהול AD FS , עבור אל AD FS ➜ קבוצות יישומים

  3. לחץ על הוסף קבוצת יישומים בחלונית הימנית

  1. מלא שם ( Roost ) עבור קבוצת היישומים

  2. בחר דפדפן אינטרנט של יישום שרת שניגש ל-API אינטרנטי ולחץ על הבא

  3. שימו לב לערך של מזהה הלקוח . זה יהיה הערך של AZURE_ADFS_CLIENT_IDהמשתנה

  4. מלאו את כתובת ה-URI להפניה ( https://<DNS_NAME>/login ) ולחצו על הוסף, לאחר מכן על הבא

  5. סמן את התיבה צור סוד משותף

  6. השתמשו בלחצן העתק ללוח כדי לאחזר את הסוד. זה יהיה הערך של AZURE_ADFS_CLIENT_SECRETהמשתנה. לחצו על הבא

  7. הזן את מזהה ה-Web API (זהה ל-RedirectUri - https://<DNS_NAME>/login ) ולחץ על הוסף, לאחר מכן על הבא.

  8. במסך מדיניות בקרת גישה , בחר מדיניות, בדרך כלל אפשר לכולם ולחץ על הבא

  9. במסך הגדרת הרשאות יישום , בחר את ה- openid של ההיקף ולחץ על הבא

  10. סקור את ההגדרות ולחצו על הבא

  11. סגור את האשף על ידי לחיצה על סגור . האפליקציה שלנו רשומה כעת ב- ADFS .

  1. כעת, עלינו להגדיר את התביעות עבור היישום

  1. פתחו את המאפיינים עבור קבוצת היישומים שזה עתה יצרנו.

  2. בחר את ערך יישום האינטרנט ( Roost - Web API ) ולחץ על עריכה

  3. בכרטיסייה כללי טרנספורמציה של הנפקה , לחץ על לחצן הוסף כלל

  4. בחר שלח מאפייני LDAP כתביעות ולחץ על הבא

  5. תן שם לכלל ( Roost Claims ) ובחר את Active Directory כמאגר המאפיינים.

  6. כעת הגדר את התביעות הבאות ( תכונת LDAP => סוג תביעה יוצאת ):

  1. כתובות דוא"ל => כתובת דוא"ל

  2. שם פרטי => שם פרטי

  3. שם משפחה => שם משפחה

  4. שם חשבון SAM => שם חשבון Windows

  5. שם משתמש ראשי => UPN

  1. לחץ על סיום כדי לשמור את התביעות

  2. כעת אתה אמור לראות את הכלל נוסף. לחץ על אישור מספר פעמים כדי לשמור את ההגדרות.

  1. כעת ההתקנה הושלמה. קבענו את שלושת הערכים הבאים כמשתני סביבה:

  1. AZURE_ADFS_CLIENT_ISSUER- תחום   של שרת ADFS https://adfs.contoso.com )

  2. AZURE_ADFS_CLIENT_ID  - מזהה לקוח של יישום שרת

  3. AZURE_ADFS_CLIENT_SECRET  - סוד הלקוח שהעתקנו ללוח

אם אינך רוצה להשתמש בסוד הלקוח, הוסף יישום מקורי והעביר AZURE_ADFS_CLIENT_SECRETאת המשתנה כריק.

RoostGPT מאוחסן בעצמו - פריסה ב-AWS באמצעות Terraform

3. הגדרת מסד נתונים

Roost מאחסן את סטטוס זרימת העבודה של GPT ומידע רלוונטי אחר במסד הנתונים. Roost תומך ב-MySQL, Postgres ו-Amazon Aurora DB. כל מסד נתונים נדרש כדי ש-RoostGPT יפעל.

להלן השלבים להגדרת RDS ב-AWS

אמזון אורורה (תואם ל-MySQL) או MySQL

  1. בחר RDS

  2. בחר צור מסד נתונים

  3. בחר "יצירה קלה" עבור "Amazon Aurora עם תאימות MYSQL" או "MySQL"

  4. שנה את קבוצת האבטחה של RDS כדי לאפשר גישה ליציאת TCP 3306 לקבוצת האבטחה של מופעי מישור הבקרה בלבד.

  5. רשום לעצמך את נקודת הקצה, המשתמש והסיסמה של מסד הנתונים של מופע הכותב (יש צורך בכך בהמשך בתצורה שלהלן)

צור משתמש חדש עם הרשאות קריאה וכתיבה והימנע משימוש בהתחברות של מנהל מערכת.

# Sample command to create a user using MySQL CLI 
# Provide password on prompt 

mysql -h <SQL Host URL> -u <root|master|admin> -p
CREATE USER 'Roost'@'%' identified WITH mysql_native_password by 'Roost#123'; 
CREATE DATABASE roostio;
GRANT ALL on roostio.* to 'Roost'@'%';

# Execute the Roost Schema file, if available
\. /var/tmp/Roost/db/roost.sql

אמזון אורורה (תואם ל-PostgreSQL) או PostgreSQL

  1. בחר RDS

  2. בחר צור מסד נתונים

  3. בחר "יצירה קלה" עבור "Amazon Aurora עם תאימות PostgreSQL" או "PostgreSQL"

  4. שנה את קבוצת האבטחה של RDS כדי לאפשר גישה ליציאת TCP 5432 לקבוצת האבטחה של מופעי מישור הבקרה בלבד.

  5. רשום לעצמך את נקודת הקצה, המשתמש והסיסמה של מסד הנתונים של מופע הכותב (יש צורך בכך בהמשך בתצורה שלהלן)

  6. צור משתמש חדש עם הרשאות קריאה וכתיבה והימנע משימוש בהתחברות של מנהל מערכת.

psql "host=<PG Host URL> user=<admin> dbname=postgres port=5432 sslmode=require"

CREATE DATABASE roostio;                                  -- creates app database [5]
CREATE USER roost WITH PASSWORD 'Roost#123';              -- creates login role [3]
GRANT ALL PRIVILEGES ON DATABASE roostio TO roost;        -- DB-level grant [4]

-- Connect to the new DB (reconnect as admin or roost), then set schema privileges
\c roostio                                        
GRANT USAGE ON SCHEMA public TO roost;                   
GRANT ALL ON ALL TABLES IN SCHEMA public TO roost;     
GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO roost;   
ALTER DEFAULT PRIVILEGES IN SCHEMA public 
  GRANT ALL ON TABLES TO roost;                       
ALTER DEFAULT PRIVILEGES IN SCHEMA public 
  GRANT USAGE ON SEQUENCES TO roost;                   

-- Execute the Roost Schema file, if available
\i /var/tmp/Roost/db/roost.sql  

RoostGPT מאוחסן בעצמו - פריסה ב-AWS באמצעות Terraform

4. משתני טראפורמה

אנא בצעו את השלבים הבאים כדי לשנות קבצי terraform כדי לשלב את  

enterprise_dns = "subdomain.domain.com"
admin_email = "comma separated list of emails"
enterprise_email_domain = "email-domain.com"
company = ""
license_key = ""
roost_jwt_token = "32-character-secure-long-secret"
roost_version = "v1.1.17"

az1_suffix = "b"
az2_suffix = "c"
certificate_arn = "arn:aws:acm:region:account:certificate/cert-id"
ec2_ami = "ami-023a307f3d27ea427"
region = "region"
ip_block_vpc="172.32.255.192"
route53_hosted_zone_id = ""
key_pair = "roost-ssh"

azure_tenant_id = ""
azure_client_id = ""
azure_client_secret = ""
okta_client_id = "your client id"
okta_client_secret = "your client secret"
okta_issuer = "https://account.okta.com/oauth2/default"

is_own_mysql = false
mysql_db_name = "roostio"
mysql_host = "mysqldb_host_url"
mysql_password = "Roost#123"
mysql_port = 3306
mysql_root_password = "Admin#123"
mysql_username = "Roost"

Terraform הגדרות משתני

Field

Values Description
roost_version "v1.1.17"
license_key

prefix "terraform-gpt"
region "us-west-1"
az1_suffix "b"
az2_suffix  "c"
deletion_protection false
route53_hosted_zone_id 

enterprise_dns  "roostgpt.example.com"
enterprise_ssl_certificate_path "/var/tmp/Roost/certs/server.cer"
enterprise_ssl_certificate_key_path "/var/tmp/Roost/certs/server.key"
certificate_arn ""
ec2_ami  "ami-03df6dea56f8aa618"
key_pair "roost-gpt-keypair"  
generate_key_pair  true
device_name  "sdh"
ip_block_vpc  "172.32.255.192"
instance_type_controlplane "c5a.2xlarge"
instance_type_jumphost  "t3.micro"
disk_roostgpt 150
disk_jumphost 150
disk_controlplane 150
google_client_id 

google_client_secret 

github_client_id 

github_client_secret 

linkedin_client_id

linkedin_client_secret

azure_tenant_id

azure_client_id

azure_client_secret

okta_client_id  "0oa4bweaxcqn2sfTu5d7"
okta_client_secret "D5oRtWXUWcl9gp1312dVtuSoumU4vrECO4wSsqAO"
okta_issuer 

roost_jwt_token

company 

company_logo "https://roost.ai/hubfs/logos/Roost.ai-logo-gold.svg"
enterprise_email_domain  "example.com"
admin_email  "admin@email"
admin_email_pass ""
senders_email  "sender@email"
is_own_mysql  false
db_type "mysql"
mysql_host  "mysqldb_host_url"
mysql_password  "Roost#123"
mysql_username  "Roost"
mysql_port  3306
mysql_db_name  "roostio"
mysql_root_password  "Admin#123"
senders_email_pass 

email_smtp_host 


RoostGPT מאוחסן בעצמו - פריסה ב-AWS באמצעות Terraform

5. שדרוג/תחזוקה של משטח הבקרה של RoostGPT

ישנן מספר אפשרויות זמינות לרענון או שדרוג מחסנית RoostGPT. מהנדס התשתית יכול להשתמש בכל אחת מהגישות הללו.

RoostGPT א. שימוש בסקריפט Terraform לשדרוג גרסת

עדכון משתני Terraform ב- "terraform.tfvars" כדי לשקף את גרסת Roost המתאימה

שָׂדֶה

ערכים

גרסת_הרוסט

1.1.17 גרסה

הפעל את הפקודות הבאות:

terraform apply

ב. שימוש בסקריפט Terraform לרענון משטח הבקרה (ללא שינוי תצורה)

הפעל את הפקודות הבאות

terraform apply --replace="null_resource.provision-controlplane-system" --replace="null_resource.provision-roostgpt-server" --replace="null_resource.run-controlplane-services"

ג. שימוש ב-SSH לביצוע מופע במישור הבקרה

משטח הבקרה של RoostGPT מריץ  סקריפט חיבור של docker וניתן לעדכן את כל ההיצע באמצעות השלבים הבאים.

ssh cp "ROOST_VER='v1.1.17' /var/tmp/Roost/bin/roost-enterprise.sh -c /var/tmp/Roost/config.json -i roostai"

RoostGPT ממשק שורת פקודה (CLI) של

הפעל את RoostGPT מהמערכת שלך כקובץ בינארי מקומי. קובץ הבינארי של RoostGPT מאפשר גמישות שאין שני לה במהלך יצירת בדיקות, בכך שהוא מאפשר לך להפעיל יצירת בדיקות באופן מקומי וגם דרך git באמצעות קובץ .env אחד פשוט.

קובץ Executable זמין עבור MacOS, Windows ו- Linux. 

קובץ בינארי של RoostGPT זמין בכתובת https://github.com/roost-io/roost-support/releases

RoostGPT ממשק שורת פקודה (CLI) של

הורדת הוראות

Windows עבור

הורד את הקובץ roostgpt-win.exe מ- https://github.com/roost-io/roost-support/releases/download/v1.1.17/roostgpt-win.exe

הוסף את הקובץ הבינארי "roostgpt-win.exe" למשתנה הסביבה PATH שלך

 

עבור אובונטו ו-MacOS

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

RoostGPT ממשק שורת פקודה (CLI) של

פקודות ממשק שורת פקודה (CLI)

roostgpt   (עבור מק) ו-   ./roostGPT-win.exe (עבור חלונות)

פקודה זו משמשת להפעלת RoostGPT CLI במערכת ההפעלה שלך.

RoostGPT ממשק שורת פקודה (CLI) של

env. הוראות ליצירת קובץ

דרך קלה להוריד את קובץ ה-.env היא להשתמש ב-  https://app.roost.ai/gptCLIForm

קובץ ה-.env צריך להיות באותו נתיב תיקייה כמו קובץ הבינארי RoostGPT.
כך ייראה תוכן קובץ ה-.env שלך:


# 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",

הערה: אם ערך בקובץ ה-.env שלך מכיל את התו '#', הקף את הערך כולו במרכאות. פעולה זו מונעת את פירוש ה-'#' כתחילת הערה.
דוגמה: SECRET_KEY="my#secret#key"

RoostGPT ממשק שורת פקודה (CLI) של

פרטים על משתני env

הנה תיאור של כל משתנה:

# משתני סביבת גיט
# פתח משתני סביבת בינה מלאכותית
  • OPENAI_API_MODEL
    תיאור: מציין את סוג מודל ה-API של OpenAI שיש להשתמש בו.
    ערך ברירת מחדל: "gpt-4"
    ערכים נתמכים: "gpt-4", "gpt-3.5-turbo" וכו'. (זמינות המודלים תלויה ב-OPENAI_API_KEY).
    אופציונלי/נדרש: אופציונלי
  • OPENAI_API_KEY
    תיאור: מפתח ה-API הנדרש לגישה ל-API של OpenAI.
    אופציונלי/נדרש: נדרש אם AI_TYPE הוא "openai"
# משתני סביבת בינה מלאכותית פתוחה של AZURE
#משתני סביבת Bedrock AI
  • AWS_BEDROCK_MODEL
    תיאור: מציין באיזה מודל סלע יש להשתמש.
    אופציונלי/נדרש: נדרש אם AI_TYPE הוא "bedrock_ai"

  • AWS_DEFAULT_REGION
    תיאור: אזור AWS של המודל המתארח.
    אופציונלי/נדרש: נדרש אם AI_TYPE הוא "bedrock_ai".
  • AWS_ACCESS_KEY_ID
    תיאור: אישורי זיהוי מפתח גישה של AWS
    אופציונלי/נדרש: אופציונלי. ניתן לייצא לסביבה שבה יפעל Roost Binary
  • AWS_SECRET_ACCESS_KEY
    תיאור: אישורי זיהוי מפתח גישה סודי של AWS
    אופציונלי/נדרש: אופציונלי. ניתן לייצא לסביבה שבה יפעל Roost Binary

  • AWS_SESSION_TOKEN
    תיאור: אישורי אסימון סשן של AWS
    אופציונלי/נדרש: אופציונלי. ניתן לייצא לסביבה שבה יפעל Roost Binary
# משתני סביבת בינה מלאכותית של קודקוד
  • VERTEX_FINE_TUNE
    תיאור: מציין האם כוונון עדין מופעל עבור המודל.
    ערך ברירת מחדל: "false"
    ערכים נתמכים: "true", "false"

  • VERTEX_PROJECT_ID
    תיאור: מזהה פרויקט ה-Vertex שאיתו אתה עובד.
    אופציונלי/נדרש: נדרש אם AI_TYPE הוא "vertexai"
  • תיאור VERTEX_REGION
    : האזור בו ממוקם פרויקט Vertex. לדוגמה, "us-central1".
    אופציונלי/נדרש: נדרש אם AI_TYPE הוא "vertexai" ו-VERTEX_FINE_TUNE הוא "true"
  • VERTEX_BEARER_TOKEN
    תיאור: אסימון ה-bearer המשמש לאימות בקשות ל-API של Vertex.
    אופציונלי/נדרש: נדרש אם AI_TYPE הוא "vertexai".
  • תיאור VERTEX_MODEL
    : שם מודל הקודקוד שיש להשתמש בו.
    ערכים נתמכים: "text-bison", "code-bison"
    אופציונלי/נדרש: נדרש אם AI_TYPE הוא "vertexai"
# קוד פתוח של סביבת בינה מלאכותית
# משתני סביבה של מודל SageMaker
# מגוון סביבות של קלוד AI
# משתני סביבת DBRX AI
# משתני סביבה מתקדמים של בינה מלאכותית
# משתני סביבת לוח Jira
# משתני סביבת לוח Azure
# משתני סביבת לוח מתקדמים של Jira/Azure
# משתני סביבה של יומן
# מקרי בדיקה התנהגותיים משתני סביבה
# משתני סביבה של מפרט API
# משתני סביבת בדיקת יישומים
# משתני סביבת בדיקת API
# משתני סביבת רישיון
# משתנים נוספים
#משתני סביבת בדיקת ממשק משתמש

# שיפור משתני סביבת הבדיקה
# גרסת שפה משתני סביבה

פלאג אין עבור VSCode

תוסף הקוד Roost GPT VS מאפשר לך ליצור בדיקות לקוד שלך באמצעות RoostGPT בלחיצה אחת, ישירות מסביבת העבודה של VS Code.

הורדה:

https://marketplace.visualstudio.com/items?itemName=RoostGPT.roostgpt

הַתקָנָה:

כדי להשתמש בפלאג אין של RoostGPT VS Code, נדרש להתקין VS Code בעמדה שלך, כמו גם את כל התלויות הנדרשות להרצת הקוד שלך, מכיוון ש-RoostGPT יריץ לעתים קרובות את קוד הבדיקה שנוצר כדי לשפר אותו.

ניתן להוריד ולהתקין את VS Code עבור מערכת ההפעלה שלך כאן.

לאחר התקנת VS Code , ניתן להוריד את סיומת Roost GPT VS Code ממארקט של VS Code, על ידי חיפוש קל Roost GPT בחנות התוספים. לחלופין, תוכל להוריד ולהתקין את סיומת VS Code מכאן .

לאחר התקנת ההרחבה, אתה מוכן ליצור בדיקות עבור הקוד שתרצה.

תצורה:

לאחר שההרחבה הותקנה בהצלחה במערכת שלך, תוכל להמשיך בהגדרת ההרחבה כדי להתחיל ליצור בדיקות. פעולה זו כוללת מתן מידע הנדרש ליצירת בדיקות.
כדי להגדיר את ההרחבה לשימוש בה, פשוט פתח את הגדרות ההרחבה עבור Roost GPT, תוכל לחפש אותה בחנות ההרחבות, או שתוכל למצוא אותה ברשימת ההרחבות המותקנות שלך.

לאחר מכן תוכל להגדיר את הערכים הנדרשים בהתאם לסביבת העבודה ולצרכים שלך. להלן השדות הנדרשים שתצטרך להגדיר בכל מקרה:

שדות חובה

שדות מתקדמים (אופציונלי):

יצירת בדיקות:

לאחר השלמת הגדרת התוסף, תוכלו להתחיל להשתמש בתוסף VS Code כדי ליצור בדיקות עבור סביבת העבודה שלכם. כדי ליצור בדיקות, פשוט לחצו לחיצה ימנית על קובץ בתפריט Explorer ובחרו את סוג הבדיקה שברצונכם ליצור מתפריט ההקשר שמופיע. שימו לב שלכל סוג בדיקה יש דרישות מסוימות כדי להתחיל ביצירת בדיקות.
סוגי הבדיקות הנתמכים כעת הם כדלקמן:

דרישות הבדיקה

להלן שדות חובה והוראות נוספות ליצירת בדיקה בהתאם לכל סוג בדיקה נתמך:

שיפור וניתוח של בדיקות שנוצרו

לאחר השלמת תהליך יצירת הבדיקה, ייפתח פאנל צדדי שיציג את כל קבצי הבדיקה שנוצרו. באפשרותך לבחור את הקובץ שברצונך להציג באמצעות התפריט הנפתח שסופק. אם תרצה, תוכל גם לערוך את הקבצים בפאנל עצמו ולשמור את השינויים שלך באמצעות כפתור השמירה שסופק.
אם ברצונך להפעיל את הבדיקות שנוצרו, תוכל לעשות זאת באמצעות כפתור ההפעלה שסופק בפאנל הצדדי. פעולה זו תפעיל את קובץ הבדיקה שנבחר. שים לב כי תצטרך שכל התלויות הנדרשות להפעלת הבדיקות יהיו מותקנות במערכת המקומית שלך כדי שיצירת הבדיקה תתרחש. עבור בדיקות ארטילריה, לאחר שתלחץ על כפתור ההפעלה, תתבקש להזין את כתובת האתר של היעד עבור הבדיקות. אם ברצונך לספק כתובת אתר, אנא ספק אותה בתיבת הקלט, ולאחר מכן תישאל אם ברצונך להעלות קובץ .env כדי לספק משתני סביבה. אם כן, תוכל להעלות את קובץ ה-env עבור אותו הדבר.
אם אינך מרוצה מהבדיקות שנוצרו ומעוניינת בשיפורים או שינויים בבדיקה, בתחתית הפאנל הצדדי תמצא בקשת משוב, הזן את בקשת המשוב שברצונך לתת למודל הבינה המלאכותית ולאחר מכן לחץ על כפתור השיפור. פעולה זו תפעיל את שיפור הבדיקה.

RoostGPT Infrastructure

This section details the RoostGPT resources required

RoostGPT Infrastructure

משאבי RoostGPT למיתוג לבן

משאבי Terraform שסופקו ב-AWS

שם המשאב

תֵאוּר

זוג_מפתח_aws

צמד מפתחות AWS EC2 ל-SSH

aws_eip

כתובת IP אלסטית שתשמש את NAT Gateway עבור תת-רשת ציבורית

aws_ami

מזהה AMI מבוסס אובונטו - ספציפי לאזור

aws_vpc

VPC

אזורי_זמינות_aws

AZ מועדף

שער_אינטרנט_aws

IG עבור VPC כדי לתקשר עם האינטרנט, למשל עדכון apt

רשת_aws_subnet

תת-רשתות פרטיות וציבוריות 

קבוצת_אבטחה_aws

SG עבור שירותי bastion, backend ו-frontend של RoostGPT

קבוצת_יעד_aws_lb

קבוצת יעד עבור מאזן עומסים

טבלת_מסלול_aws

ערכי טבלת ניתוב עבור תעבורה נכנסת ויוצאת

aws_instance

מופעים לפריסת שירותי RoostGPT בקצה הקדמי והצדדי

aws_route_table_association

כדי לאפשר תעבורת רשת, בין דוגמה לדוגמה, תקשורת

משאב_ריק

כדי לפרוס ולהפעיל סקריפטים של מתקין RoostGPT על המופע

Docker (hub.docker.com) תמונות של

שם התמונה תָג
zbio/roostai_mysql_db גרסה 1.1.17
zbio/roost-nginx האחרון
zbio/roost-app גרסה 1.1.17
zbio/roostai-server גרסה 1.1.17
zbio/roostgpt-go גרסה 1.1.17
zbio/roostgpt גרסה 1.1.17
zbio/roostgpt-ui גרסה 1.1.17
zbio/roost-proxy גרסה 1.1.17

סקריפטים או קבצי הרצה של RoostGPT מ-


חלונות לינוקס מקוס
ממשק שורת פקודה (CLI) roostgpt-win.exe roostgpt-לינוקס
בדיקת ממשק משתמש

 

RoostUITestGenerator-win.exe  RoostUITestGenerator-לינוקס

RoostUITestGenerator-macos-amd

RoostUITestGenerator-macos-arm


ג'אווה RoostJavaASTParser.jar RoostJavaASTParser.jar RoostJavaASTParser.jar
פִּיתוֹן RoostPythonASTParser-win.exe RoostPythonASTParser-לינוקס RoostPythonASTParser-mac
סי שארפ RoostCSharpASTParser-win.exe RoostCSharpASTParser-לינוקס RoostCSharpASTParser-macos
גולאנג RoostGolangASTParser-win.exe RoostGolangASTParser-לינוקס RoostGolangASTParser-macos
       
ג'אווהסקריפט RoostJavascriptASTParser-win.exe RoostJavascriptASTParser-לינוקס


API (מבחן קראטה)

קראטה-1.4.1.jar

קראטה-1.5.1.jar

קראטה-1.4.1.jar

קראטה-1.5.1.jar

קראטה-1.4.1.jar

קראטה-1.5.1.jar

RoostGPT Infrastructure

מסד נתונים RoostGPT עבור שרת מתארח

פתרון RoostGPT דורש RDBMS כדי

לאחסן תצורות בדיקה
מידע על מחבר RoostGPT
מידע על משתמשים וצוות

עבור POC או ניסויים מוגבלים, RoostGPT יכול גם להשתמש במסד נתונים ממוחשב. עם זאת, יש לו מגבלות הקשורות ל

- אמינות ואבטחה ברמה ארגונית
- סט תכונות ואינטגרציות מתקדמות
- תמיכה מקצועית וערבויות SLA
- תחזוקה ועדכונים אוטומטיים