code: def deploy(
      branch: Ann[
          str,
          Opt(
              "--branch",
              "-b",
              help="Fully-qualified branch, e.g., hail-is/hail:feature",
          ),
      ],
      steps: Ann[
          List[str],
          Opt(
              "--steps",
              "-s",
              help="Comma-separated list of steps to run.",
          ),
      ],
      excluded_steps: Ann[
          Optional[List[str]],
          Opt(
              "--excluded_steps",
              "-e",
              help="Comma-separated list of steps to forcibly exclude. Use with caution!",
          ),
      ] = None,
      extra_config: Ann[
          Optional[List[str]],
          Opt(
              "--extra-config",
              "-c",
              help="Comma-separated list of key=value pairs to add as extra config parameters.",
          ),
      ] = None,
      open: Ann[
          bool,
          Opt(
              "--open",
              "-o",
              help="Open the deploy batch page in a web browser.",
          ),
      ] = False,
  ):
      """Deploy a branch."""
      asyncio.run(
          _deploy(
              branch,
              steps,
              excluded_steps or [],
              extra_config or [],
              open,
          )
      )
  
imports: import asyncio
  import typer
  import webbrowser
  from typing import List, Optional, Annotated
  from typer import Option
  from .None import config
label_desc: Use image node_id 1 for calling a global function with example usage: deploy(branch, steps, excluded_steps, extra_config, open) without return types