summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortiagonbotelho <tiagonbotelho@hotmail.com>2016-03-03 10:51:48 +0000
committerYorick Peterse <yorickpeterse@gmail.com>2016-03-07 21:59:39 +0100
commit96c02551070a5f2d90beea7068fc6fddbf1498e8 (patch)
tree1b2635f9add269a5675f612573e64f3e1eee262b
parent8039bbf7f8e686bdf1e8c00c44faa8a97a6c6fdb (diff)
downloadgitlab-ce-96c02551070a5f2d90beea7068fc6fddbf1498e8.tar.gz
moves the main_language update logic to git push service
-rw-r--r--app/models/project.rb8
-rw-r--r--app/services/git_push_service.rb12
2 files changed, 12 insertions, 8 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 137fa42a9b9..3235a1cee50 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -86,14 +86,6 @@ class Project < ActiveRecord::Base
end
end
- # checks if the language main language of the project changed
- before_save :check_main_language
- def check_main_language
- if commit_count_changed?
- main_language = repository.main_language
- end
- end
-
ActsAsTaggableOn.strict_case_match = true
acts_as_taggable_on :tags
diff --git a/app/services/git_push_service.rb b/app/services/git_push_service.rb
index 9ba200f7bde..ab883b6ef2c 100644
--- a/app/services/git_push_service.rb
+++ b/app/services/git_push_service.rb
@@ -14,6 +14,7 @@ class GitPushService < BaseService
# 3. Recognizes cross-references from commit messages
# 4. Executes the project's web hooks
# 5. Executes the project's services
+ # 6. Checks if the project's main language has changed
#
def execute
@project.repository.after_push_commit(branch_name)
@@ -42,6 +43,9 @@ class GitPushService < BaseService
@push_commits = @project.repository.commits_between(params[:oldrev], params[:newrev])
process_commit_messages
end
+ # Checks if the main language has changed in the project and if so
+ # it updates it accordingly
+ update_main_language
# Update merge requests that may be affected by this push. A new branch
# could cause the last commit of a merge request to change.
update_merge_requests
@@ -49,6 +53,14 @@ class GitPushService < BaseService
protected
+ def update_main_language
+ current_language = @project.repository.main_language
+
+ unless current_language == @project.main_language
+ @project.update_attributes(main_language: current_language)
+ end
+ end
+
def update_merge_requests
@project.update_merge_requests(params[:oldrev], params[:newrev], params[:ref], current_user)