+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
class Repository < ArvadosBase
def self.creatable?
- current_user and current_user.is_admin
+ false
end
def attributes_for_display
super.reject { |x| x[0] == 'fetch_url' }
subtree
end
- # git 2.1.4 does not use credential helpers reliably, see #5416
- def self.disable_repository_browsing?
- return false if Rails.configuration.use_git2_despite_bug_risk
- if @buggy_git_version.nil?
- @buggy_git_version = /git version 2/ =~ `git version`
- end
- @buggy_git_version
- end
-
# http_fetch_url returns the first http:// or https:// url (if any)
# in the api response's clone_urls attribute.
def http_fetch_url
# non-zero.
def run_git *gitcmd
if not @workdir
- workdir = File.expand_path uuid+'.git', Rails.configuration.repository_cache
+ workdir = File.expand_path uuid+'.git', Rails.configuration.Workbench.RepositoryCache
if not File.exists? workdir
- FileUtils.mkdir_p Rails.configuration.repository_cache
+ FileUtils.mkdir_p Rails.configuration.Workbench.RepositoryCache
[['git', 'init', '--bare', workdir],
].each do |cmd|
system *cmd
"credential.#{http_fetch_url}.username", 'none'],
['git', '--git-dir', @workdir, 'config', '--local',
"credential.#{http_fetch_url}.helper",
- '!token(){ echo password="$ARVADOS_API_TOKEN"; }; token'],
+ '!cred(){ cat >/dev/null; if [ "$1" = get ]; then echo password=$ARVADOS_API_TOKEN; fi; };cred'],
['git', '--git-dir', @workdir, 'config', '--local',
'http.sslVerify',
- Rails.configuration.arvados_insecure_https ? 'false' : 'true'],
+ Rails.configuration.TLS.Insecure ? 'false' : 'true'],
].each do |cmd|
system *cmd
raise GitCommandError.new($?.to_s) unless $?.exitstatus == 0