30 lines
715 B
Ruby
30 lines
715 B
Ruby
# frozen_string_literal: true
|
|
|
|
module SourcegraphGon
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
before_action :push_sourcegraph_gon, if: :html_request?
|
|
end
|
|
|
|
private
|
|
|
|
def push_sourcegraph_gon
|
|
return unless sourcegraph_enabled?
|
|
|
|
gon.push({
|
|
sourcegraph: { url: Gitlab::CurrentSettings.sourcegraph_url }
|
|
})
|
|
end
|
|
|
|
def sourcegraph_enabled?
|
|
Gitlab::CurrentSettings.sourcegraph_enabled && sourcegraph_enabled_for_project? && current_user&.sourcegraph_enabled
|
|
end
|
|
|
|
def sourcegraph_enabled_for_project?
|
|
return false unless project && Gitlab::Sourcegraph.feature_enabled?(project)
|
|
return project.public? if Gitlab::CurrentSettings.sourcegraph_public_only
|
|
|
|
true
|
|
end
|
|
end
|