diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index a6a887fa939cca783b1781bbb00422d917e1fd26..dfc1fdcee8a2d45d078aec24ef6551a257321667 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -152,7 +152,7 @@ class ApplicationController < ActionController::Base def add_gon_variables gon.default_issues_tracker = Project.issues_tracker.default_value - gon.api_version = Gitlab::API.version + gon.api_version = API::API.version gon.api_token = current_user.private_token if current_user gon.gravatar_url = request.ssl? ? Gitlab.config.gravatar.ssl_url : Gitlab.config.gravatar.plain_url gon.relative_url_root = Gitlab.config.gitlab.relative_url_root diff --git a/config/routes.rb b/config/routes.rb index 0e60aeb99842c0b52f0d089474abefd60e19e780..0b0bd293da25d088a67d067d47aacc3f1dea421b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,5 @@ require 'sidekiq/web' +require 'api/api' Gitlab::Application.routes.draw do # @@ -7,9 +8,8 @@ Gitlab::Application.routes.draw do get 'search' => "search#show" # API - require 'api' - Gitlab::API.logger Rails.logger - mount Gitlab::API => '/api' + API::API.logger Rails.logger + mount API::API => '/api' constraint = lambda { |request| request.env["warden"].authenticate? and request.env['warden'].user.admin? } constraints constraint do diff --git a/lib/api.rb b/lib/api/api.rb similarity index 98% rename from lib/api.rb rename to lib/api/api.rb index 082769da6d372388f0b29d4e655b574c7a875943..28e6add73ed0c397d220bb3a2569c5def1e7f583 100644 --- a/lib/api.rb +++ b/lib/api/api.rb @@ -1,6 +1,6 @@ Dir["#{Rails.root}/lib/api/*.rb"].each {|file| require file} -module Gitlab +module API class API < Grape::API version 'v3', using: :path diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 3fe4abc3e2ab97a231cd0ae88f2d71c5a5bbc9cb..c3c351e1733b5edd0b2d75eae05dcec7357df0f0 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -1,4 +1,4 @@ -module Gitlab +module API module Entities class User < Grape::Entity expose :id, :username, :email, :name, :bio, :skype, :linkedin, :twitter, diff --git a/lib/api/groups.rb b/lib/api/groups.rb index efdbeb176c65dd046e4ee2a8d162d345553ccd27..701f6777b77d6f0a06a088bf47be01105ce356f2 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -1,4 +1,4 @@ -module Gitlab +module API # groups API class Groups < Grape::API before { authenticate! } diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb index f12fb5fdbd0af6ca328aee63a973091cddc40289..94cf4f2e69f75b739495933fd6476000ef07a11d 100644 --- a/lib/api/helpers.rb +++ b/lib/api/helpers.rb @@ -1,4 +1,4 @@ -module Gitlab +module API module APIHelpers def current_user @current_user ||= User.find_by_authentication_token(params[:private_token] || env["HTTP_PRIVATE_TOKEN"]) diff --git a/lib/api/internal.rb b/lib/api/internal.rb index 3e1173bd0a3543c665535cc48d64a1fbee480886..a602dc054188bffaddc6be0d7dc81b282d0d65a2 100644 --- a/lib/api/internal.rb +++ b/lib/api/internal.rb @@ -1,4 +1,4 @@ -module Gitlab +module API # Internal access API class Internal < Grape::API namespace 'internal' do @@ -58,7 +58,7 @@ module Gitlab get "/check" do { - api_version: Gitlab::API.version, + api_version: API.version, gitlab_version: Gitlab::VERSION, gitlab_rev: Gitlab::REVISION, } diff --git a/lib/api/issues.rb b/lib/api/issues.rb index 500a8551f35ebfc36616229dec4745c10b7b90a5..53e2e8cfa3599ce4ea6e5ec66d1cc724225ec735 100644 --- a/lib/api/issues.rb +++ b/lib/api/issues.rb @@ -1,4 +1,4 @@ -module Gitlab +module API # Issues API class Issues < Grape::API before { authenticate! } diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index d5595d5f16bf3dddd9c671fd88523c185db2dde1..23e2f82889fc668f5187d626cce3c40117c9bcdb 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -1,4 +1,4 @@ -module Gitlab +module API # MergeRequest API class MergeRequests < Grape::API before { authenticate! } diff --git a/lib/api/milestones.rb b/lib/api/milestones.rb index 1adeefece1f2202b5491f471df0ee2b4c73a17da..a25bbad130228fc61c1ccd261738690c7c1699fa 100644 --- a/lib/api/milestones.rb +++ b/lib/api/milestones.rb @@ -1,4 +1,4 @@ -module Gitlab +module API # Milestones API class Milestones < Grape::API before { authenticate! } diff --git a/lib/api/notes.rb b/lib/api/notes.rb index 450faae535a8f351dff30616d5083a0e29cc9388..cb2bc764476274fef42561b9e67501ae7aa1a732 100644 --- a/lib/api/notes.rb +++ b/lib/api/notes.rb @@ -1,4 +1,4 @@ -module Gitlab +module API # Notes API class Notes < Grape::API before { authenticate! } diff --git a/lib/api/projects.rb b/lib/api/projects.rb index 18e912ff48e8acf0987fa82594342b1043f8ad54..d9743b4539ac6f57564d01103aee952c619eb929 100644 --- a/lib/api/projects.rb +++ b/lib/api/projects.rb @@ -1,4 +1,4 @@ -module Gitlab +module API # Projects API class Projects < Grape::API before { authenticate! } diff --git a/lib/api/session.rb b/lib/api/session.rb index b4050160ae42facebe03ae10f0af4c7f631454cc..509acded51efae8326423dcab4e6c18a5e292ebe 100644 --- a/lib/api/session.rb +++ b/lib/api/session.rb @@ -1,4 +1,4 @@ -module Gitlab +module API # Users API class Session < Grape::API # Login to get token diff --git a/lib/api/system_hooks.rb b/lib/api/system_hooks.rb index 9e3574e3b9935b3ca64a9ce18de06ae622d878df..3e239c5afe773502151d31ae109f31fd6934abc6 100644 --- a/lib/api/system_hooks.rb +++ b/lib/api/system_hooks.rb @@ -1,4 +1,4 @@ -module Gitlab +module API # Hooks API class SystemHooks < Grape::API before { diff --git a/lib/api/users.rb b/lib/api/users.rb index cda543495a08fb9618889abb05edd909e4677d1e..84256b51124ea8c58ed2f810dff47dd8476a28d2 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -1,4 +1,4 @@ -module Gitlab +module API # Users API class Users < Grape::API before { authenticate! } diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb index cf284b607a54b2f156766a2c23e54b4426e401e5..d2e25fb9e23782dbf1f53f91696a5c30954a0b30 100644 --- a/spec/requests/api/groups_spec.rb +++ b/spec/requests/api/groups_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Gitlab::API do +describe API::API do include ApiHelpers let(:user1) { create(:user) } diff --git a/spec/requests/api/internal_spec.rb b/spec/requests/api/internal_spec.rb index ba11a41da2982bba98eb4cabbb557e4fd754bb7c..5a43953d15c630011a7aecd78ca668eb9b59e1e4 100644 --- a/spec/requests/api/internal_spec.rb +++ b/spec/requests/api/internal_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Gitlab::API do +describe API::API do include ApiHelpers let(:user) { create(:user) } @@ -12,7 +12,7 @@ describe Gitlab::API do get api("/internal/check") response.status.should == 200 - json_response['api_version'].should == Gitlab::API.version + json_response['api_version'].should == API::API.version end end diff --git a/spec/requests/api/issues_spec.rb b/spec/requests/api/issues_spec.rb index ecf0bdb70844ceb17513f913769807b7f5d107e6..d5f75367e4ad905967c780b8e4ae1b876033005d 100644 --- a/spec/requests/api/issues_spec.rb +++ b/spec/requests/api/issues_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Gitlab::API do +describe API::API do include ApiHelpers let(:user) { create(:user) } diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb index 25bbd9860bd6cee0c7a59eb46b152006345417f8..5bf228a74486c31f503290e0714c4c3fce4056b3 100644 --- a/spec/requests/api/merge_requests_spec.rb +++ b/spec/requests/api/merge_requests_spec.rb @@ -1,6 +1,6 @@ require "spec_helper" -describe Gitlab::API do +describe API::API do include ApiHelpers let(:user) { create(:user ) } diff --git a/spec/requests/api/milestones_spec.rb b/spec/requests/api/milestones_spec.rb index c9a10417fff8a54dbc27937379ba03892c235563..af12c088c8f807efdf139305e60143b993a7d50f 100644 --- a/spec/requests/api/milestones_spec.rb +++ b/spec/requests/api/milestones_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Gitlab::API do +describe API::API do include ApiHelpers before(:each) { enable_observers } diff --git a/spec/requests/api/notes_spec.rb b/spec/requests/api/notes_spec.rb index 901640834f212f04e558bd7833f549ec61a32e6e..78d55a7b4ed341da50f6dc98ddc69aa0daeb3376 100644 --- a/spec/requests/api/notes_spec.rb +++ b/spec/requests/api/notes_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Gitlab::API do +describe API::API do include ApiHelpers let(:user) { create(:user) } diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index 7aeee354ba1ef0d3bdc0e312b2c1110432a3b63d..4346bfe8f2e3fe81603f3afcb10d4be64ed9e2ae 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Gitlab::API do +describe API::API do include ApiHelpers before(:each) { enable_observers } diff --git a/spec/requests/api/session_spec.rb b/spec/requests/api/session_spec.rb index 4a37312bffde71ce65d36936e38260bc5cc684cd..88c17f26a69d1373e3f172904b92e8c7f54d8524 100644 --- a/spec/requests/api/session_spec.rb +++ b/spec/requests/api/session_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Gitlab::API do +describe API::API do include ApiHelpers let(:user) { create(:user) } diff --git a/spec/requests/api/system_hooks_spec.rb b/spec/requests/api/system_hooks_spec.rb index 647e31ce034eb587bd022b62e795e0561a831585..b1df3cb7886d316c70b5f7237d0841e25e694aa1 100644 --- a/spec/requests/api/system_hooks_spec.rb +++ b/spec/requests/api/system_hooks_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Gitlab::API do +describe API::API do include ApiHelpers let(:user) { create(:user) } diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb index b4688dd29f7783c4b755d39ff7b7f4085dc6f9bd..33df9f7ece5da6cb153b4b8d6e0764ea079bf4e6 100644 --- a/spec/requests/api/users_spec.rb +++ b/spec/requests/api/users_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Gitlab::API do +describe API::API do include ApiHelpers let(:user) { create(:user) } diff --git a/spec/routing/routing_spec.rb b/spec/routing/routing_spec.rb index 5ad8165ecce1de76442b5f4c19394f13a7136634..049cfeaab0192b3cd6897fd59badac052079b254 100644 --- a/spec/routing/routing_spec.rb +++ b/spec/routing/routing_spec.rb @@ -7,7 +7,7 @@ describe SearchController, "routing" do end end -# gitlab_api /api Gitlab::API +# gitlab_api /api API::API # resque /info/resque Resque::Server # /:path Grack describe "Mounted Apps", "routing" do diff --git a/spec/support/api_helpers.rb b/spec/support/api_helpers.rb index c4514bf38be20c5b7921a04d8feb79b1b4d7341e..ec9a326a1ea0252d8afbb21b3f89312c8038d86b 100644 --- a/spec/support/api_helpers.rb +++ b/spec/support/api_helpers.rb @@ -18,7 +18,7 @@ module ApiHelpers # # Returns the relative path to the requested API resource def api(path, user = nil) - "/api/#{Gitlab::API.version}#{path}" + + "/api/#{API::API.version}#{path}" + # Normalize query string (path.index('?') ? '' : '?') +