diff options
author | Tiago Botelho <tiagonbotelho@hotmail.com> | 2018-05-03 13:55:14 +0100 |
---|---|---|
committer | Tiago Botelho <tiagonbotelho@hotmail.com> | 2018-05-04 16:57:31 +0200 |
commit | 711d3d7bad81cd41cda52d76a181b1fadbf15118 (patch) | |
tree | 3b91dccfaf0dff70d2eba44f15f810105175ebb5 /app/models/repository.rb | |
parent | bbc7c79e4c6da71f73bf6763296c80425ca2515e (diff) | |
download | gitlab-ce-42099-port-push-mirroring-to-ce-ce-port.tar.gz |
Backports every CE related change from ee-5484 to CE42099-port-push-mirroring-to-ce-ce-port
Diffstat (limited to 'app/models/repository.rb')
-rw-r--r-- | app/models/repository.rb | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb index 6831305fb93..b75c4aca982 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -854,13 +854,27 @@ class Repository add_remote(remote_name, url, mirror_refmap: refmap) fetch_remote(remote_name, forced: forced, prune: prune) ensure - remove_remote(remote_name) if tmp_remote_name + async_remove_remote(remote_name) if tmp_remote_name end def fetch_remote(remote, forced: false, ssh_auth: nil, no_tags: false, prune: true) gitlab_shell.fetch_remote(raw_repository, remote, ssh_auth: ssh_auth, forced: forced, no_tags: no_tags, prune: prune) end + def async_remove_remote(remote_name) + return unless remote_name + + job_id = RepositoryRemoveRemoteWorker.perform_async(project.id, remote_name) + + if job_id + Rails.logger.info("Remove remote job scheduled for #{project.id} with remote name: #{remote_name} job ID #{job_id}.") + else + Rails.logger.info("Remove remote job failed to create for #{project.id} with remote name #{remote_name}.") + end + + job_id + end + def fetch_source_branch!(source_repository, source_branch, local_ref) raw_repository.fetch_source_branch!(source_repository.raw_repository, source_branch, local_ref) end |