latest_stable_tag

in lib/gitlab/build/info/git.rb [66:101]


        def latest_stable_tag(level: 1)
          unless (fact_from_file = Gitlab::Util.fetch_fact_from_file(__method__)).nil?
            return fact_from_file
          end

          
          stable_tags = sorted_tags_for_edition.reject { |t| t.include?('rc') }

          return if stable_tags.empty?

          branch_for_version = Build::Info::CI.mr_target_branch_name || branch_name

          version = branch_for_version.delete_suffix('-stable').tr('-', '.') if Build::Check.on_stable_branch? || Build::Check.mr_targetting_stable_branch?

          results = stable_tags.select { |t| t.start_with?("#{version}.") } if version

          
          
          output = if results.nil? || results.empty?
                     stable_tags
                   else
                     results
                   end

          
          
          
          
          
          if level >= output.length
            output.last
          else
            output[level - 1]
          end
        end