diff --git a/CHANGELOG b/CHANGELOG index 3fec2d86dfc772c822193e0a4abd2e8d83d5019b..1c9f3bbac407232f2de2acb2d772705c44024dcb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +master + - [API] add project snippets list + - [API] allow to authorize using private token in HTTP header + - [API] add user creation + v 2.9.1 - Fixed resque custom config init @@ -9,7 +14,7 @@ v 2.9.0 - restyled projects list on dashboard - ssh keys validation to prevent gitolite crash - send notifications if changed premission in project - - scss refactoring. gitlab_bootstrap/ dir + - scss refactoring. gitlab_bootstrap/ dir - fix git push http body bigger than 112k problem - list of labels page under issues tab - API for milestones, keys @@ -113,7 +118,7 @@ v 2.1.0 v 2.0.0 - gitolite as main git host system - merge requests - - project/repo access + - project/repo access - link to commit/issue feed - design tab - improved email notifications @@ -147,7 +152,7 @@ v 1.1.0 - bugfix & code cleaning v 1.0.2 - - fixed bug with empty project + - fixed bug with empty project - added adv validation for project path & code - feature: issues can be sortable - bugfix diff --git a/doc/api/snippets.md b/doc/api/snippets.md index 0cd29ce530b37f87ab1dfb2eb7b87e8c993272b5..288fd5296f672638cf324242c8a88ecfc42f81a3 100644 --- a/doc/api/snippets.md +++ b/doc/api/snippets.md @@ -1,6 +1,14 @@ ## List snippets -Not implemented. +Get a list of project snippets. + +``` +GET /projects/:id/snippets +``` + +Parameters: + ++ `id` (required) - The ID or code name of a project ## Single snippet diff --git a/lib/api/projects.rb b/lib/api/projects.rb index c3dc3da6facd5a35d542f35bd2dfe3bc9ef3648f..0f013883c81f9adee1e6453e79e3c2fa528bef05 100644 --- a/lib/api/projects.rb +++ b/lib/api/projects.rb @@ -176,7 +176,6 @@ module Gitlab authorize! :admin_project, user_project @hook = user_project.hooks.find(params[:hook_id]) @hook.destroy - nil end # Get a project repository branches @@ -229,6 +228,16 @@ module Gitlab present CommitDecorator.decorate(commits), with: Entities::RepoCommit end + # Get a project snippets + # + # Parameters: + # id (required) - The ID or code name of a project + # Example Request: + # GET /projects/:id/snippets + get ":id/snippets" do + present paginate(user_project.snippets), with: Entities::ProjectSnippet + end + # Get a project snippet # # Parameters: diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index 498bbad6179fb9f59dbe1463744e28c553776c1f..94c9abb35e4a07fd7c5ebc100a7ea3b408473e95 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -220,6 +220,15 @@ describe Gitlab::API do end end + describe "GET /projects/:id/snippets" do + it "should return a project snippet" do + get api("/projects/#{project.code}/snippets", user) + response.status.should == 200 + json_response.should be_an Array + json_response.first['title'].should == snippet.title + end + end + describe "GET /projects/:id/snippets/:snippet_id" do it "should return a project snippet" do get api("/projects/#{project.code}/snippets/#{snippet.id}", user)