Skip to content
Snippets Groups Projects
Select Git revision
  • move-gl-dropdown
  • improve-table-pagination-spec
  • move-markdown-preview
  • winh-fix-merge-request-spec
  • master default
  • index-namespaces-lower-name
  • winh-single-karma-test
  • 10-3-stable
  • 36782-replace-team-user-role-with-add_role-user-in-specs
  • winh-modal-internal-state
  • tz-ide-file-icons
  • 38869-milestone-select
  • update-autodevops-template
  • jivl-activate-repo-cookie-preferences
  • qa-add-deploy-key
  • docs-move-article-ldap
  • 40780-choose-file
  • 22643-manual-job-page
  • refactor-cluster-show-page-conservative
  • dm-sidekiq-versioning
  • v10.4.0.pre
  • v10.3.0
  • v10.3.0-rc5
  • v10.3.0-rc4
  • v10.3.0-rc3
  • v10.3.0-rc2
  • v10.2.5
  • v10.3.0-rc1
  • v10.0.7
  • v10.1.5
  • v10.2.4
  • v10.2.3
  • v10.2.2
  • v10.2.1
  • v10.3.0.pre
  • v10.2.0
  • v10.2.0-rc4
  • v10.2.0-rc3
  • v10.1.4
  • v10.2.0-rc2
40 results

api.rb

Blame
  • Forked from GitLab.org / GitLab FOSS
    43626 commits behind the upstream repository.
    api.rb 1.28 KiB
    Dir["#{Rails.root}/lib/api/*.rb"].each {|file| require file}
    
    module API
      class API < Grape::API
        version 'v3', using: :path
    
        rescue_from ActiveRecord::RecordNotFound do
          rack_response({'message' => '404 Not found'}.to_json, 404)
        end
    
        rescue_from :all do |exception|
          # lifted from https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb#L60
          # why is this not wrapped in something reusable?
          trace = exception.backtrace
    
          message = "\n#{exception.class} (#{exception.message}):\n"
          message << exception.annoted_source_code.to_s if exception.respond_to?(:annoted_source_code)
          message << "  " << trace.join("\n  ")
    
          API.logger.add Logger::FATAL, message
          rack_response({'message' => '500 Internal Server Error'}, 500)
        end
    
        format :json
        content_type :txt, "text/plain"
    
        helpers APIHelpers
    
        mount Groups
        mount Users
        mount Projects
        mount Repositories
        mount Issues
        mount Milestones
        mount Session
        mount MergeRequests
        mount Notes
        mount Internal
        mount SystemHooks
        mount ProjectSnippets
        mount ProjectMembers
        mount DeployKeys
        mount ProjectHooks
        mount Services
        mount Files
        mount Commits
        mount Namespaces
      end
    end