41 lines
2.2 KiB
Ruby
41 lines
2.2 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")
|
|
# 统计数据新增
|
|
CacheAsyncSetJob.perform_later("project_common_service", {commits: 1}, project.id)
|
|
end
|
|
|
|
end
|
|
|
|
def activity
|
|
commit_sql = CommitLog.select("user_id,project_id, '' as ref").order(id: :desc).limit(10).to_sql
|
|
project_sql = Project.select("user_id,id as project_id, '' as ref").order(id: :desc).limit(10).to_sql
|
|
project_sql = Issue.select("user_id,project_id, '' as ref").order(id: :desc).limit(10).to_sql
|
|
project_sql = Issue.select("user_id,project_id, '' as ref").order(id: :desc).limit(10).to_sql
|
|
privacy_organizations_sql = Project.with_visibility("privacy").joins(:organization_users).where(organization_users: {user_id: current_user.id}).to_sql
|
|
@organizations = Organization.from("( #{ logged_organizations_sql } UNION #{ privacy_organizations_sql } ) AS users")
|
|
end
|
|
end
|