summaryrefslogtreecommitdiff
path: root/app/models/repository.rb
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2017-04-03 14:46:00 -0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2017-04-03 15:50:22 -0300
commit35fe9c660cc5309e244ce1bde5f65b4e7ec73e4e (patch)
tree8e01ff0cb1d458b6d9f150231a4191b7acfde3a8 /app/models/repository.rb
parent6e64071e2065dc20d9a7afdce39a68b6172eea1f (diff)
downloadgitlab-ce-35fe9c660cc5309e244ce1bde5f65b4e7ec73e4e.tar.gz
Move methods that are not related to mirroring to the repository model
Diffstat (limited to 'app/models/repository.rb')
-rw-r--r--app/models/repository.rb26
1 files changed, 20 insertions, 6 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index a9c1ce6782d..adc2fd563ff 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -65,7 +65,7 @@ class Repository
# Return absolute path to repository
def path_to_repo
@path_to_repo ||= File.expand_path(
- File.join(@project.repository_storage_path, path_with_namespace + ".git")
+ File.join(repository_storage_path, path_with_namespace + ".git")
)
end
@@ -1034,11 +1034,21 @@ class Repository
rugged.references.delete(tmp_ref) if tmp_ref
end
- def fetch_mirror(remote, url)
- add_remote(remote, url)
- set_remote_as_mirror(remote)
- fetch_remote(remote, forced: true)
- remove_remote(remote)
+ 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(repository_storage_path, path_with_namespace, remote, forced: forced, no_tags: no_tags)
end
def fetch_ref(source_path, source_ref, target_ref)
@@ -1158,4 +1168,8 @@ class Repository
def repository_event(event, tags = {})
Gitlab::Metrics.add_event(event, { path: path_with_namespace }.merge(tags))
end
+
+ def repository_storage_path
+ @project.repository_storage_path
+ end
end