in services/ui_backend_service/plugins/plugin.py [0:0]
def init(self):
"""
Init plugin by loading manifest.json and listing available files from filesystem.
In case of Git repository, clone, fetch changes and checkout to target ref.
"""
local_repository = pygit2.discover_repository(self.basepath)
if local_repository:
self._repo = pygit2.Repository(local_repository)
self.checkout(self.repository)
elif self.repository:
self._repo = pygit2.clone_repository(
self.repository, self.basepath, bare=False, callbacks=self.callbacks)
self.checkout()
else:
# Target directory is not a Git repository, no need to checkout
pass
self.files = self._list_files()
if not self.files:
raise PluginException("Error loading plugin files", "plugin-error-files")
self.config = self._load_config()
if not self.config:
raise PluginException("Error loading plugin config", "plugin-error-config")
return self