summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2016-01-05 17:01:33 -0500
committerRobert Speicher <rspeicher@gmail.com>2016-01-05 17:03:24 -0500
commitd453b24aca178fe74dd673b94de50d1f14fb651a (patch)
treeaba3fb64154071926aa1f1b98ea34d22886704a5
parent67a927ff8b3510275fee4bfac438aef9803e67a6 (diff)
parent8e33ec1deea60a176cd43092c913200d28ea04fe (diff)
downloadgitlab-ce-d453b24aca178fe74dd673b94de50d1f14fb651a.tar.gz
Merge branch 'validate-readme-format' into 'master'
Validate README format 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. Fixes #3978
-rw-r--r--CHANGELOG1
-rw-r--r--app/models/tree.rb14
2 files changed, 7 insertions, 8 deletions
diff --git a/CHANGELOG b/CHANGELOG
index ed45042eb13..191bb977feb 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -19,6 +19,7 @@ v 8.4.0 (unreleased)
- Show 'All' tab by default in the builds page
- Fix API project lookups when querying with a namespace with dots (Stan Hu)
- Update version check images to use SVG
+ - Validate README format before displaying
v 8.3.3 (unreleased)
- Fix project transfer e-mail sending incorrect paths in e-mail notification (Stan Hu)
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