/lib/api/deployments.rb

https://gitlab.com/vicvega/gitlab-ce · Ruby · 40 lines · 34 code · 5 blank · 1 comment · 0 complexity · 3614bfd1cf1148b2f34affd07f0f820b MD5 · raw file

  1. module API
  2. # Deployments RESTfull API endpoints
  3. class Deployments < Grape::API
  4. before { authenticate! }
  5. params do
  6. requires :id, type: String, desc: 'The project ID'
  7. end
  8. resource :projects do
  9. desc 'Get all deployments of the project' do
  10. detail 'This feature was introduced in GitLab 8.11.'
  11. success Entities::Deployment
  12. end
  13. params do
  14. optional :page, type: Integer, desc: 'Page number of the current request'
  15. optional :per_page, type: Integer, desc: 'Number of items per page'
  16. end
  17. get ':id/deployments' do
  18. authorize! :read_deployment, user_project
  19. present paginate(user_project.deployments), with: Entities::Deployment
  20. end
  21. desc 'Gets a specific deployment' do
  22. detail 'This feature was introduced in GitLab 8.11.'
  23. success Entities::Deployment
  24. end
  25. params do
  26. requires :deployment_id, type: Integer, desc: 'The deployment ID'
  27. end
  28. get ':id/deployments/:deployment_id' do
  29. authorize! :read_deployment, user_project
  30. deployment = user_project.deployments.find(params[:deployment_id])
  31. present deployment, with: Entities::Deployment
  32. end
  33. end
  34. end
  35. end