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
path: root/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-05-26 00:08:58 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-05-26 00:08:58 +0300
commite0096a0ef1fa770c16c4f7f0ecea618433d7b052 (patch)
treea1a1823bc6bb5d91bc47b35bd8c6713724043fee /lib
parent28b119a4b47d3a41c4879aab651221b85289bc69 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r--lib/tasks/gitlab/tw/codeowners.rake26
1 files changed, 25 insertions, 1 deletions
diff --git a/lib/tasks/gitlab/tw/codeowners.rake b/lib/tasks/gitlab/tw/codeowners.rake
index b63c6ea5d03..40d88ea8a5b 100644
--- a/lib/tasks/gitlab/tw/codeowners.rake
+++ b/lib/tasks/gitlab/tw/codeowners.rake
@@ -6,6 +6,17 @@ namespace :tw do
desc 'Generates a list of codeowners for documentation pages.'
task :codeowners do
CodeOwnerRule = Struct.new(:category, :writer)
+ DocumentOwnerMapping = Struct.new(:path, :writer) do
+ def writer_owns_all_pages?(mappings)
+ mappings
+ .select { |mapping| mapping.directory == directory }
+ .all? { |mapping| mapping.writer == writer }
+ end
+
+ def directory
+ @directory ||= File.dirname(path)
+ end
+ end
CODE_OWNER_RULES = [
CodeOwnerRule.new('Activation', '@kpaizee'),
@@ -84,6 +95,7 @@ namespace :tw do
end
errors = []
+ mappings = []
path = Rails.root.join("doc/**/*.md")
Dir.glob(path) do |file|
@@ -98,9 +110,21 @@ namespace :tw do
writer = writer_for_group(document.group)
next unless writer
- puts "#{file.gsub(Dir.pwd, ".")} #{writer}" if document.has_a_valid_group?
+ mappings << DocumentOwnerMapping.new(file.delete_prefix(Dir.pwd), writer) if document.has_a_valid_group?
end
+ deduplicated_mappings = Set.new
+
+ mappings.each do |mapping|
+ if mapping.writer_owns_all_pages?(mappings)
+ deduplicated_mappings.add("#{mapping.directory}/ #{mapping.writer}")
+ else
+ deduplicated_mappings.add("#{mapping.path} #{mapping.writer}")
+ end
+ end
+
+ deduplicated_mappings.each { |mapping| puts mapping }
+
if errors.present?
puts "-----"
puts "ERRORS - the following files are missing the correct metadata:"