From ddaf033e2f4571b865985f15800ef059ac7d4685 Mon Sep 17 00:00:00 2001 From: "Sincheol (David) Kim" <dkim@gitlab.com> Date: Wed, 5 Mar 2025 16:05:50 +1100 Subject: [PATCH] Add generate_commit_message_claude_3_7 feature flag --- .../generate_commit_message_claude_3_7.yml | 9 +++++++++ .../completions/generate_commit_message.rb | 9 +++++++++ .../completions/generate_commit_message_spec.rb | 13 ++++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 ee/config/feature_flags/experiment/generate_commit_message_claude_3_7.yml diff --git a/ee/config/feature_flags/experiment/generate_commit_message_claude_3_7.yml b/ee/config/feature_flags/experiment/generate_commit_message_claude_3_7.yml new file mode 100644 index 0000000000000..0306a4620fbbc --- /dev/null +++ b/ee/config/feature_flags/experiment/generate_commit_message_claude_3_7.yml @@ -0,0 +1,9 @@ +--- +name: generate_commit_message_claude_3_7 +feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/521392 +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/183311 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/522917 +milestone: '17.10' +group: group::code review +type: experiment +default_enabled: false diff --git a/ee/lib/gitlab/llm/ai_gateway/completions/generate_commit_message.rb b/ee/lib/gitlab/llm/ai_gateway/completions/generate_commit_message.rb index 2619a86fb46f3..eae0af3acba7f 100644 --- a/ee/lib/gitlab/llm/ai_gateway/completions/generate_commit_message.rb +++ b/ee/lib/gitlab/llm/ai_gateway/completions/generate_commit_message.rb @@ -13,6 +13,15 @@ class GenerateCommitMessage < Base def inputs { diff: resource.raw_diffs.to_a.map(&:diff).join("\n").truncate_words(WORDS_LIMIT) } end + + override :prompt_version + def prompt_version + if Feature.enabled?(:generate_commit_message_claude_3_7, user) + '1.1.0' + else + '1.0.0' + end + end end end end diff --git a/ee/spec/lib/gitlab/llm/ai_gateway/completions/generate_commit_message_spec.rb b/ee/spec/lib/gitlab/llm/ai_gateway/completions/generate_commit_message_spec.rb index 86d0e49cd5d98..fbded318d5e73 100644 --- a/ee/spec/lib/gitlab/llm/ai_gateway/completions/generate_commit_message_spec.rb +++ b/ee/spec/lib/gitlab/llm/ai_gateway/completions/generate_commit_message_spec.rb @@ -30,7 +30,7 @@ ) expect(ai_client).to receive(:complete).with( url: "#{Gitlab::AiGateway.url}/v1/prompts/generate_commit_message", - body: { 'inputs' => { diff: expected_diff } } + body: body ).and_return(ai_response) expect(::Gitlab::Llm::GraphqlSubscriptionResponseService).to receive(:new).and_call_original @@ -39,6 +39,7 @@ end end + let(:body) { { 'inputs' => { diff: expected_diff }, 'prompt_version' => '1.1.0' } } let(:expected_diff) { merge_request.raw_diffs.to_a.map(&:diff).join("\n").truncate_words(10000) } before do @@ -94,5 +95,15 @@ it_behaves_like 'successful completion request' end + + context 'when generate_commit_message_claude_3_7 FF is disabled' do + before do + stub_feature_flags(generate_commit_message_claude_3_7: false) + end + + let(:body) { { 'inputs' => { diff: expected_diff }, 'prompt_version' => '1.0.0' } } + + it_behaves_like 'successful completion request' + end end end -- GitLab