module Acceleratorable extend ActiveSupport::Concern def enable_accelerator?(clone_addr) is_foreign_url?(clone_addr) && config_accelerator? end def accelerator_url(repo_name) [accelerator_domain, accelerator_username, "#{repo_name}.git"].join('/') end def github_domain 'github.com' end def gitlab_domain 'gitlab.com' end def accelerator_domain GiteaService.gitea_config[:accelerator]["domain"] end def accelerator_username GiteaService.gitea_config[:accelerator]["access_key_id"] end def config_accelerator? GiteaService.gitea_config[:accelerator].present? end def is_foreign_url?(clone_addr) clone_addr.include?(github_domain) || clone_addr.include?(gitlab_domain) end end