def on_after_load_track()

in elastic/endpoint/track_processors/assets_loader.py [0:0]


    def on_after_load_track(self, track):
        try:
            from elastic.package import assets  # noqa: F401
        except ModuleNotFoundError:
            logger.warning("Cannot import module [elastic.package.assets], assets are not loaded")
            return

        asset_groups = track.selected_challenge_or_default.parameters.get("assets", [])

        for assets_group in asset_groups:
            repository = assets_group.get("repository", "https://github.com/elastic/package-assets")
            packages = assets_group.get("packages", [])

            repo_parts = urlparse(repository)
            if repo_parts.scheme.startswith("http") and repo_parts.netloc == "github.com":
                assets_root = os.path.join(track.root, "assets", repo_parts.path[1:])
                download_from_github(track, packages, repo_parts.path[1:], assets_root)
            elif repo_parts.scheme == "file":
                if repo_parts.netloc == ".":
                    assets_root = os.path.join(track.root, "." + repo_parts.path)
                else:
                    assets_root = repo_parts.path
                load_from_path(track, packages, assets_root)
            else:
                raise ValueError(f"Unsupported repository: {repository}")

            assets_group["path"] = os.path.abspath(assets_root)
            logger.info(f"Assets group path is [{assets_group['path']}]")