From 0d67f209fcbabed5831d90561350a8e094c150c4 Mon Sep 17 00:00:00 2001 From: Nihad Abbasov Date: Fri, 29 Jun 2012 03:46:01 -0700 Subject: refactor API and improve docs --- lib/api/projects.rb | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 lib/api/projects.rb (limited to 'lib/api/projects.rb') diff --git a/lib/api/projects.rb b/lib/api/projects.rb new file mode 100644 index 00000000000..670d3d97acc --- /dev/null +++ b/lib/api/projects.rb @@ -0,0 +1,50 @@ +module Gitlab + # Projects API + class Projects < Grape::API + before { authenticate! } + + resource :projects do + # Get a projects list for authenticated user + # + # Example Request: + # GET /projects + get do + @projects = current_user.projects + present @projects, :with => Entities::Project + end + + # Get a single project + # + # Parameters: + # id (required) - The code of a project + # Example Request: + # GET /projects/:id + get ":id" do + @project = current_user.projects.find_by_code(params[:id]) + present @project, :with => Entities::Project + end + + # Get a project repository branches + # + # Parameters: + # id (required) - The code of a project + # Example Request: + # GET /projects/:id/repository/branches + get ":id/repository/branches" do + @project = current_user.projects.find_by_code(params[:id]) + present @project.repo.heads.sort_by(&:name), :with => Entities::ProjectRepositoryBranches + end + + # Get a project repository tags + # + # Parameters: + # id (required) - The code of a project + # Example Request: + # GET /projects/:id/repository/tags + get ":id/repository/tags" do + @project = current_user.projects.find_by_code(params[:id]) + present @project.repo.tags.sort_by(&:name).reverse, :with => Entities::ProjectRepositoryTags + end + end + end +end -- cgit v1.2.1