From d3cae9278fe36e8c7731aa6e7aaaf33014c8df7d Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt Date: Fri, 24 Jul 2015 16:09:19 +0200 Subject: Add rake task 'gitlab:update_commit_count' Starting with migration `20150717130904` commit count is stored in the database. For existing projects it defaults to `0` and is updated to the correct value when commits are pushed. The newly introduced rake task updates the commit count for all projects which have not been updated yet. Refs !986, !989, #2040. --- lib/tasks/gitlab/update_commit_count.rake | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 lib/tasks/gitlab/update_commit_count.rake (limited to 'lib') diff --git a/lib/tasks/gitlab/update_commit_count.rake b/lib/tasks/gitlab/update_commit_count.rake new file mode 100644 index 00000000000..9b636f12d9f --- /dev/null +++ b/lib/tasks/gitlab/update_commit_count.rake @@ -0,0 +1,20 @@ +namespace :gitlab do + desc "GitLab | Update commit count for projects" + task update_commit_count: :environment do + projects = Project.where(commit_count: 0) + puts "#{projects.size} projects need to be updated. This might take a while." + ask_to_continue unless ENV['force'] == 'yes' + + projects.find_each(batch_size: 100) do |project| + print "#{project.name_with_namespace.yellow} ... " + + unless project.repo_exists? + puts "skipping, because the repo is empty".magenta + next + end + + project.update_commit_count + puts project.commit_count.to_s.green + end + end +end -- cgit v1.2.3