def walk_through_owlbot_dirs()

in owlbot.py [0:0]


def walk_through_owlbot_dirs(dir: Path, search_for_changed_files: bool) -> list[str]:
    """
    Walks through all sample directories
    Returns:
    A list of directories
    """
    owlbot_dirs: list[str] = []
    packages_to_exclude = _EXCLUDED_DIRS
    if search_for_changed_files:
        try:
            # Need to run this step first in the post processor since we only clone
            # the branch the PR is on in the Docker container
            output = subprocess.run(
                ["git", "fetch", "origin", "main:main", "--deepen=200"], check=False
            )
            output.check_returncode()
        except subprocess.CalledProcessError as error:
            if error.returncode == 128:
                logger.info(f"Error: ${error.output}; skipping fetching main")
            else:
                raise error
    for path_object in dir.glob("**/requirements.txt"):
        object_dir = str(Path(path_object).parents[0])
        if (
            path_object.is_file()
            and object_dir != str(dir)
            and not re.search(
                "(?:% s)" % "|".join(packages_to_exclude), str(Path(path_object))
            )
        ):
            if search_for_changed_files:
                if (
                    subprocess.run(
                        ["git", "diff", "--quiet", "main...", object_dir], check=False
                    ).returncode
                    == 1
                ):
                    owlbot_dirs.append(object_dir)
            else:
                owlbot_dirs.append(object_dir)
    for path_object in dir.glob("owl-bot-staging/*"):
        owlbot_dirs.append(
            f"{Path(path_object).parents[1]}/packages/{Path(path_object).name}"
        )
    return owlbot_dirs