Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorAlejandro Rodríguez <alejorro70@gmail.com>2017-10-15 04:52:07 +0300
committerAlejandro Rodríguez <alejorro70@gmail.com>2017-11-03 20:33:24 +0300
commitdea6d054cdf3082651e356875e4a9225933a2383 (patch)
tree3bdbdd89b6d426ed9974cdaf997cacbef6a3e8c5 /app
parent3f0233e5b531b44b2c276c8e8f536af6d2c15db3 (diff)
Encapsulate git operations for mirroring in Gitlab::Git
Diffstat (limited to 'app')
-rw-r--r--app/models/project.rb8
-rw-r--r--app/models/repository.rb17
-rw-r--r--app/services/projects/import_service.rb2
3 files changed, 9 insertions, 18 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 413866b994a..27e71de298a 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1679,6 +1679,10 @@ class Project < ActiveRecord::Base
Gitlab::GlRepository.gl_repository(self, is_wiki)
end
+ def reference_counter(wiki: false)
+ Gitlab::ReferenceCounter.new(gl_repository(is_wiki: wiki))
+ end
+
private
def storage
@@ -1697,11 +1701,11 @@ class Project < ActiveRecord::Base
end
def repo_reference_count
- Gitlab::ReferenceCounter.new(gl_repository(is_wiki: false)).value
+ reference_counter.value
end
def wiki_reference_count
- Gitlab::ReferenceCounter.new(gl_repository(is_wiki: true)).value
+ reference_counter(wiki: true).value
end
def check_repository_absence!
diff --git a/app/models/repository.rb b/app/models/repository.rb
index b1081db2e15..22912980695 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -966,21 +966,8 @@ class Repository
run_git(args).first.lines.map(&:strip)
end
- def add_remote(name, url)
- raw_repository.remote_add(name, url)
- rescue Rugged::ConfigError
- raw_repository.remote_update(name, url: url)
- end
-
- def remove_remote(name)
- raw_repository.remote_delete(name)
- true
- rescue Rugged::ConfigError
- false
- end
-
- def fetch_remote(remote, forced: false, no_tags: false)
- gitlab_shell.fetch_remote(raw_repository, remote, forced: forced, no_tags: no_tags)
+ def fetch_remote(remote, forced: false, ssh_auth: nil, no_tags: false)
+ gitlab_shell.fetch_remote(raw_repository, remote, ssh_auth: ssh_auth, forced: forced, no_tags: no_tags)
end
def fetch_source_branch(source_repository, source_branch, local_ref)
diff --git a/app/services/projects/import_service.rb b/app/services/projects/import_service.rb
index c3bf0031409..455b302d819 100644
--- a/app/services/projects/import_service.rb
+++ b/app/services/projects/import_service.rb
@@ -44,7 +44,7 @@ module Projects
else
clone_repository
end
- rescue Gitlab::Shell::Error => e
+ rescue Gitlab::Shell::Error, Gitlab::Git::RepositoryMirroring::RemoteError => e
# Expire cache to prevent scenarios such as:
# 1. First import failed, but the repo was imported successfully, so +exists?+ returns true
# 2. Retried import, repo is broken or not imported but +exists?+ still returns true