code: def commit_staging_branch(
      config: Config, system: System
  ) -> ActionReturn:
      for path in config.modified:
          try:
              system.run(f"git ls-files --error-unmatch {path}")
          except RuntimeError:
              return FAILED(
                  f"File {path!r} marked modified does not exist in the repo"
              )
          try:
              system.run(f"git add {path}")
          except RuntimeError as e:
              return FAILED(
                  f"Could not git add {path!r}", details=e.args
              )
      for path in config.new:
          try:
              system.run(f"git ls-files --error-unmatch -o {path}")
          except RuntimeError:
              return FAILED(
                  f"File {path!r} marked new is not untracked in the repo"
              )
          try:
              system.run(f"git add {path}")
          except RuntimeError as e:
              return FAILED(
                  f"Could not git add {path!r}", details=e.args
              )
      try:
          system.run(
              f"git commit -m'Deployment updates for release {config.version}'"
          )
      except RuntimeError as e:
          return FAILED(
              "Could not git commit deployment updates", details=e.args
          )
      return PASSED(
          f"Committed deployment updates for release {config.version!r}"
      )
  
file_path: bokeh/release/git.py
imports: from __future__ import annotations
  from .action import FAILED, PASSED, ActionReturn
  from .config import Config
  from .system import System
label_desc: Use image node_id 4 for calling a global function with example usage: commit_staging_branch(config, system) and returns: PASSED, FAILED, FAILED, FAILED, FAILED, FAILED