diff --git a/app/controllers/api/v1/projects/actions/actions_controller.rb b/app/controllers/api/v1/projects/actions/actions_controller.rb index 0d7d51336..5d494d288 100644 --- a/app/controllers/api/v1/projects/actions/actions_controller.rb +++ b/app/controllers/api/v1/projects/actions/actions_controller.rb @@ -31,18 +31,26 @@ class Api::V1::Projects::Actions::ActionsController < Api::V1::Projects::Actions failure += v if k[0] == file && k[1] == 2 end + pipeline_type = 1 + begin + content = Gitea::Repository::Entries::GetService.call(@project&.owner, @project&.identifier, URI.escape(file), ref: last_action_run.present? ? last_action_run.gsub("refs/heads/","") : @project.default_branch)['content'] + yaml_string = Base64.decode64(content).force_encoding("GBK").encode("UTF-8") unless Base64.decode64(content).force_encoding('UTF-8').valid_encoding? + yaml_string = Base64.decode64(content).force_encoding('UTF-8') + yml = YAML.safe_load(yaml_string) + pipeline_type = yml.name == file.to_s.gsub(".yml","").gsub(".yaml","") ? 2 : 1 + rescue + Rails.logger.info("#{file}不能识别流水线类型") + end @result << { - name: file, - last_action_run: last_action_run_json, - history: { - total: total, - success: success, - failure: failure, - } - } + name: file.to_s.gsub(".yml","").gsub(".yaml","") , + branch: last_action_run.present? ? last_action_run.gsub("refs/heads/","") : @project.default_branch, + pipeline_type: pipeline_type, + total: total, + success: success, + failure: failure + }.merge(last_action_run_json) end - - render :json => @result + render :json => {data: @result} end def index