From fc628f2b73ac763ddf0377c883fbed1f64faaef9 Mon Sep 17 00:00:00 2001 From: lovestaco Date: Mon, 1 Jun 2026 20:27:53 +0530 Subject: [PATCH 1/3] fix: readme --- README.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9f1827c..4a47ee8 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@
Discord Community - Go Report Card confidence.yml status-doc-link-check.yml gitleaks.yml osv-scanner.yml govulncheck.yml semgrep.yml dependabot-enabled + Go Report Card gitleaks.yml osv-scanner.yml govulncheck.yml semgrep.yml dependabot-enabled
@@ -237,6 +237,17 @@ By default, the **first connector in the list** is used for reviews. ![LRC UI connector management preview](./gfx/git-lrc-ui.png) +### Compatible API Support + +We also support: +- Anthropic Compatible API + +To configure: +- Select the option `Anthropic Compatible API` connector from the UI. +- Set the base URL for the API connector by selecting from the dropdown (e.g., [`gw.claudeapi.com`](https://claudeapi.com?utm_source=git-lrc)) or entering a custom URL. +- Enter your API key. +- Select the Claude model to use for reviews. + ## Security You Can Trust - Security is treated as a core product requirement in git-lrc. @@ -358,7 +369,6 @@ Pick the right place based on what you need: - **Discord**: [discord.gg/sGdnKwB3qq](https://discord.gg/sGdnKwB3qq) - Best for joining the community, asking general Q&A, and having quick back-and-forth with the team. - **GitHub Discussions**: [github.com/HexmosTech/git-lrc/discussions](https://github.com/HexmosTech/git-lrc/discussions) - For in-depth idea proposals, scoping, design discussions, modification proposals, and constructive criticism. - **GitHub Issues**: [github.com/HexmosTech/git-lrc/issues](https://github.com/HexmosTech/git-lrc/issues) - For concrete, scoped tasks such as bugs, focused feature requests, and actionable implementation work. -- **Contributing Guide**: See [CONTRIBUTING.md](./CONTRIBUTING.md) for contributor workflow, local setup, testing expectations, and pull request guidance. ## License From 2b9a906b622c9e763b31d32376d9f4d0ca512484 Mon Sep 17 00:00:00 2001 From: lovestaco Date: Thu, 4 Jun 2026 21:20:55 +0530 Subject: [PATCH 2/3] Add Preset-Driven Base URL and Model Selection for Connectors --- internal/staticserve/static/ui-connectors.js | 6 +- .../ui-connectors/pages/ConnectorFormPage.js | 94 +++++++++++++++---- .../static/ui-connectors/providers.js | 23 +++++ setup/types.go | 1 + 4 files changed, 105 insertions(+), 19 deletions(-) diff --git a/internal/staticserve/static/ui-connectors.js b/internal/staticserve/static/ui-connectors.js index a728582..4c6b6c2 100644 --- a/internal/staticserve/static/ui-connectors.js +++ b/internal/staticserve/static/ui-connectors.js @@ -394,8 +394,10 @@ function App() { connector_name: isLikelyAutoGeneratedName(prev.connector_name, providers) ? generateFriendlyConnectorName(provider.id, providers) : prev.connector_name, - selected_model: '', - base_url: provider.requiresBaseURL ? prev.base_url : '', + selected_model: provider.modelPresets?.length ? provider.modelPresets[0] : '', + base_url: provider.requiresBaseURL + ? (provider.baseURLPresets?.length ? provider.baseURLPresets[0].value : '') + : '', })); if (provider.id !== 'ollama') { setOllamaModels([]); diff --git a/internal/staticserve/static/ui-connectors/pages/ConnectorFormPage.js b/internal/staticserve/static/ui-connectors/pages/ConnectorFormPage.js index 15331aa..f478573 100644 --- a/internal/staticserve/static/ui-connectors/pages/ConnectorFormPage.js +++ b/internal/staticserve/static/ui-connectors/pages/ConnectorFormPage.js @@ -86,16 +86,47 @@ export function ConnectorFormPage({ /> ${showBaseURL - ? html` - - onFieldChange('base_url', event.target.value)} - /> - ` + ? (() => { + const presets = selectedProvider.baseURLPresets || []; + const CUSTOM = '__custom__'; + const effectivePreset = presets.find((p) => p.value === form.base_url) ? form.base_url : CUSTOM; + if (presets.length > 0) { + return html` + + + ${effectivePreset === CUSTOM + ? html` + onFieldChange('base_url', event.target.value)} + /> + ` + : ''} + `; + } + return html` + + onFieldChange('base_url', event.target.value)} + /> + `; + })() : ''} ${isOllama @@ -223,13 +254,42 @@ export function ConnectorFormPage({ : ''} ` - : html` - onFieldChange('selected_model', event.target.value)} - /> - `} + : (() => { + const selectedBasePreset = (selectedProvider.baseURLPresets || []).find((p) => p.value === form.base_url); + const mPresets = selectedBasePreset?.models || selectedProvider.modelPresets || []; + const CUSTOM_MODEL = '__custom_model__'; + if (mPresets.length > 0) { + const effectiveModel = mPresets.includes(form.selected_model) ? form.selected_model : CUSTOM_MODEL; + return html` + + ${effectiveModel === CUSTOM_MODEL + ? html` + onFieldChange('selected_model', event.target.value)} + /> + ` + : ''} + `; + } + return html` + onFieldChange('selected_model', event.target.value)} + /> + `; + })()} ` } diff --git a/internal/staticserve/static/ui-connectors/providers.js b/internal/staticserve/static/ui-connectors/providers.js index e7ae13f..18b4009 100644 --- a/internal/staticserve/static/ui-connectors/providers.js +++ b/internal/staticserve/static/ui-connectors/providers.js @@ -35,6 +35,29 @@ export const providers = [ name: 'Anthropic Claude', apiKeyPlaceholder: 'sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', }, + { + id: 'anthropic-compatible', + name: 'Anthropic Compatible API', + requiresBaseURL: true, + baseURLPresets: [ + { + label: 'ClaudeAPI (gw.claudeapi.com)', + value: 'https://gw.claudeapi.com/v1', + models: ['claude-haiku-4-5-20251001', 'claude-sonnet-4-6', 'claude-opus-4-8'], + }, + ], + baseURLPlaceholder: 'https://your-anthropic-compatible-endpoint.com', + apiKeyPlaceholder: 'sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', + modelPresets: [ + 'claude-haiku-4-5-20251001', + 'claude-sonnet-4-6', + 'claude-opus-4-8', + 'claude-3-5-sonnet-20241022', + 'claude-3-5-haiku-20241022', + 'claude-3-opus-20240229', + 'claude-3-haiku-20240307', + ], + }, ]; export function defaultForm() { diff --git a/setup/types.go b/setup/types.go index 892e7c7..d44fa7f 100644 --- a/setup/types.go +++ b/setup/types.go @@ -96,4 +96,5 @@ type CreateConnectorRequest struct { ConnectorName string `json:"connector_name"` SelectedModel string `json:"selected_model"` DisplayOrder int `json:"display_order"` + BaseURL string `json:"base_url,omitempty"` } From 044309b0ea887bb7e2318fcde3dfa70a2c2c56b7 Mon Sep 17 00:00:00 2001 From: lovestaco Date: Thu, 4 Jun 2026 22:22:30 +0530 Subject: [PATCH 3/3] fix: osv scanner issues --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index e3b14ed..8d57dae 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/HexmosTech/git-lrc -go 1.25.10 +go 1.25.11 require ( charm.land/bubbletea/v2 v2.0.2