30 lines
816 B
Ruby
30 lines
816 B
Ruby
#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 |