Sha256: de4abcaa9fd970e4461d20402b48026e7bc2653bf1b758d4c7495a525cb2f604
Contents?: true
Size: 1.82 KB
Versions: 7
Compression:
Stored size: 1.82 KB
Contents
# frozen_string_literal: true # typed: true module CodeOwnership module Private module OwnershipMappers class TeamYmlOwnership extend T::Sig include Mapper @@map_files_to_owners = T.let(@map_files_to_owners, T.nilable(T::Hash[String, ::CodeTeams::Team])) # rubocop:disable Style/ClassVars @@map_files_to_owners = {} # rubocop:disable Style/ClassVars sig do params(files: T::Array[String]) .returns(T::Hash[String, ::CodeTeams::Team]) end def map_files_to_owners(files) return @@map_files_to_owners if @@map_files_to_owners&.keys && @@map_files_to_owners.keys.count.positive? @@map_files_to_owners = CodeTeams.all.each_with_object({}) do |team, map| # rubocop:disable Style/ClassVars map[team.config_yml] = team end end sig do override.params(file: String) .returns(T.nilable(::CodeTeams::Team)) end def map_file_to_owner(file) map_files_to_owners([file])[file] end sig do override.params(files: T::Array[String]) .returns(T::Hash[String, ::CodeTeams::Team]) end def globs_to_owner(files) CodeTeams.all.each_with_object({}) do |team, map| map[team.config_yml] = team end end sig { override.void } def bust_caches! @@map_files_to_owners = {} # rubocop:disable Style/ClassVars end sig do override.params(cache: GlobsToOwningTeamMap, files: T::Array[String]).returns(GlobsToOwningTeamMap) end def update_cache(cache, files) globs_to_owner(files) end sig { override.returns(String) } def description 'Team YML ownership' end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems