diff options
author | Toon Claes <toon@gitlab.com> | 2018-04-23 12:09:38 +0200 |
---|---|---|
committer | Toon Claes <toon@gitlab.com> | 2018-05-07 09:42:09 +0200 |
commit | f70d7e4ea03f004a74c514f4edf1659329bdc9f6 (patch) | |
tree | d3beccce8faf52edfa7d5083c544f55a834b5872 /app/workers | |
parent | b07c4e3dc454fb90c320b3912ef84da06cd56ddf (diff) | |
download | gitlab-ce-f70d7e4ea03f004a74c514f4edf1659329bdc9f6.tar.gz |
Refactor RepositoryCheck::SingleRepositoryWorker
A repo does not need pushes before it will be repo-checked. There are
other sources where commits can come from (e.g. import or webIDE).
In the test I made the method of breaking a repo more robust. And
added a few test examples.
See also gitlab-org/gitlab-ce#45046.
Diffstat (limited to 'app/workers')
-rw-r--r-- | app/workers/repository_check/single_repository_worker.rb | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/app/workers/repository_check/single_repository_worker.rb b/app/workers/repository_check/single_repository_worker.rb index 116bc185b38..34b56fc6092 100644 --- a/app/workers/repository_check/single_repository_worker.rb +++ b/app/workers/repository_check/single_repository_worker.rb @@ -14,18 +14,24 @@ module RepositoryCheck private def check(project) - if has_pushes?(project) && !git_fsck(project.repository) - false - elsif project.wiki_enabled? - # Historically some projects never had their wiki repos initialized; - # this happens on project creation now. Let's initialize an empty repo - # if it is not already there. - project.create_wiki - - git_fsck(project.wiki.repository) - else - true - end + check_repo(project) && check_wiki_repo(project) + end + + def check_repo(project) + return true if project.empty_repo? + + git_fsck(project.repository) + end + + def check_wiki_repo(project) + return true unless project.wiki_enabled? + + # Historically some projects never had their wiki repos initialized; + # this happens on project creation now. Let's initialize an empty repo + # if it is not already there. + project.create_wiki + + git_fsck(project.wiki.repository) end def git_fsck(repository) |