* 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>
* 3.0.11
* build
* docs: update ollama usage readme (#301)
Signed-off-by: Albert Simon <albert.simon.sge@mango.com>
Co-authored-by: Albert Simon <albert.simon.sge@mango.com>
* 🚨 BREAKING CHANGES 🚨
- feat(engine/ollama): add support for local models and change prompt format to improve AI performance
+ fix(engine/ollama): fix issue with local model not responding correctly to requests
The commit message is now more concise, clear, and informative. It also includes a breaking changes section that highlights the significant changes made in this commit.
---------
Signed-off-by: Albert Simon <albert.simon.sge@mango.com>
Co-authored-by: di-sukharev <dim.sukharev@gmail.com>
Co-authored-by: Albert Simon <47634918+willyw0nka@users.noreply.github.com>
Co-authored-by: Albert Simon <albert.simon.sge@mango.com>
Co-authored-by: Константин Шуткин <shutkin-kn@mosmetro.ru>
* fix(config.ts): improve code formatting for better readability
feat(config.ts): add additional supported models for OCO_MODEL configuration
feat(config.ts): update default OCO_MODEL value to 'gpt-3.5-turbo' for better compatibility
* docs(README.md): update OCO_MODEL options to include new GPT-4 models and remove
mention of 'gpt-3.5-turbo-16k' model
docs(README.md): update default OCO_MODEL to 'gpt-3.5-turbo' and provide
instructions for switching to GPT-4 models, specifically 'gpt-4-0125-preview'
and 'gpt-4-turbo-preview'
docs(README.md): update OCO_MODEL configuration in CI/CD pipeline to 'gpt-3.5-turbo'
docs(README.md): update cost information related to default and GPT-4 models in
OpenCommit
* 📝 docs(prompts.ts): update prompt message to include information about GitMoji convention and descriptions of changes
📝 docs(prompts.ts): update prompt message to include information about GitMoji convention and descriptions of changes
* 🎨 (prompts.ts): import `removeConventionalCommitWord` function to remove conventional commit word from commit prompts
🐛 (prompts.ts): remove conventional commit word from `commitFix` and `commitFeat` prompts to improve clarity
📝 (removeConventionalCommitWord.ts): add `removeConventionalCommitWord` function to remove conventional commit word from commit message
* 📝 (package.json): update version from 3.0.3 to 3.0.0 to align with the latest release
* 🔧 (cli.ts): add a new flag 'fgm' to the 'flags' object to support the '--fgm' flag in the CLI command
🔧 (commit.ts): pass the value of the 'fgm' flag to the 'commit' function to enable or disable full GitMoji specification
♻️ (commit.ts): refactor the 'commit' function to accept the 'fullGitMojiSpec' parameter and pass it to the 'commit' function recursively
♻️ (generateCommitMessageFromGitDiff.ts): refactor the 'generateCommitMessageByDiff' function to accept the 'fullGitMojiSpec' parameter and pass it to the 'generateCommitMessageChatCompletionPrompt' function
♻️ (generateCommitMessageFromGitDiff.ts): refactor the 'generateCommitMessageChatCompletionPrompt' function to accept the 'fullGitMojiSpec' parameter and pass it to the 'getMainCommitPrompt' function
♻️ (generateCommitMessageFromGitDiff.ts): refactor the 'getCommitMsgsPromisesFromFileDiffs' function to accept the 'fullGitMojiSpec' parameter and pass it to the 'getMessagesPromisesByChangesInFile' function
♻️ (generateCommitMessageFromGitDiff.ts): refactor the 'getMessagesPromisesByChangesInFile' function to accept the 'fullGitMojiSpec' parameter and pass it to the 'generateCommitMessageChatCompletionPrompt' function
♻️ (prompts.ts): refactor the 'getMainCommitPrompt' function to accept the 'fullGitMojiSpec' parameter and pass it to the 'INIT_MAIN_PROMPT' function
* 📝 (README.md): add documentation for the `--fgm` flag in the `oco` command to enable the use of the full GitMoji specification
* 📝 (README.md): update flag description for using full GitMoji specification
📝 (README.md): add link to the GitMoji specification for reference
* 🔧 (README.md): fix a typo in the description of the `Use Full GitMoji Specification` flag
🔧 (api.ts): update the default value of the `apiKey` variable to a placeholder value for testing purposes
* Revert "🔧 (README.md): fix a typo in the description of the `Use Full GitMoji Specification` flag"
This reverts commit 230a4aa449.
* 🔧 (README.md): fix a typo in the description of the `Use Full GitMoji Specification` flag
* 📝 (prompts.ts): update INIT_MAIN_PROMPT content to include information about the fullGitMojiSpec flag and provide instructions on how to choose the right emoji for the commit message
---------
Co-authored-by: GPT10 <57486732+di-sukharev@users.noreply.github.com>
* docs(README.md): add instructions for configuring GPT-4 Turbo (Preview)
feat(config.ts): include 'gpt-4-1106-preview' in the list of supported models
* fix(config.ts): update error message to include 'gpt-4-1106-preview' as a supported model
The link to the GitHub 2023 hackathon in the README has been updated to point to the correct URL. This ensures that users can easily access the relevant information about the hackathon.
The README.md file has been updated to include alternative ways to run OpenCommit via the `npx opencommit` and `bunx opencommit` commands. This provides users with more options to execute the tool without the need for a global installation.