Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-06-28 15:11:16 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-06-28 15:11:16 +0300
commit48c36378567b3dbadd780b03ecda571652cff400 (patch)
treef1d4accd3942a27e6c27a9a7f34c99d893d8794b /lib/banzai
parent7b848eda5589ff5fa1bc3c6f782fc907c59a4417 (diff)
Add latest changes from gitlab-org/security/gitlab@16-1-stable-ee
Diffstat (limited to 'lib/banzai')
-rw-r--r--lib/banzai/filter/references/reference_cache.rb31
1 files changed, 13 insertions, 18 deletions
diff --git a/lib/banzai/filter/references/reference_cache.rb b/lib/banzai/filter/references/reference_cache.rb
index c8370d5f9c1..759c34ab7e6 100644
--- a/lib/banzai/filter/references/reference_cache.rb
+++ b/lib/banzai/filter/references/reference_cache.rb
@@ -29,15 +29,19 @@ module Banzai
@references_per_parent[parent_type] ||= begin
refs = Hash.new { |hash, key| hash[key] = Set.new }
- prepare_doc_for_scan.to_enum(:scan, regex).each do
- parent_path = if parent_type == :project
- full_project_path($~[:namespace], $~[:project])
- else
- full_group_path($~[:group])
- end
-
- ident = filter.identifier($~)
- refs[parent_path] << ident if ident
+ [filter.object_class.link_reference_pattern, filter.object_class.reference_pattern].each do |pattern|
+ next unless pattern
+
+ prepare_doc_for_scan.to_enum(:scan, pattern).each do
+ parent_path = if parent_type == :project
+ full_project_path($~[:namespace], $~[:project])
+ else
+ full_group_path($~[:group])
+ end
+
+ ident = filter.identifier($~)
+ refs[parent_path] << ident if ident
+ end
end
refs
@@ -171,15 +175,6 @@ module Banzai
delegate :project, :group, :parent, :parent_type, to: :filter
- def regex
- strong_memoize(:regex) do
- [
- filter.object_class.link_reference_pattern,
- filter.object_class.reference_pattern
- ].compact.reduce { |a, b| Regexp.union(a, b) }
- end
- end
-
def refs_cache
Gitlab::SafeRequestStore["banzai_#{parent_type}_refs".to_sym] ||= {}
end