huskygpt
v0.5.2
Published
Automatically generate unit tests or review your code using openai chatgpt
Downloads
17
Maintainers
Readme
huskygpt
Node.js CLI tools for
auto review
your code orauto generate
unit tests by OpenAIchatgpt3.5
andGPT-4
Plus Account! ✅
Demo
- 🤖 Generate
unit tests
by gpt-4 model: - ✨ The
unit test
result: - 🌍
Translate
source file keep the same format and structure: - 🖊️
Modify
exist code by your input requirements e.g.Please fix bugs or optimize my code. if the function is complexity, please chunk it. If it's function component, use hooks optimize it. And add en and zh comments for complexity logic steps e.g. // EN: some comments, // ZH: 一些评论.
Key Features
- 🤖
AI
: AI-powered codereview
,modify
,translate
and unittest
generation - ✨
Free
: Free to use with anOpenAI Session Token
, enjoy chatgpt-3.5 or gpt-4 (Plus Account). - 🛡️
Security
: Security-conscious function and class extraction, customize yourSECURITY_REGEX
. - 🧠
Customizing
: Customizable prompts and model selection. - 📂
File Reader
: Supports reading files fromdirectories
orgit staged files
.
Installation
To install huskygpt
, run the following command:
npm install -g huskygpt
Configuration
OpenAI Key (Choose one)
- Set the OpenAI API Key by npm config set -g
npm config set OPENAI_API_KEY <YOUR_OPENAI_KEY> -g
- Set the
OpenAI Session Token
for free using chatgpt- OpenAI session token, 2 setp to get token
- If you don't set this, will use OPENAI_API_KEY
- visit https://chat.openai.com/chat and login
- Visit https://chat.openai.com/api/auth/session to get token
npm config set OPENAI_SESSION_TOKEN <YOUR_OPENAI_SESSION_TOKEN> -g
- Copy
.env
file to your project root directory, and setOPENAI_PROXY_URL
.
| Method | Free? | Robust? | Quality? |
| --------------------------- | ------ | -------- | ----------------------- |
| OpenAI Session Token
| ✅ Yes | ☑️ Maybe | ✅️ Real ChatGPT |
| OpenAI API Key
| ❌ No | ✅ Yes | ✅ Real ChatGPT models |
Local prompt
- Create
prompt
directory in the root directory of your project. - Add
review.txt
ortests.txt
in theprompt
directory.
Pre-Commit
- husky and lint-stage
"husky": { "hooks": { "pre-commit": "huskygpt review && huskygpt test && lint-staged --allow-empty" } },
.gitignore
:
# review
.huskygpt_review.md
.env.local
Usage
- Run the following command to
review
your git staged files:huskygpt review --model gpt-4 --max-tokens 2048
- Run the following command to
modify
your exist code:huskygpt modify -r dir -d src/pages/UserRegister/RegisterList.tsx -m gpt-4
- Run the following command to generate unit
test
:huskygpt test --model gpt-3.5-turbo --max-tokens 2048 --file-extensions .ts,.tsx --read-type dir --read-dir-name src --test-file-type test --test-file-extension .ts --test-file-dir-name tests
- Run the following command to
translate
your git staged files:huskygpt translate -d example/i18n/test.json
Options
-k, --api-key <key>
: Set the OpenAI API key.-t, --openai-session-token <token>
: OpenAI session token, 2 step to get token, If you don't set this, will use OPENAI_API_KEY, will cause fee by api key.-pu, --openai-proxy-url <url>
: Proxy URL to use for OpenAI API requests.-m, --model <model>
: OpenAI model to use.-p, --prompt <prompt>
: OpenAI prompt to use.-mt, --max-tokens <tokens>
: OpenAI max tokens to use.-e, --file-extensions <extensions>
: File extensions to read, example: .ts,.tsx-r, --read-type <type>
: Read files from directory or git stage, example: dir or git.-s, --read-git-status <name>
: Read files from git stage by status default: A,R,M.-d, --read-dir-name <name>
: Root name of the directory to read files from, example: src.-f, --test-file-type <type>
: Generate test file type, example: test or spec.-n, --test-file-dir-name <name>
: Generate test file directory name, example: tests.-o, --test-file-overwrite <value>
: Generate test file overwrite, default is true.-w, --review-report-webhook <url>
: Webhook URL to send review report.
Environment Variables options
See .env
file.
Note
- Also can set all options in
.env
or.env.local
, that will be used as default options. Command options will override the default options. - Webhook currently only test in
seaTalk
, if other channel need to use, please risePR
by yourself or ask me for help.