1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
# frozen_string_literal: true
require 'gitlab/version'
require 'gitlab/objectified_hash'
require 'gitlab/configuration'
require 'gitlab/error'
require 'gitlab/headers/page_links'
require 'gitlab/headers/total'
require 'gitlab/paginated_response'
require 'gitlab/file_response'
require 'gitlab/request'
require 'gitlab/api'
require 'gitlab/client'
module Gitlab
extend Configuration
# Alias for Gitlab::Client.new
#
# @return [Gitlab::Client]
def self.client(options = {})
Gitlab::Client.new(options)
end
if Gem::Version.new(RUBY_VERSION).release >= Gem::Version.new('3.0.0')
def self.method_missing(method, *args, **keywargs, &block)
return super unless client.respond_to?(method)
client.send(method, *args, **keywargs, &block)
end
else
def self.method_missing(method, *args, &block)
return super unless client.respond_to?(method)
client.send(method, *args, &block)
end
end
# Delegate to Gitlab::Client
def self.respond_to_missing?(method_name, include_private = false)
client.respond_to?(method_name) || super
end
# Delegate to HTTParty.http_proxy
def self.http_proxy(address = nil, port = nil, username = nil, password = nil)
Gitlab::Request.http_proxy(address, port, username, password)
end
# Returns an unsorted array of available client methods.
#
# @return [Array<Symbol>]
def self.actions
# rubocop:disable Layout/LineLength
hidden =
/endpoint|private_token|auth_token|user_agent|sudo|get|post|put|patch|\Adelete\z|validate\z|request_defaults|httparty/
# rubocop:enable Layout/LineLength
(Gitlab::Client.instance_methods - Object.methods).reject { |e| e[hidden] }
end
end
|