Commit fd2320849f07071258ec045b414fe2baa0dea9da

Authored by Dmitriy Zaporozhets
2 parents 5501955d 61f12da3

Merge pull request #1650 from NARKOZ/api

API for project snippets listing
CHANGELOG
  1 +master
  2 + - [API] add project snippets list
  3 + - [API] allow to authorize using private token in HTTP header
  4 + - [API] add user creation
  5 +
1 6 v 2.9.1
2 7 - Fixed resque custom config init
3 8  
... ... @@ -9,7 +14,7 @@ v 2.9.0
9 14 - restyled projects list on dashboard
10 15 - ssh keys validation to prevent gitolite crash
11 16 - send notifications if changed premission in project
12   - - scss refactoring. gitlab_bootstrap/ dir
  17 + - scss refactoring. gitlab_bootstrap/ dir
13 18 - fix git push http body bigger than 112k problem
14 19 - list of labels page under issues tab
15 20 - API for milestones, keys
... ... @@ -113,7 +118,7 @@ v 2.1.0
113 118 v 2.0.0
114 119 - gitolite as main git host system
115 120 - merge requests
116   - - project/repo access
  121 + - project/repo access
117 122 - link to commit/issue feed
118 123 - design tab
119 124 - improved email notifications
... ... @@ -147,7 +152,7 @@ v 1.1.0
147 152 - bugfix & code cleaning
148 153  
149 154 v 1.0.2
150   - - fixed bug with empty project
  155 + - fixed bug with empty project
151 156 - added adv validation for project path & code
152 157 - feature: issues can be sortable
153 158 - bugfix
... ...
doc/api/snippets.md
1 1 ## List snippets
2 2  
3   -Not implemented.
  3 +Get a list of project snippets.
  4 +
  5 +```
  6 +GET /projects/:id/snippets
  7 +```
  8 +
  9 +Parameters:
  10 +
  11 ++ `id` (required) - The ID or code name of a project
4 12  
5 13 ## Single snippet
6 14  
... ...
lib/api/projects.rb
... ... @@ -176,7 +176,6 @@ module Gitlab
176 176 authorize! :admin_project, user_project
177 177 @hook = user_project.hooks.find(params[:hook_id])
178 178 @hook.destroy
179   - nil
180 179 end
181 180  
182 181 # Get a project repository branches
... ... @@ -229,6 +228,16 @@ module Gitlab
229 228 present CommitDecorator.decorate(commits), with: Entities::RepoCommit
230 229 end
231 230  
  231 + # Get a project snippets
  232 + #
  233 + # Parameters:
  234 + # id (required) - The ID or code name of a project
  235 + # Example Request:
  236 + # GET /projects/:id/snippets
  237 + get ":id/snippets" do
  238 + present paginate(user_project.snippets), with: Entities::ProjectSnippet
  239 + end
  240 +
232 241 # Get a project snippet
233 242 #
234 243 # Parameters:
... ...
spec/requests/api/projects_spec.rb
... ... @@ -220,6 +220,15 @@ describe Gitlab::API do
220 220 end
221 221 end
222 222  
  223 + describe "GET /projects/:id/snippets" do
  224 + it "should return a project snippet" do
  225 + get api("/projects/#{project.code}/snippets", user)
  226 + response.status.should == 200
  227 + json_response.should be_an Array
  228 + json_response.first['title'].should == snippet.title
  229 + end
  230 + end
  231 +
223 232 describe "GET /projects/:id/snippets/:snippet_id" do
224 233 it "should return a project snippet" do
225 234 get api("/projects/#{project.code}/snippets/#{snippet.id}", user)
... ...