from fastapi import Request
from pygitweb.api.project import Project

class Action(object):
    """
    Action: A per-project action provided by a plugin.
    """
    def action_name(self) -> str:
        return "base-action"
    
    def action(self, project: Project, user: request: Request = None) -> None:
        raise NotImplementedError(f"Action {self.action_name()} is not implemented")