gitlink-forgeplus/app/controllers/ci/projects_controller.rb

42 lines
1.2 KiB
Ruby

class Ci::ProjectsController < Ci::BaseController
include Devopsable
include RepositoriesHelper
before_action :load_project
before_action :load_repo, only: [:update_trustie_pipeline]
def authorize
@user = current_user
limit_project_owner_can_devops!(@user, @project)
if request.put?
@user.set_drone_step!(User::DEVOPS_VERIFIED)
end
@cloud_account = @user.ci_cloud_account
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
def update_trustie_pipeline
interactor = Gitea::UpdateFileInteractor.call(current_user.gitea_token, params[:owner], params.merge(identifier: @project.identifier))
if interactor.success?
@file = interactor.result
render_result(1, "更新成功")
else
render_error(interactor.error)
end
end
end