class DevOps::BuildsController < ApplicationController include RepositoriesHelper before_action :require_login before_action :find_project before_action :devops_authorize! def index cloud_account = @project.dev_ops_cloud_account result = DevOps::Drone::API.new(cloud_account.drone_token, cloud_account.drone_url, @project.owner.login, @project.identifier).builds render json: result end def detail cloud_account = @project.dev_ops_cloud_account result = DevOps::Drone::API.new(cloud_account.drone_token, cloud_account.drone_url, @project.owner.login, @project.identifier, number: params[:number]).build render json: result end def restart cloud_account = @project.dev_ops_cloud_account result = DevOps::Drone::API.new(cloud_account.drone_token, cloud_account.drone_url, @project.owner.login, @project.identifier, number: params[:number]).restart render json: result end def delete cloud_account = @project.dev_ops_cloud_account result = DevOps::Drone::API.new(cloud_account.drone_token, cloud_account.drone_url, @project.owner.login, @project.identifier, number: params[:number]).stop render json: result end def logs cloud_account = @project.dev_ops_cloud_account result = DevOps::Drone::API.new(cloud_account.drone_token, cloud_account.drone_url, @project.owner.login, @project.identifier, build: params[:number], stage: params[:stage], step: params[:step]).logs render json: result end # get .trustie-pipeline.yml file def get_trustie_pipeline file_path_uri = URI.parse('.trustie-pipeline.yml') interactor = Repositories::EntriesInteractor.call(@project.owner, @project.identifier, file_path_uri, ref: params[:ref] || "master") if interactor.success? file = interactor.result return render json: {} if file[:status] json = {name: file['name'], path: file['path'], sha: file['sha'], content: render_decode64_content(file['content'])} render json: json end end private def find_project @project = Project.find params[:project_id] end end