[
  {
    "cmd": [
      "python3",
      "-u",
      "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
      "--path",
      "[START_DIR]/src",
      "--url",
      "https://chromium.googlesource.com/chromium/src.git"
    ],
    "name": "git setup"
  },
  {
    "cmd": [
      "git",
      "fetch",
      "origin",
      "main",
      "--recurse-submodules",
      "--progress"
    ],
    "cwd": "[START_DIR]/src",
    "env": {
      "PATH": "RECIPE_REPO[depot_tools]:<PATH>"
    },
    "infra_step": true,
    "name": "git fetch"
  },
  {
    "cmd": [
      "git",
      "checkout",
      "-f",
      "FETCH_HEAD"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "git checkout"
  },
  {
    "cmd": [
      "git",
      "rev-parse",
      "HEAD"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "read revision",
    "~followup_annotations": [
      "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
    ]
  },
  {
    "cmd": [
      "git",
      "clean",
      "-f",
      "-d",
      "-x"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "git clean"
  },
  {
    "cmd": [
      "git",
      "submodule",
      "sync"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "submodule sync"
  },
  {
    "cmd": [
      "git",
      "submodule",
      "update",
      "--init",
      "--recursive"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "submodule update"
  },
  {
    "cmd": [
      "git",
      "-c",
      "foo=bar",
      "count-objects",
      "-v"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "count-objects"
  },
  {
    "cmd": [
      "git",
      "config",
      "--get",
      "remote.origin.url"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "git config remote.origin.url",
    "~followup_annotations": [
      "@@@STEP_TEXT@foo@@@"
    ]
  },
  {
    "cmd": [
      "git",
      "show",
      "HEAD",
      "--format=%at",
      "-s"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "git show"
  },
  {
    "cmd": [
      "git",
      "fetch",
      "origin",
      "--tags"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "git fetch tags"
  },
  {
    "cmd": [
      "git",
      "status"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "git status"
  },
  {
    "cmd": [
      "git",
      "status"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "git status can_fail_build"
  },
  {
    "cmd": [
      "git",
      "status"
    ],
    "cwd": "[START_DIR]/src",
    "infra_step": true,
    "name": "git status cannot_fail_build"
  },
  {
    "cmd": [
      "git",
      "new-branch",
      "refactor"
    ],
    "cwd": "[START_DIR]/src",
    "env": {
      "PATH": "RECIPE_REPO[depot_tools]:<PATH>"
    },
    "infra_step": true,
    "name": "git new-branch refactor"
  },
  {
    "cmd": [],
    "name": "RECIPE CRASH (Uncaught exception)",
    "~followup_annotations": [
      "@@@STEP_EXCEPTION@@@",
      "The recipe has crashed at point 'Uncaught exception'!",
      "",
      "Traceback (most recent call last):",
      "  File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps",
      "    raw_result = recipe_obj.run_steps(api, engine)",
      "                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
      "  File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps",
      "    recipe_result = invoke_with_properties(",
      "                    ^^^^^^^^^^^^^^^^^^^^^^^",
      "  File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties",
      "    return _invoke_with_properties(callable_obj, all_props, environ, prop_defs,",
      "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
      "  File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties",
      "    return callable_obj(*props, **additional_args)",
      "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
      "  File \"RECIPE_REPO[depot_tools]/recipes/recipe_modules/git/examples/full.py\", line 82, in RunSteps",
      "    api.git.new_branch('failed_new_branch', upstream='will_fail', upstream_current=True) #pylint: disable = line-too-long",
      "    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
      "  File \"RECIPE_REPO[depot_tools]/recipes/recipe_modules/git/api.py\", line 425, in new_branch",
      "    raise ValueError('Can not define both upstream and upstream_current')",
      "ValueError: Can not define both upstream and upstream_current"
    ]
  },
  {
    "failure": {
      "humanReason": "Uncaught Exception: ValueError('Can not define both upstream and upstream_current')"
    },
    "name": "$result"
  }
]