def get_external_checks_dir(args): external_checks_dir = args.external_checks_dir if args.external_checks_git: git_getter = GitGetter(args.external_checks_git[0]) external_checks_dir = [git_getter.get()] atexit.register(shutil.rmtree,str(Path(external_checks_dir[0]).parent)) return external_checks_dir
def test_parse_source(self): url = "https://my-git.com/repository-name/" getter = GitGetter(url) git_url, subdir = getter._source_subdir() self.assertEqual("https://my-git.com/repository-name/", git_url, "Parsed source url should contain hostname and path") self.assertEqual("", subdir, "Parsed source subdirectory should be empty")
def get_external_checks_dir(config: Any) -> Any: external_checks_dir = config.external_checks_dir if config.external_checks_git: git_getter = GitGetter(config.external_checks_git[0]) external_checks_dir = [git_getter.get()] atexit.register(shutil.rmtree, str(Path(external_checks_dir[0]).parent)) return external_checks_dir
def test_parse_source_with_query_without_scheme(self): url = "my-git.com/repository-name?key=value" getter = GitGetter(url) git_url, subdir = getter._source_subdir() self.assertEqual( "my-git.com/repository-name?key=value", git_url, "Parsed source url should contain hostname, path and query") self.assertEqual("", subdir, "Parsed source subdirectory should be empty")
def test_parse_source_and_subdirectory_without_scheme(self): url = "my-git.com/repository-name//sub/path" getter = GitGetter(url) git_url, subdir = getter._source_subdir() self.assertEqual("my-git.com/repository-name", git_url, "Parsed source url should contain hostname ane path") self.assertEqual( "/sub/path", subdir, "Parsed source subdirectory should contain absolute (sub)path")
def test_parse_source_and_subdirectory(self): url = "https://my-git.com/repository-name.git//sub/path" getter = GitGetter(url) git_url, subdir = getter._source_subdir() self.assertEqual("https://my-git.com/repository-name.git", git_url, "Parsed source url should contain hostname and path") self.assertEqual( "/sub/path", subdir, "Parsed source subdirectory should contain absolute (sub)path")
def test_parse_source_and_subdirectory_with_query(self): url = "https://my-git.com/repository-name//sub/path?key=value" getter = GitGetter(url) git_url, subdir = getter._source_subdir() self.assertEqual( "https://my-git.com/repository-name?key=value", git_url, "Parsed source url should contain hostname, path and query") self.assertEqual( "/sub/path", subdir, "Parsed source subdirectory should contain absolute (sub)path")
def _load_module(self) -> ModuleContent: try: module_source = self.module_source.lstrip('git::') if module_source.startswith('ssh:'): return ModuleContent(dir=None) git_getter = GitGetter(module_source, create_clone_and_result_dirs=False) git_getter.temp_dir = self.dest_dir git_getter.do_get() return_dir = self.dest_dir if self.inner_module: return_dir = os.path.join(self.dest_dir, self.inner_module) return ModuleContent(dir=return_dir) except Exception as e: self.logger.error(f'failed to get {self.module_source} because of {e}') return ModuleContent(dir=None)
def _load_module(self) -> ModuleContent: try: self._process_generic_git_repo() module_source = self.module_source.replace("git::", "") git_getter = GitGetter(module_source, create_clone_and_result_dirs=False) git_getter.temp_dir = self.dest_dir git_getter.do_get() return_dir = self.dest_dir if self.inner_module: return_dir = os.path.join(self.dest_dir, self.inner_module) return ModuleContent(dir=return_dir) except Exception as e: self.logger.error( f"failed to get {self.module_source} because of {e}") return ModuleContent(dir=None, failed_url=self.module_source)