code: def git_pull_recursive(dir):
      for subdir, _, _ in os.walk(dir):
          if os.path.exists(os.path.join(subdir, ".git")):
              try:
                  output = subprocess.check_output(
                      [git, "-C", subdir, "pull", "--autostash"]
                  )
                  print(
                      f"Pulled changes for repository in '{subdir}':\n{output.decode('utf-8').strip()}\n"
                  )
              except subprocess.CalledProcessError as e:
                  print(
                      f"Couldn't perform 'git pull' on repository in '{subdir}':\n{e.output.decode('utf-8').strip()}\n"
                  )
  
imports: import logging
  import re
  import subprocess
  import os
  import shutil
  import sys
  import importlib.util
  import importlib.metadata
  import platform
  import json
  from functools import lru_cache
  from modules import cmd_args, errors
  from modules.paths_internal import script_path, extensions_dir
  from modules.timer import startup_timer
  from modules import logging_config
label_desc: Use image node_id 12 for calling a global function with example usage: git_pull_recursive(dir) without return types