diff --git a/app/controllers/quality_analysis_controller.rb b/app/controllers/quality_analysis_controller.rb index 7de4bedab..591cef596 100644 --- a/app/controllers/quality_analysis_controller.rb +++ b/app/controllers/quality_analysis_controller.rb @@ -20,17 +20,19 @@ class QualityAnalysisController < ApplicationController rep_id = params[:rep_id] # REDO job_name = "#{user_name}-#{rep_id}" + sonar_name = "#{user_name}:#{rep_id}" # Checks if the given job exists in Jenkins. unless @client.job.exists?(job_name) @g = Gitlab.client branch = params[:branch] + logger.error("##################################{branch}") language = params[:language] path = params[:path] qa = QualityAnalysis.where(:project_id => @project.id, :author_login => user_name).first version = qa.nil? ? 1 : qa.sonar_version + 1 - properties = "sonar.projectKey=#{user_name}:#{rep_id} - sonar.projectName=#{user_name}:#{rep_id} + properties = "sonar.projectKey=#{sonar_name} + sonar.projectName=#{sonar_name} sonar.projectVersion=#{version} sonar.sources=#{path} sonar.language=#{language.downcase} @@ -66,7 +68,7 @@ class QualityAnalysisController < ApplicationController puts e end respond_to do |format| - format.html{redirect_to project_quality_analysis_path(:project_id => @project.id, :resource_id => "#{user_name}:#{rep_id}")} + format.html{redirect_to project_quality_analysis_path(:project_id => @project.id, :resource_id => sonar_name, :branch => branch)} format.js end end @@ -83,7 +85,6 @@ class QualityAnalysisController < ApplicationController # @quality_analyses = QualityAnalysis.where("sonar_name in (#{arr.empty? ? '0': arr.join(',')})") @quality_analyses = QualityAnalysis.where(:project_id => @project.id) else - qa = QualityAnalysis.where(:project_id => @project.id).first complexity_date = open(@sonar_address + "/api/resources/index?resource=#{@resource_id}&depth=0&metrics=sqale_rating,function_complexity,duplicated_lines_density,comment_lines_density,sqale_index,lines,file_line,files,functions,classes,directories").read @complexity =JSON.parse(complexity_date).first issue_date = open(@sonar_address + "/api/resources/index?resource=#{@resource_id}&depth=0&metrics=blocker_violations,critical_violations,major_violations,minor_violations,info_violations,violations").read diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb index 3cf781f76..b525c4aed 100644 --- a/app/helpers/repositories_helper.rb +++ b/app/helpers/repositories_helper.rb @@ -41,6 +41,11 @@ module RepositoriesHelper identifiers.include?(iden) ? false :true end + def quality_analysis login, rep_id + long_rep_id = "#{login}:#{rep_id}" + QualityAnalysis.where(:sonar_name => long_rep_id).first + end + # 获取文件目录的最新动态 def get_trees_last_changes(project_id, rev, ent_name) g = Gitlab.client diff --git a/app/views/projects/_development_group.html.erb b/app/views/projects/_development_group.html.erb index 2c7d36fb5..6961fcbac 100644 --- a/app/views/projects/_development_group.html.erb +++ b/app/views/projects/_development_group.html.erb @@ -55,6 +55,12 @@ <%= link_to "+"+l(:project_gitlab_create_repository), url_for(:controller => 'projects', :action => 'settings', :id => @project.id, :tab=>'repositories') , :class => "subnav_green" %> <% end %> + + <% unless QualityAnalysis.where(:project_id => @project.id).first.nil? %> +
质量等级
-<%= @complexity["msr"][9]["frmt_val"] %>
+<%= @complexity["msr"][9]["frmt_val"] %>
复杂度
-<%= @complexity["msr"][6]["val"] %>
+<%= @complexity["msr"][6]["val"] %>
代码重复度
-<%= @complexity["msr"][7]["frmt_val"] %>
+<%= @complexity["msr"][7]["frmt_val"] %>
注释率
-<%= @complexity["msr"][5]["frmt_val"] %>
+<%= @complexity["msr"][5]["frmt_val"] %>