X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f9ae5b90a5e04477133ca7a7d34bd3eebf862474..0f537bcaa60b8a1496010bc9d4a943484e69081c:/services/api/app/models/repository.rb diff --git a/services/api/app/models/repository.rb b/services/api/app/models/repository.rb index 7cb36dcb92..46f2de6ee4 100644 --- a/services/api/app/models/repository.rb +++ b/services/api/app/models/repository.rb @@ -49,7 +49,7 @@ class Repository < ArvadosModel # prefers bare repositories over checkouts. [["%s.git"], ["%s", ".git"]].each do |repo_base, *join_args| [:uuid, :name].each do |path_attr| - git_dir = File.join(Rails.configuration.Git["Repositories"], + git_dir = File.join(Rails.configuration.Git.Repositories, repo_base % send(path_attr), *join_args) return git_dir if File.exist?(git_dir) end @@ -92,17 +92,17 @@ class Repository < ArvadosModel end if not (/^#{prefix_match}[A-Za-z][A-Za-z0-9]*$/.match(name)) errors.add(:name, - "#{errmsg_start} a letter followed by alphanumerics") + "#{errmsg_start} a letter followed by alphanumerics, expected pattern '#{prefix_match}[A-Za-z][A-Za-z0-9]*' but was '#{name}'") false end end def ssh_clone_url - _clone_url Rails.configuration.Services["GitSSH"].andand["ExternalURL"], 'ssh://git@git.%s.arvadosapi.com' + _clone_url Rails.configuration.Services.GitSSH.andand.ExternalURL, 'ssh://git@git.%s.arvadosapi.com' end def https_clone_url - _clone_url Rails.configuration.Services["GitHTTP"].andand["ExternalURL"], 'https://git.%s.arvadosapi.com/' + _clone_url Rails.configuration.Services.GitHTTP.andand.ExternalURL, 'https://git.%s.arvadosapi.com/' end def _clone_url config_var, default_base_fmt @@ -115,6 +115,9 @@ class Repository < ArvadosModel else base = URI(default_base_fmt % prefix) end + if base.path == "" + base.path = "/" + end if base.scheme == "ssh" '%s@%s:%s.git' % [base.user, base.host, name] else