From 6ce01ca3ece007f135c6b5a9bc258fdd9e8d71de Mon Sep 17 00:00:00 2001
From: Douglas Barbosa Alexandre <dbalexandre@gmail.com>
Date: Tue, 5 Jan 2016 11:00:10 -0200
Subject: [PATCH] Validate README format before displaying
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Take the first previewable README file as project’s README, otherwise
if none file is available, or we can’t preview any of them, we assume
that project doesn’t have a README file.
---
 app/models/tree.rb | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/app/models/tree.rb b/app/models/tree.rb
index 93b3246a668..e0e04d8859f 100644
--- a/app/models/tree.rb
+++ b/app/models/tree.rb
@@ -17,18 +17,16 @@ class Tree
   def readme
     return @readme if defined?(@readme)
 
-    available_readmes = blobs.select(&:readme?)
+    # Take the first previewable readme, or return nil if none is available or
+    # we can't preview any of them
+    readme_tree = blobs.find do |blob|
+      blob.readme? && (previewable?(blob.name) || plain?(blob.name))
+    end
 
-    if available_readmes.count == 0
+    if readme_tree.nil?
       return @readme = nil
     end
 
-    # Take the first previewable readme, or the first available readme, if we
-    # can't preview any of them
-    readme_tree = available_readmes.find do |readme|
-      previewable?(readme.name)
-    end || available_readmes.first
-
     readme_path = path == '/' ? readme_tree.name : File.join(path, readme_tree.name)
 
     git_repo = repository.raw_repository
-- 
GitLab