diff options
Diffstat (limited to 'lib/api/branches.rb')
-rw-r--r-- | lib/api/branches.rb | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/lib/api/branches.rb b/lib/api/branches.rb deleted file mode 100644 index 592100a7045..00000000000 --- a/lib/api/branches.rb +++ /dev/null @@ -1,119 +0,0 @@ -require 'mime/types' - -module API - # Projects API - class Branches < Grape::API - before { authenticate! } - before { authorize! :download_code, user_project } - - resource :projects do - # Get a project repository branches - # - # Parameters: - # id (required) - The ID of a project - # Example Request: - # GET /projects/:id/repository/branches - get ":id/repository/branches" do - branches = user_project.repository.branches.sort_by(&:name) - present branches, with: Entities::RepoObject, project: user_project - end - - # Get a single branch - # - # Parameters: - # id (required) - The ID of a project - # branch (required) - The name of the branch - # Example Request: - # GET /projects/:id/repository/branches/:branch - get ':id/repository/branches/:branch', requirements: { branch: /.*/ } do - @branch = user_project.repository.branches.find { |item| item.name == params[:branch] } - not_found!("Branch") unless @branch - present @branch, with: Entities::RepoObject, project: user_project - end - - # Protect a single branch - # - # Parameters: - # id (required) - The ID of a project - # branch (required) - The name of the branch - # Example Request: - # PUT /projects/:id/repository/branches/:branch/protect - put ':id/repository/branches/:branch/protect', - requirements: { branch: /.*/ } do - - authorize_admin_project - - @branch = user_project.repository.find_branch(params[:branch]) - not_found!("Branch") unless @branch - protected_branch = user_project.protected_branches.find_by(name: @branch.name) - user_project.protected_branches.create(name: @branch.name) unless protected_branch - - present @branch, with: Entities::RepoObject, project: user_project - end - - # Unprotect a single branch - # - # Parameters: - # id (required) - The ID of a project - # branch (required) - The name of the branch - # Example Request: - # PUT /projects/:id/repository/branches/:branch/unprotect - put ':id/repository/branches/:branch/unprotect', - requirements: { branch: /.*/ } do - - authorize_admin_project - - @branch = user_project.repository.find_branch(params[:branch]) - not_found!("Branch does not exist") unless @branch - protected_branch = user_project.protected_branches.find_by(name: @branch.name) - protected_branch.destroy if protected_branch - - present @branch, with: Entities::RepoObject, project: user_project - end - - # Create branch - # - # Parameters: - # id (required) - The ID of a project - # branch_name (required) - The name of the branch - # ref (required) - Create branch from commit sha or existing branch - # Example Request: - # POST /projects/:id/repository/branches - post ":id/repository/branches" do - authorize_push_project - result = CreateBranchService.new(user_project, current_user). - execute(params[:branch_name], params[:ref]) - - if result[:status] == :success - present result[:branch], - with: Entities::RepoObject, - project: user_project - else - render_api_error!(result[:message], 400) - end - end - - # Delete branch - # - # Parameters: - # id (required) - The ID of a project - # branch (required) - The name of the branch - # Example Request: - # DELETE /projects/:id/repository/branches/:branch - delete ":id/repository/branches/:branch", - requirements: { branch: /.*/ } do - authorize_push_project - result = DeleteBranchService.new(user_project, current_user). - execute(params[:branch]) - - if result[:status] == :success - { - branch_name: params[:branch] - } - else - render_api_error!(result[:message], result[:return_code]) - end - end - end - end -end |