blob: f71252b0d798740f0f3947c5d810a53488d3ebd8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# frozen_string_literal: true
class FeatureFlagClient
def self.enabled?(key, user: nil, thing: nil, default_enabled: false)
if Feature.enabled?(:gitlab_feature_flag_client) && client
key_string = key.to_s
unleash_context = Unleash::Context.new
unleash_context.user_id = user.email if user
client.is_enabled?(key_string, unleash_context)
else
Feature.enabled?(key, thing, default_enabled: default_enabled)
end
end
private
def self.client
server_url = ENV['GITLAB_FEATURE_FLAG_SERVER_URL']
instance_id = ENV['GITLAB_FEATURE_FLAG_INSTANCE_ID']
if server_url && instance_id
@client ||= Unleash::Client.new(
url: server_url,
instance_id: instance_id,
app_name: Rails.env
)
end
end
end
|