32 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
class CommitLogsController < ApplicationController
 | 
						|
 | 
						|
  def create
 | 
						|
    tip_exception "未认证" unless params[:token].to_s == "7917908927b6f1b792f2027a08a8b24a2de42c1692c2fd45da0dee5cf90a5af5"
 | 
						|
    ref = params[:ref]
 | 
						|
    user_name = params[:pusher][:login]
 | 
						|
    user_mail = params[:pusher][:email]
 | 
						|
    user = User.find_by(mail: user_mail)
 | 
						|
    user = User.find_by(login: user_name) if user.blank?
 | 
						|
 | 
						|
    repository_id = params[:repository][:id]
 | 
						|
    repository_name = params[:repository][:name]
 | 
						|
    repository_full_name = params[:repository][:full_name]
 | 
						|
    owner_name = repository_full_name.split("/")[0]
 | 
						|
    owner = User.find_by(login: owner_name)
 | 
						|
    project = Project.where(identifier: repository_name).where(user_id: owner&.id)&.first
 | 
						|
    project = Project.where(identifier: repository_name).where(gpid: repository_id)&.first if project.blank?
 | 
						|
    project.update_column(:updated_on, Time.now) if project.present?
 | 
						|
    params[:commits].each do |commit|
 | 
						|
      commit_id = commit[:id]
 | 
						|
      message = commit[:message]
 | 
						|
      commit_log = CommitLog.create(user: user, project: project, repository_id: repository_id,
 | 
						|
                       name: repository_name, full_name: repository_full_name,
 | 
						|
                       ref: ref, commit_id: commit_id, message: message)
 | 
						|
      commit_log.project_trends.create(user_id: user.id, project_id: project&.id, action_type: "create") if user.id !=2
 | 
						|
      # 统计数据新增
 | 
						|
      CacheAsyncSetJob.perform_later("project_common_service", {commits: 1}, project.id)
 | 
						|
    end
 | 
						|
 | 
						|
  end
 | 
						|
end
 |