diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 6e7d258aa..192288019 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -238,6 +238,13 @@ class ProjectsController < ApplicationController def simple # 为了缓存活跃项目的基本信息,后续删除 Cache::V2::ProjectCommonService.new(@project.id).read + # 项目名称,标识,所有者变化时重置缓存 + project_common = $redis_cache.hgetall("v2-project-common:#{@project.id}") + if project_common.present? + if project_common["name"] != @project.name || project_common["identifier"] != @project.identifier || project_common["owner_id"] != @project.user_id + Cache::V2::ProjectCommonService.new(@project.id).reset + end + end json_response(@project, current_user) end diff --git a/app/views/repositories/_contributor.json.jbuilder b/app/views/repositories/_contributor.json.jbuilder index b0547eba3..861efb8bb 100644 --- a/app/views/repositories/_contributor.json.jbuilder +++ b/app/views/repositories/_contributor.json.jbuilder @@ -1,20 +1,33 @@ -user = $redis_cache.hgetall("v2-owner-common:#{contributor["name"] || contributor["login"]}-#{contributor["email"]}") -if user.blank? +user = render_cache_commit_author(contributor) +if user.present? + if user.is_a?(Hash) + json.contributions contributor["commits"] || contributor["contributions"] + json.id user["id"] + json.login user["login"] + json.email user["email"] + json.type user["type"] + json.name (user["name"] || contributor["name"] || contributor["login"]).to_s.downcase + json.image_url user["avatar_url"] + db_user = User.find_by_id(user["id"]) + json.contribution_perc db_user.simple_contribution_perc(project, contributor["contribution_perc"]) if db_user.present? + else + json.contributions contributor["commits"] || contributor["contributions"] + json.id user.id + json.login user.login + json.email user.mail + json.type user.type + json.name (user["name"] || contributor["name"] || contributor["login"]).to_s.downcase + json.image_url url_to_avatar(user) + json.contribution_perc user.simple_contribution_perc(project, contributor["contribution_perc"]) if user.present? + end +else json.contributions contributor["commits"] || contributor["contributions"] + json.id nil json.login nil json.type nil json.name (contributor["name"] || contributor["login"]).to_s.downcase json.email contributor["email"] json.image_url User::Avatar.get_letter_avatar_url(contributor["name"] || contributor["login"]) json.contribution_perc User.new(login: (contributor["name"] || contributor["login"]), mail: contributor["email"]).simple_contribution_perc(project, contributor["contribution_perc"]) -else - json.contributions contributor["commits"] || contributor["contributions"] - json.id user["id"] - json.login user["login"] - json.email user["email"] - json.type user["type"] - json.name (user["name"] || contributor["name"] || contributor["login"]).to_s.downcase - json.image_url user["avatar_url"] - db_user = User.find_by_id(user["id"]) - json.contribution_perc db_user.simple_contribution_perc(project, contributor["contribution_perc"]) if db_user.present? end + diff --git a/db/migrate/20230518012718_add_forge_applied_message_utf8mb4.rb b/db/migrate/20230518012718_add_forge_applied_message_utf8mb4.rb new file mode 100644 index 000000000..a12fbd291 --- /dev/null +++ b/db/migrate/20230518012718_add_forge_applied_message_utf8mb4.rb @@ -0,0 +1,5 @@ +class AddForgeAppliedMessageUtf8mb4 < ActiveRecord::Migration[5.2] + def change + execute("ALTER TABLE `forge_applied_messages` MODIFY `name` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") + end +end