Make git push mandatory
This commit is contained in:
parent
5e8138aa54
commit
3c0f6da546
|
@ -111,13 +111,6 @@ module API
|
||||||
def gitaly_payload(action)
|
def gitaly_payload(action)
|
||||||
return unless %w[git-receive-pack git-upload-pack].include?(action)
|
return unless %w[git-receive-pack git-upload-pack].include?(action)
|
||||||
|
|
||||||
if action == 'git-receive-pack'
|
|
||||||
return unless Gitlab::GitalyClient.feature_enabled?(
|
|
||||||
:ssh_receive_pack,
|
|
||||||
status: Gitlab::GitalyClient::MigrationStatus::OPT_OUT
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
{
|
{
|
||||||
repository: repository.gitaly_repository,
|
repository: repository.gitaly_repository,
|
||||||
address: Gitlab::GitalyClient.address(project.repository_storage),
|
address: Gitlab::GitalyClient.address(project.repository_storage),
|
||||||
|
|
|
@ -10,6 +10,7 @@ module Gitlab
|
||||||
INTERNAL_API_CONTENT_TYPE = 'application/vnd.gitlab-workhorse+json'.freeze
|
INTERNAL_API_CONTENT_TYPE = 'application/vnd.gitlab-workhorse+json'.freeze
|
||||||
INTERNAL_API_REQUEST_HEADER = 'Gitlab-Workhorse-Api-Request'.freeze
|
INTERNAL_API_REQUEST_HEADER = 'Gitlab-Workhorse-Api-Request'.freeze
|
||||||
NOTIFICATION_CHANNEL = 'workhorse:notifications'.freeze
|
NOTIFICATION_CHANNEL = 'workhorse:notifications'.freeze
|
||||||
|
ALLOWED_ACTIONS = %w[git_receive_pack git_upload_pack info_refs].freeze
|
||||||
|
|
||||||
# Supposedly the effective key size for HMAC-SHA256 is 256 bits, i.e. 32
|
# Supposedly the effective key size for HMAC-SHA256 is 256 bits, i.e. 32
|
||||||
# bytes https://tools.ietf.org/html/rfc4868#section-2.6
|
# bytes https://tools.ietf.org/html/rfc4868#section-2.6
|
||||||
|
@ -17,6 +18,8 @@ module Gitlab
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def git_http_ok(repository, is_wiki, user, action, show_all_refs: false)
|
def git_http_ok(repository, is_wiki, user, action, show_all_refs: false)
|
||||||
|
raise "Unsupported action: #{action}" unless ALLOWED_ACTIONS.include?(action.to_s)
|
||||||
|
|
||||||
project = repository.project
|
project = repository.project
|
||||||
repo_path = repository.path_to_repo
|
repo_path = repository.path_to_repo
|
||||||
params = {
|
params = {
|
||||||
|
@ -31,24 +34,7 @@ module Gitlab
|
||||||
token: Gitlab::GitalyClient.token(project.repository_storage)
|
token: Gitlab::GitalyClient.token(project.repository_storage)
|
||||||
}
|
}
|
||||||
params[:Repository] = repository.gitaly_repository.to_h
|
params[:Repository] = repository.gitaly_repository.to_h
|
||||||
|
params[:GitalyServer] = server
|
||||||
feature_enabled = case action.to_s
|
|
||||||
when 'git_receive_pack'
|
|
||||||
Gitlab::GitalyClient.feature_enabled?(
|
|
||||||
:post_receive_pack,
|
|
||||||
status: Gitlab::GitalyClient::MigrationStatus::OPT_OUT
|
|
||||||
)
|
|
||||||
when 'git_upload_pack'
|
|
||||||
true
|
|
||||||
when 'info_refs'
|
|
||||||
true
|
|
||||||
else
|
|
||||||
raise "Unsupported action: #{action}"
|
|
||||||
end
|
|
||||||
|
|
||||||
if feature_enabled
|
|
||||||
params[:GitalyServer] = server
|
|
||||||
end
|
|
||||||
|
|
||||||
params
|
params
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue