def _parse_github_path(path: str) -> Tuple[(str, str, str)]:
    'Parse the absolute github path.\n\n  Args:\n    path: The full github path.\n\n  Returns:\n    repo: The repository identifiant.\n    branch: Repository branch.\n    subpath: The inner path.\n\n  Raises:\n    ValueError: If the path is invalid\n  '
    err_msg = f'Invalid github path: {path}. Expected format: `github://<owner>/<name>/tree/<branch>[/<path>]`.'
    if (not path.startswith(_URI_PREFIX)):
        raise ValueError(err_msg)
    if path.endswith('/'):
        raise ValueError((err_msg + ' Trailing `/` not supported.'))
    parts = path[len(_URI_PREFIX):].split('/')
    if (len(parts) < 4):
        raise ValueError(err_msg)
    (owner, repo, tree, branch, *subpath) = parts
    if (tree != 'tree'):
        raise ValueError((err_msg + ". `/blob/` isn't accepted. Only `/tree/`."))
    return (f'{owner}/{repo}', branch, '/'.join(subpath))
Parse the absolute github path.

Args:
  path: The full github path.

Returns:
  repo: The repository identifiant.
  branch: Repository branch.
  subpath: The inner path.

Raises:
  ValueError: If the path is invalid
def _parse_github_path(path: str) -> Tuple[(str, str, str)]:
    'Parse the absolute github path.\n\n  Args:\n    path: The full github path.\n\n  Returns:\n    repo: The repository identifiant.\n    branch: Repository branch.\n    subpath: The inner path.\n\n  Raises:\n    ValueError: If the path is invalid\n  '
    err_msg = f'Invalid github path: {path}. Expected format: `github://<owner>/<name>/tree/<branch>[/<path>]`.'
    if (not path.startswith(_URI_PREFIX)):
        raise ValueError(err_msg)
    if path.endswith('/'):
        raise ValueError((err_msg + ' Trailing `/` not supported.'))
    parts = path[len(_URI_PREFIX):].split('/')
    if (len(parts) < 4):
        raise ValueError(err_msg)
    (owner, repo, tree, branch, *subpath) = parts
    if (tree != 'tree'):
        raise ValueError((err_msg + ". `/blob/` isn't accepted. Only `/tree/`."))
    return (f'{owner}/{repo}', branch, '/'.join(subpath))