- export parseCustomHeaders from src/utils/engine.ts
- use parseCustomHeaders in OpenAiEngine for config.customHeaders
- remove try/catch and inline JSON.parse logic
- update config test to expect headers as object and drop JSON.parse
Centralize header parsing for reuse and simplify engine code
Update tests to match new header format for clarity
Add OCO_API_CUSTOM_HEADERS variable to README, config enum,
and env parsing to allow JSON string of custom headers.
Validate that custom headers are valid JSON in config validator.
Extend AiEngineConfig with customHeaders and pass headers to
OllamaEngine and OpenAiEngine clients when creating requests.
Parse custom headers in utils/engine and warn on invalid format.
Add unit tests to ensure OCO_API_CUSTOM_HEADERS is handled
correctly and merged from env over global config.
This enables users to send additional headers such as
Authorization or tracing headers with LLM API calls.
* fix(commit.ts): improve user confirmation handling by exiting on cancel actions to prevent unintended behavior
refactor(commit.ts): streamline conditional checks for user confirmations to enhance code readability and maintainability
* refactor(commit.ts): rename spinner variables for clarity and consistency in commit message generation process
fix(commit.ts): ensure proper stopping of spinners in case of errors during commit message generation and committing process
* refactor(config.ts): extract default configuration to a constant for better maintainability and readability
refactor(config.ts): improve initGlobalConfig function to accept a configPath parameter for flexibility
feat(config.ts): enhance getConfig function to support separate paths for global and environment configurations
test(config.test.ts): update tests to reflect changes in config handling and ensure proper functionality
style(utils.ts): clean up code formatting for consistency and readability
style(tsconfig.json): adjust formatting in tsconfig.json for better clarity and maintainability
* fix(utils.ts): add existsSync check before removing temp directory to prevent errors if directory does not exist (#401)
---------
Co-authored-by: Takanori Matsumoto <matscube@gmail.com>
* test: ✅ add the first E2E test and configuration to CI (#316)
* add tests
* Add push config (#220)
* feat: add instructions and support for configuring gpt-4-turbo (#320)
* 3.0.12
* build
* feat: add 'gpt-4-turbo' to supported models in README and config validation
---------
Co-authored-by: di-sukharev <dim.sukharev@gmail.com>
* ✅ fix the broken E2E tests due to the addition of OCO_GITPUSH (#321)
* test(oneFile.test.ts): update test expectations to match new push prompt text
* build
* Feat: Add Claude 3 support (#318)
* 3.0.12
* build
* feat: anthropic claude 3 support
* fix: add system prompt
* fix: type check
* fix: package version
* fix: update anthropic for dependency bug fix
* feat: update build files
* feat: update version number
---------
Co-authored-by: di-sukharev <dim.sukharev@gmail.com>
* 🐛bug fix: enable to use the new format of OpenAI's project API Key (#328)
* fix(config.ts): remove validation for OCO_OPENAI_API_KEY length to accommodate variable key lengths
* build
* ♻️ refactor(config.ts): Addition of UnitTest environment and unittest for commands/config.ts#getConfig (#330)
* feat(jest.config.ts): update jest preset for TS ESM support and ignore patterns
feat(package.json): add test:unit script with NODE_OPTIONS for ESM
refactor(src/commands/config.ts): improve dotenv usage with dynamic paths
feat(src/commands/config.ts): allow custom config and env paths in getConfig
refactor(src/commands/config.ts): streamline environment variable access
feat(test/unit): add unit tests for config handling and utility functions
- Implement unit tests for `getConfig` function to ensure correct behavior
in various scenarios including default values, global config, and local
env file precedence.
- Add utility function `prepareFile` for creating temporary files during
tests, facilitating testing of file-based configurations.
* feat(e2e.yml): add unit-test job to GitHub Actions for running unit tests on pull requests
* ci(test.yml): add GitHub Actions workflow for unit and e2e tests on pull requests
* refactor(config.ts): streamline environment variable access using process.env directly
test(config.test.ts): add setup and teardown for environment variables in tests to ensure test isolation
* feat(package.json): add `test:all` script to run all tests in Docker
refactor(package.json): consolidate Docker build steps into `test:docker-build` script for DRY principle
fix(package.json): ensure `test:unit:docker` and `test:e2e:docker` scripts use the same Docker image and remove container after run
chore(test/Dockerfile): remove default CMD to allow dynamic test script execution in Docker
* refactor(config.test.ts): anonymize API keys in tests for better security practices
* feat(config.test.ts): add tests for OCO_ANTHROPIC_API_KEY configuration
* refactor(config.ts): streamline path imports and remove unused DotenvParseOutput
- Simplify path module imports by removing default import and using named imports for `pathJoin` and `pathResolve`.
- Remove unused `DotenvParseOutput` import to clean up the code.
* refactor(config.test.ts): simplify API key mock values for clarity in tests
* test(config.test.ts): remove tests for default config values and redundant cases
- Removed tests that checked for default config values when no config or env files are present, as these scenarios are now handled differently.
- Eliminated tests for empty global config and local env files to streamline testing focus on actual config loading logic.
- Removed test for prioritizing local env over global config due to changes in config loading strategy, simplifying the configuration management.
* new version
---------
Co-authored-by: Takanori Matsumoto <matscube@gmail.com>
Co-authored-by: Moret84 <aurelienrivet@hotmail.fr>
Co-authored-by: yowatari <4982161+YOwatari@users.noreply.github.com>
Co-authored-by: metavind <94786679+metavind@users.noreply.github.com>