socialforge/lib/tasks/gitlab_trustie_acts.rake

42 lines
1.6 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace :gitlab do
desc "sync gitlab's commit acts to trustie"
task :acts_to_trustie => :environment do
begin
projects = Project.where(:status => 1)
projects.each do |project|
c = Commit.find_by_sql("SELECT * FROM `commits` where project_id = #{project.id} order by committed_on limit 1;")
g_project = g.project(project.gpid)
end
rescue Exception => e
puts e
end
g = Gitlab.client
ids = [2,847,931,942]
projects = Project.find(ids)
projects.each do |project|
c = Commit.where(:project_id => project.id)
if c.blank?
begin
g_project = g.project(project.gpid)
# 获取默认分支
g_default_branch = g_project.default_branch.nil? ? "master" : g_project.default_branch
# 总的提交次数
commit_count = g.user_static(project.gpid, :rev => g_default_branch).count
pages = commit_count / 20 + 1
puts "#{pages}"
puts "project id is #{project.id}"
# api获取每次只能获取20次提交所以需要通过取得page值来获取每页的提交动态
(0..pages).each do |page|
commits = g.commits(project.gpid, :ref_name => g_default_branch, :page => page)
commits.each do |commit|
Commit.create(:project_id => project.id, :repository_id => project.gpid, :version => commit.id, :committer => commit.author_email, :comments => Redmine::CodesetUtil.to_utf8(commit.title, 'UTF-8'), :committed_on => commit.created_at)
end
end
rescue Exception => e
puts e
end
end
end
end
end