json.id project.id
json.repo_id project&.repository&.id
json.identifier render_identifier(project)
json.name project.name
json.description Nokogiri::HTML(project.description).text
json.visits project.visits
json.praises_count project.praises_count.to_i
json.watchers_count project.watchers_count.to_i 
json.issues_count project.issues_count.to_i  
json.pull_requests_count project.pull_requests_count.to_i  
json.forked_count project.forked_count.to_i
json.is_public project.is_public
json.is_secret project.is_secret
json.mirror_url project.repository&.mirror_url
json.type project&.numerical_for_project_type
json.last_update_time render_unix_time(project.updated_on)
json.full_last_update_time project.updated_on
json.time_ago time_from_now(project.updated_on)
json.forked_from_project_id project.forked_from_project_id
json.open_devops project.open_devops?
json.platform project.platform
json.is_pinned project.has_pinned_users.include?(current_user)
json.author do
  if project.educoder?
    project_educoder = project.project_educoder
    json.name project_educoder&.owner
    json.type 'Educoder'
    json.login project_educoder&.repo_name.split('/')[0]
    json.image_url render_educoder_avatar_url(project.project_educoder)
  else
    user = project.owner
    json.name user.try(:show_real_name)
    json.type user&.type
    json.login user.login
    json.image_url url_to_avatar(user).present? ? url_to_avatar(user) : User::Avatar.get_letter_avatar_url(user.login)
  end
end

json.category do
  if project.project_category.blank?
    json.nil!
  else
    json.id project.project_category.id
    json.name project.project_category.name
  end
end
json.language do
  if project.project_language.blank?
    json.nil!
  else
    json.id project.project_language.id
    json.name project.project_language.name
  end
end
json.is_member project.member?(current_user.try(:id))
json.is_need_apply project.is_need_apply
json.sca_project_id project.sca_project_id
json.huawei_code_check_task_id project.huawei_code_check_task_id
user_apply_signatures = project.apply_signatures.with_user_id(current_user.id)
json.user_apply_signatures user_apply_signatures do |signature|
  json.id signature.id
  json.status signature.status
end
json.topics project.project_topics.each do |topic| 
  json.(topic, :id, :name)
end
