Add support for Bitbucket Server and integrate LiteLLM for better LLM interoperability #20
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🚀 Multi-SCM Provider Support & LiteLLM Integration
Summary
This PR introduces two major enhancements:
New Features
🔌 SCM Provider Abstraction
SCMProviderbase class.atlassian-python-api.SCM_PROVIDERenvironment variable.🤖 LiteLLM Integration
azure/gpt-4o,anthropic/claude-3-opus).max_tokensvs.max_completion_tokens.retry_client.pyin favor of LiteLLM's native retry handling (num_retriesparameter). LiteLLM automatically handles rate limits (429), server errors (500/502/503/504), and respectsRetry-Afterheaders.Files Changed
scm_providers/(base, factory, gitlab, bitbucket_server)llm/(litellm_model, factory)analyzer.py,documenter.py,ai_rules_generator.pyconfig.py,.env.samplehandlers/cronjob.py(now uses SCM interface)utils/retry_client.py(replaced by LiteLLM retries)Configuration
SCM Provider Selection
SCM_PROVIDER=gitlab # or bitbucket_serverLLM Provider Examples
Deprecations
--group-project-idCLI arg deprecated in favor of--namespace-idfor provider-agnostic terminology. Still works but emits deprecation warning. Will be removed in v2.0.Dependencies Added
litellm>=1.55.0: Unified LLM provider interface.atlassian-python-api>=3.41.0: Bitbucket Server API client.Testing
ruff check src/).--group-project-id