Skip to content
代码片段 群组 项目
提交 d8760842 编辑于 作者: Kinshuk Singh's avatar Kinshuk Singh
浏览文件

Add feature flag for summarize code review model upgrade

relates to upgrading Claude model to 3.7 Sonnet
上级 a110a313
No related branches found
No related tags found
2 合并请求!3031Merge per-main-jh to main-jh by luzhiyuan,!3030Merge per-main-jh to main-jh
---
name: summarize_code_review_claude_3_7_sonnet
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/521383
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/183213
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/522987
milestone: '17.10'
group: group::code review
type: beta
default_enabled: false
...@@ -46,6 +46,11 @@ def valid? ...@@ -46,6 +46,11 @@ def valid?
super && draft_notes.any? super && draft_notes.any?
end end
override :prompt_version
def prompt_version
'2.0.0' if Feature.enabled?(:summarize_code_review_claude_3_7_sonnet, user)
end
def draft_notes_content def draft_notes_content
content = [] content = []
......
...@@ -17,6 +17,10 @@ ...@@ -17,6 +17,10 @@
subject(:summarize_review) { described_class.new(prompt_message, prompt_class, options).execute } subject(:summarize_review) { described_class.new(prompt_message, prompt_class, options).execute }
describe '#execute' do describe '#execute' do
before do
stub_feature_flags(summarize_code_review_claude_3_7_sonnet: false)
end
context 'when there are no draft notes authored by user' do context 'when there are no draft notes authored by user' do
it 'does not make AI request' do it 'does not make AI request' do
expect(Gitlab::Llm::AiGateway::Client).not_to receive(:new) expect(Gitlab::Llm::AiGateway::Client).not_to receive(:new)
...@@ -70,6 +74,28 @@ ...@@ -70,6 +74,28 @@
it_behaves_like 'summarize review' it_behaves_like 'summarize review'
end end
context 'with feature flag enabled' do
let(:draft_notes_content) { "Comment: #{draft_note_by_current_user.note}\n" }
before do
stub_feature_flags(summarize_code_review_claude_3_7_sonnet: true)
end
it 'includes prompt_version in the request' do
expect_next_instance_of(Gitlab::Llm::AiGateway::Client) do |client|
expect(client)
.to receive(:complete)
.with(
url: "#{Gitlab::AiGateway.url}/v1/prompts/summarize_review",
body: { 'inputs' => { draft_notes_content: draft_notes_content }, 'prompt_version' => '2.0.0' }
)
.and_return(example_response)
end
summarize_review
end
end
end end
end end
end end
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册