Skip to content

feat(cli): support runtime provider overrides#494

Open
ousamabenyounes wants to merge 1 commit into
alibaba:mainfrom
ousamabenyounes:feat/provider-runtime-override-458
Open

feat(cli): support runtime provider overrides#494
ousamabenyounes wants to merge 1 commit into
alibaba:mainfrom
ousamabenyounes:feat/provider-runtime-override-458

Conversation

@ousamabenyounes

Copy link
Copy Markdown
Contributor

Description

Adds runtime LLM provider overrides for ocr review and ocr scan through --provider, alongside the existing --model override.

The provider override is resolved only from configured providers / custom_providers entries in the OCR config file. It fails fast when the requested provider is not configured instead of falling back to environment endpoint sources, and it avoids reusing the top-level default model for a different runtime-selected provider unless --model is supplied.

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Refactor
  • Other

How Tested

Test verification (RED -> GREEN)

RED, upstream-base with only the new tests:

$ go test ./internal/llm ./cmd/opencodereview -run 'TestResolveEndpointWithProviderOverride|TestParseReviewFlagsProviderOverride|TestParseScanFlags_ProviderOverride'
# github.com/open-code-review/open-code-review/internal/llm [github.com/open-code-review/open-code-review/internal/llm.test]
internal/llm/resolver_test.go:434:13: undefined: ResolveEndpointWithOverrides
internal/llm/resolver_test.go:470:12: undefined: ResolveEndpointWithOverrides
internal/llm/resolver_test.go:506:12: undefined: ResolveEndpointWithOverrides
internal/llm/resolver_test.go:514:13: undefined: ResolveEndpointWithOverrides
FAIL	github.com/open-code-review/open-code-review/internal/llm [build failed]
# github.com/open-code-review/open-code-review/cmd/opencodereview [github.com/open-code-review/open-code-review/cmd/opencodereview.test]
cmd/opencodereview/flags_test.go:45:10: opts.provider undefined (type reviewOptions has no field or method provider)
cmd/opencodereview/scan_cmd_test.go:188:10: opts.provider undefined (type scanOptions has no field or method provider)
FAIL	github.com/open-code-review/open-code-review/cmd/opencodereview [build failed]

GREEN, patched targeted tests:

$ go test ./internal/llm ./cmd/opencodereview -run 'TestResolveEndpointWithProviderOverride|TestParseReviewFlagsProviderOverride|TestParseScanFlags_ProviderOverride'
ok  	github.com/open-code-review/open-code-review/internal/llm	0.012s
ok  	github.com/open-code-review/open-code-review/cmd/opencodereview	0.030s

Full local CI replay on the patched branch:

$ ./run-ci.sh
== go version ==
go version go1.26.5 linux/amd64
== gofmt ==
== go mod tidy ==
== go vet ==
== govulncheck ==
No vulnerabilities found.
Your code is affected by 0 vulnerabilities.
== go test race coverage ==
== coverage threshold ==
Total coverage: 81.5%
PASS: Coverage 81.5% meets 80% threshold
== build ==
== cross compile ==
-- linux/arm64
-- darwin/amd64
-- darwin/arm64
-- windows/amd64
-- windows/arm64

Baseline origin/main also passed the same local CI replay with total coverage 81.4%.

Checklist

  • Code follows the project's style guidelines
  • Tests have been added/updated
  • Documentation has been updated
  • All checks pass locally

Related Issues

Fixes #458

@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

🔍 OpenCodeReview found 3 issue(s) in this PR.

  • ✅ Successfully posted inline: 3 comment(s)

Comment thread internal/llm/resolver.go Outdated
Comment thread internal/llm/resolver.go Outdated
Comment thread internal/llm/resolver.go Outdated
@ousamabenyounes
ousamabenyounes force-pushed the feat/provider-runtime-override-458 branch from 28a6123 to 16fea60 Compare July 24, 2026 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support --provider flag in ocr review/scan commands for runtime LLM provider override

1 participant