#coding=utf-8

namespace :gitlab do
  desc "sync gitlab's users which lost in last sync"
  task :query => :environment do
    g = Gitlab.client
    projects = Project.all
    users_email = User.find_by_sql("select mail from users where mail != '' ")
    projects.each do|project|
      gpid = project.gpid
      begin
        contributors_list = g.contributors(gpid)
      rescue
        next
      end
      puts "project_id  #{project.id}"
      contributors_list.each do|contributor|
        if users_email.include?(contributor.email)
          contributors_list.delete(contributor)
        end
      end

      contributors_list.each do|contributor|
        puts "name #{contributor.name}"
        puts "email  #{contributor.email}"
        puts "commits_count  #{contributor.commits}"
      end
   end
  end
end