修复:commit关联issue操作者变更为提交者

This commit is contained in:
yystopf 2024-10-19 10:48:38 +08:00
parent e8112212bb
commit ee1b7c8f57
2 changed files with 7 additions and 3 deletions

View File

@ -26,11 +26,15 @@ class CommitLogsController < ApplicationController
# 统计数据新增
CacheAsyncSetJob.perform_later("project_common_service", {commits: 1}, project.id)
commit_user = User.find_by(mail: commit[:committer][:email]) rescue nil
commit_user = User.find_by(login: commit[:committer][:name]) if commit_user.blank? rescue nil
next if commit_user.blank?
# 触发变更issue状态的job
close_issue_content = message.to_s.scan(/\b(Close|Closes|Closed|Closing|close|closes|closed|closing)\s*(#\d+(,\s*#\d+)*)?\b/)
ChangeIssueStatusByMessageJob.perform_later(project, user, close_issue_content[0][1], 5) if close_issue_content[0].present? && close_issue_content[0][1].present?
ChangeIssueStatusByMessageJob.perform_later(project, commit_user, close_issue_content[0][1], 5) if close_issue_content[0].present? && close_issue_content[0][1].present?
solve_issue_content = message.to_s.scan(/\b(Fix|Fixes|Fixed|Fixing|fix|fixes|fixed|fixing|Resolve|Resolves|Resolved|Resolving|resolve|resolves|resolved|resolving|Implement|Implements|Implemented|Implementing|implement|implements|implemented|implementing)\s*(#\d+(,\s*#\d+)*)?\b/)
ChangeIssueStatusByMessageJob.perform_later(project, user, solve_issue_content[0][1], 3) if solve_issue_content[0].present? && solve_issue_content[0][1].present?
ChangeIssueStatusByMessageJob.perform_later(project, commit_user, solve_issue_content[0][1], 3) if solve_issue_content[0].present? && solve_issue_content[0][1].present?
end
end

View File

@ -14,7 +14,7 @@ class ChangeIssueStatusByMessageJob < ApplicationJob
issue_id = tag_issue.gsub('#', '')
issue = project.issues.issue_issue.where(project_issues_index: issue_id).where.not(id: issue_id).take || Issue.issue_issue.find_by_id(issue_id)
next unless issue.present? # issue不存在 跳过
next if issue.project.present? && !user.admin? && !project.member?(user) # issue归属项目用户没有修改issue的权限跳过
next if issue.project.present? && !user.admin? && !issue.project.member?(user) # issue归属项目用户没有修改issue的权限跳过
next if issue.pm_project_id.present? && project.owner.is_a?(Organization) && !project.owner.is_member?(user.id) # issue是组织下工作项不具备组织的访问权限跳过
issue_project = issue.project || Project.new(id: 0, user_id: 0, name: 'pm_mm', identifier: 'pm_mm', is_public:true)
if issue.pm_project_id.present?