forgeplus/app/views/compare/show.json.jbuilder

79 lines
3.1 KiB
Ruby

json.commits_count @compare_result['Commits']&.size
# json.commits @compare_result['Commits'], partial: 'pull_requests/commit', as: :commit
json.commits do
json.array! @compare_result['Commits'] do |commit|
json.author do
json.partial! 'repositories/commit_author', locals: { user: render_cache_commit_author(commit['Committer']), name: commit['Committer']['Name'] }
end
json.committer do
json.partial! 'repositories/commit_author', locals: { user: render_cache_commit_author(commit['Committer']), name: commit['Committer']['Name'] }
end
json.timestamp render_unix_time(commit['Committer']['When'])
json.time_from_now time_from_now(commit['Committer']['When'])
json.created_at render_format_time_with_date(commit['Committer']['When'])
json.message commit['CommitMessage']
json.sha commit['Sha']
end
end
json.diff do
if @compare_result['Diff'].blank?
json.nil!
else
json.files_count @compare_result['Diff']['NumFiles']
json.total_addition @compare_result['Diff']['TotalAddition']
json.total_deletion @compare_result['Diff']['TotalDeletion']
# TODO: 解决render partil耗时间问题
# json.files @compare_result['Diff']['Files'], partial: 'pull_requests/diff_file', as: :file, locals: {sha: @compare_result['LatestSha']}
json.files do
json.array! @compare_result['Diff']['Files'] do |file|
json.sha @compare_result['LatestSha']
json.name file['Name']
json.old_name file['OldName']
json.index file['Index']
json.addition file['Addition']
json.deletion file['Deletion']
json.type file['Type']
json.isCreated file['IsCreated']
json.isDeleted file['IsDeleted']
json.isBin file['IsBin']
json.isLFSFile file['IsLFSFile']
json.isRenamed file['IsRenamed']
json.isSubmodule file['IsSubmodule']
json.isLFSFile file['IsLFSFile']
json.sections do
json.array! file['Sections'] do |section|
json.fileName section['FileName']
json.name section['Name']
json.lines do
json.array! section['Lines'] do |line|
json.leftIdx line['LeftIdx']
json.rightIdx line['RightIdx']
json.type line['Type']
json.content line['Content']
json.sectionInfo do
if line['SectionInfo'].blank?
json.nil!
else
json.path line['SectionInfo']['Path']
json.lastLeftIdx line['SectionInfo']['LastLeftIdx']
json.lastRightIdx line['SectionInfo']['LastRightIdx']
json.leftIdx line['SectionInfo']['LeftIdx']
json.rightIdx line['SectionInfo']['RightIdx']
json.leftHunkSize line['SectionInfo']['LeftHunkSize']
json.rightHunkSize line['SectionInfo']['RightHunkSize']
end
end
end
end
end
end
end
end
end
end
json.status @merge_status
json.message @merge_message