@classmethod
def find_project_root_directory(cls, current_directory: Optional[Path]) -> Optional[Path]:
    "\n        Given a directory (with ``None`` implying the current directory) assumed to be at or under this project's root,\n        find the project root directory.\n        This implementation attempts to find a directory having both a ``.git/`` child directory and a ``.env`` file.\n        Parameters\n        ----------\n        current_directory\n        Returns\n        -------\n        Optional[Path]\n            The project root directory, or ``None`` if it fails to find it.\n        "
    if (not current_directory):
        current_directory = TestGetGithub._current_dir
    abs_root = Path(current_directory.absolute().root)
    while (current_directory.absolute() != abs_root):
        if (not current_directory.is_dir()):
            current_directory = current_directory.parent
            continue
        git_sub_dir = current_directory.joinpath('.git')
        child_env_file = current_directory.joinpath('config.yaml')
        if (git_sub_dir.exists() and git_sub_dir.is_dir() and child_env_file.exists() and child_env_file.is_file()):
            return current_directory
        current_directory = current_directory.parent
    return None
Given a directory (with ``None`` implying the current directory) assumed to be at or under this project's root,
find the project root directory.
This implementation attempts to find a directory having both a ``.git/`` child directory and a ``.env`` file.
Parameters
----------
current_directory
Returns
-------
Optional[Path]
    The project root directory, or ``None`` if it fails to find it.
@classmethod
def find_project_root_directory(cls, current_directory: Optional[Path]) -> Optional[Path]:
    "\n        Given a directory (with ``None`` implying the current directory) assumed to be at or under this project's root,\n        find the project root directory.\n        This implementation attempts to find a directory having both a ``.git/`` child directory and a ``.env`` file.\n        Parameters\n        ----------\n        current_directory\n        Returns\n        -------\n        Optional[Path]\n            The project root directory, or ``None`` if it fails to find it.\n        "
    if (not current_directory):
        current_directory = TestGetGithub._current_dir
    abs_root = Path(current_directory.absolute().root)
    while (current_directory.absolute() != abs_root):
        if (not current_directory.is_dir()):
            current_directory = current_directory.parent
            continue
        git_sub_dir = current_directory.joinpath('.git')
        child_env_file = current_directory.joinpath('config.yaml')
        if (git_sub_dir.exists() and git_sub_dir.is_dir() and child_env_file.exists() and child_env_file.is_file()):
            return current_directory
        current_directory = current_directory.parent
    return None