Skip to content
代码片段 群组 项目
未验证 提交 29385713 编辑于 作者: Allen Cook's avatar Allen Cook 提交者: GitLab
浏览文件

Add disable_code_gecko_default FF

上级 7ca2b2a1
No related branches found
No related tags found
无相关合并请求
---
name: disable_code_gecko_default
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/519375
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/181852
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/520370
milestone: '17.9'
group: group::code creation
type: beta
default_enabled: false
...@@ -137,6 +137,8 @@ def forbid_direct_access? ...@@ -137,6 +137,8 @@ def forbid_direct_access?
# we add expanded_ai_logging to header only if current user is internal user, # we add expanded_ai_logging to header only if current user is internal user,
Gitlab::AiGateway.push_feature_flag(:expanded_ai_logging, current_user) Gitlab::AiGateway.push_feature_flag(:expanded_ai_logging, current_user)
# we add disable_code_gecko_default to gradually roll out code-gecko deprecation
Gitlab::AiGateway.push_feature_flag(:disable_code_gecko_default, current_user)
workhorse_headers = workhorse_headers =
Gitlab::Workhorse.send_url( Gitlab::Workhorse.send_url(
...@@ -187,6 +189,9 @@ def forbid_direct_access? ...@@ -187,6 +189,9 @@ def forbid_direct_access?
details_hash = completion_model_details.current_model details_hash = completion_model_details.current_model
# we add disable_code_gecko_default to gradually roll out code-gecko deprecation
Gitlab::AiGateway.push_feature_flag(:disable_code_gecko_default, current_user)
access = { access = {
base_url: ::Gitlab::AiGateway.url, base_url: ::Gitlab::AiGateway.url,
# for development purposes we just return instance JWT, this should not be used in production # for development purposes we just return instance JWT, this should not be used in production
......
...@@ -53,6 +53,7 @@ ...@@ -53,6 +53,7 @@
stub_feature_flags(incident_fail_over_completion_provider: false) stub_feature_flags(incident_fail_over_completion_provider: false)
stub_feature_flags(fireworks_qwen_code_completion: false) stub_feature_flags(fireworks_qwen_code_completion: false)
stub_feature_flags(code_completion_model_opt_out_from_fireworks_qwen: false) stub_feature_flags(code_completion_model_opt_out_from_fireworks_qwen: false)
stub_feature_flags(disable_code_gecko_default: false)
end end
shared_examples 'a response' do |case_name| shared_examples 'a response' do |case_name|
...@@ -320,6 +321,19 @@ def request ...@@ -320,6 +321,19 @@ def request
end end
end end
context 'when disable code-gecko default FF is enabled' do
before do
stub_feature_flags(disable_code_gecko_default: true)
end
it 'workhorse includes the FF in the headers' do
post_api
_, params = workhorse_send_data
expect(params['Header']["x-gitlab-enabled-feature-flags"][0]).to match("disable_code_gecko_default")
end
end
context 'when incident_fail_over_completion_provider is enabled' do context 'when incident_fail_over_completion_provider is enabled' do
before do before do
stub_feature_flags(incident_fail_over_completion_provider: true) stub_feature_flags(incident_fail_over_completion_provider: true)
...@@ -995,6 +1009,18 @@ def get_user(session): ...@@ -995,6 +1009,18 @@ def get_user(session):
end end
end end
context 'when disable code-gecko default FF is enabled' do
before do
stub_feature_flags(disable_code_gecko_default: true)
end
it 'includes the FF in the direct access headers' do
post_api
expect(json_response['headers']['x-gitlab-enabled-feature-flags']).to match('disable_code_gecko_default')
end
end
context 'when code completions is self-hosted' do context 'when code completions is self-hosted' do
it 'does not include the model metadata in the direct access details' do it 'does not include the model metadata in the direct access details' do
create(:ai_feature_setting, provider: :self_hosted, feature: :code_completions) create(:ai_feature_setting, provider: :self_hosted, feature: :code_completions)
......
...@@ -12,8 +12,8 @@ module Gitlab ...@@ -12,8 +12,8 @@ module Gitlab
class MarkUsedFeatureFlags < RuboCop::Cop::Base class MarkUsedFeatureFlags < RuboCop::Cop::Base
include RuboCop::CodeReuseHelpers include RuboCop::CodeReuseHelpers
FEATURE_CALLERS = %w[Feature Config::FeatureFlags].freeze FEATURE_CALLERS = %w[Feature Config::FeatureFlags Gitlab::AiGateway].freeze
FEATURE_METHODS = %i[enabled? disabled?].freeze FEATURE_METHODS = %i[enabled? disabled? push_feature_flag].freeze
EXPERIMENT_METHODS = %i[ EXPERIMENT_METHODS = %i[
experiment experiment
].freeze ].freeze
......
...@@ -46,6 +46,7 @@ class Foo < ApplicationRecord ...@@ -46,6 +46,7 @@ class Foo < ApplicationRecord
push_frontend_feature_flag push_frontend_feature_flag
Config::FeatureFlags.enabled? Config::FeatureFlags.enabled?
::Gitlab::Ci::Config::FeatureFlags.enabled? ::Gitlab::Ci::Config::FeatureFlags.enabled?
::Gitlab::AiGateway.push_feature_flag
].each do |feature_flag_method| ].each do |feature_flag_method|
context "#{feature_flag_method} method" do context "#{feature_flag_method} method" do
context 'a string feature flag' do context 'a string feature flag' do
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册