@ -17,6 +17,7 @@
* [tryserver ](#recipe_modules-tryserver )
**[Recipes](#Recipes)**
* [bot_update:examples/buildbucket ](#recipes-bot_update_examples_buildbucket )
* [bot_update:examples/full ](#recipes-bot_update_examples_full )
* [cipd:examples/full ](#recipes-cipd_examples_full )
* [cipd:examples/platform_suffix ](#recipes-cipd_examples_platform_suffix )
@ -36,24 +37,24 @@
### *recipe_modules* / [bot\_update ](/recipes/recipe_modules/bot_update )
[DEPS ](/recipes/recipe_modules/bot_update/__init__.py#1 ): [depot\_tools ](#recipe_modules-depot_tools ), [gclient ](#recipe_modules-gclient ), [gerrit ](#recipe_modules-gerrit ), [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime], [recipe\_engine/source\_manifest][recipe_engine/recipe_modules/source_manifest], [recipe\_engine/step][recipe_engine/recipe_modules/step]
[DEPS ](/recipes/recipe_modules/bot_update/__init__.py#1 ): [depot\_tools ](#recipe_modules-depot_tools ), [gclient ](#recipe_modules-gclient ), [gerrit ](#recipe_modules-gerrit ), [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/ context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime], [recipe\_engine/source\_manifest][recipe_engine/recipe_modules/source_manifest], [recipe\_engine/step][recipe_engine/recipe_modules/step]
Recipe module to ensure a checkout is consistent on a bot.
#### **class [BotUpdateApi ](/recipes/recipe_modules/bot_update/api.py#10 )([RecipeApi][recipe_engine/wkt/RecipeApi]):**
— **def [\_\_call\_\_ ](/recipes/recipe_modules/bot_update/api.py#3 1 )(self, name, cmd, \*\*kwargs):**
— **def [\_\_call\_\_ ](/recipes/recipe_modules/bot_update/api.py#3 7 )(self, name, cmd, \*\*kwargs):**
Wrapper for easy calling of bot_update.
— **def [apply\_gerrit\_ref ](/recipes/recipe_modules/bot_update/api.py# 46 )(self, root, gerrit_no_reset=False, gerrit_no_rebase_patch_ref=False, gerrit_repo=None, gerrit_ref=None, step_name='apply_gerrit', \*\*kwargs):**
— **def [apply\_gerrit\_ref ](/recipes/recipe_modules/bot_update/api.py# 52 )(self, root, gerrit_no_reset=False, gerrit_no_rebase_patch_ref=False, gerrit_repo=None, gerrit_ref=None, step_name='apply_gerrit', \*\*kwargs):**
— **def [deapply\_patch ](/recipes/recipe_modules/bot_update/api.py#4 08 )(self, bot_update_step):**
— **def [deapply\_patch ](/recipes/recipe_modules/bot_update/api.py#4 14 )(self, bot_update_step):**
Deapplies a patch, taking care of DEPS and solution revisions properly.
— **def [ensure\_checkout ](/recipes/recipe_modules/bot_update/api.py# 68 )(self, gclient_config=None, suffix=None, patch=True, update_presentation=True, patch_root=None, with_branch_heads=False, with_tags=False, refs=None, patch_oauth2=None, oauth2_json=None, use_site_config_creds=None, clobber=False, root_solution_revision=None, rietveld=None, issue=None, patchset=None, gerrit_no_reset=False, gerrit_no_rebase_patch_ref=False, disable_syntax_validation=False, manifest_name=None, \*\*kwargs):**
— **def [ensure\_checkout ](/recipes/recipe_modules/bot_update/api.py# 74 )(self, gclient_config=None, suffix=None, patch=True, update_presentation=True, patch_root=None, with_branch_heads=False, with_tags=False, refs=None, patch_oauth2=None, oauth2_json=None, use_site_config_creds=None, clobber=False, root_solution_revision=None, rietveld=None, issue=None, patchset=None, gerrit_no_reset=False, gerrit_no_rebase_patch_ref=False, disable_syntax_validation=False, manifest_name=None, \*\*kwargs):**
Args:
gclient_config: The gclient configuration to use when running bot_update.
@ -64,7 +65,7 @@ Args:
manifest_name: The name of the manifest to upload to LogDog. This must
be unique for the whole build.
— **def [get\_project\_revision\_properties ](/recipes/recipe_modules/bot_update/api.py#3 85 )(self, project_name, gclient_config=None):**
— **def [get\_project\_revision\_properties ](/recipes/recipe_modules/bot_update/api.py#3 91 )(self, project_name, gclient_config=None):**
Returns all property names used for storing the checked-out revision of
a given project.
@ -78,7 +79,9 @@ Args:
Returns (list of str): All properties that'll hold the checked-out revision
of the given project. An empty list if no such properties exist.
  ** @property **< br > — **def [last\_returned\_properties ](/recipes/recipe_modules/bot_update/api.py#40 )(self):**
— **def [initialize ](/recipes/recipe_modules/bot_update/api.py#31 )(self):**
  ** @property **< br > — **def [last\_returned\_properties ](/recipes/recipe_modules/bot_update/api.py#46 )(self):**
### *recipe_modules* / [cipd ](/recipes/recipe_modules/cipd )
[DEPS ](/recipes/recipe_modules/cipd/__init__.py#1 ): [infra\_paths ](#recipe_modules-infra_paths ), [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
@ -742,6 +745,11 @@ This means we started running actual tests (not prerequisite steps
like checkout or compile), and some of these tests have failed.
## Recipes
### *recipes* / [bot\_update:examples/buildbucket ](/recipes/recipe_modules/bot_update/examples/buildbucket.py )
[DEPS ](/recipes/recipe_modules/bot_update/examples/buildbucket.py#5 ): [bot\_update ](#recipe_modules-bot_update ), [gclient ](#recipe_modules-gclient ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket]
— **def [RunSteps ](/recipes/recipe_modules/bot_update/examples/buildbucket.py#11 )(api):**
### *recipes* / [bot\_update:examples/full ](/recipes/recipe_modules/bot_update/examples/full.py )
[DEPS ](/recipes/recipe_modules/bot_update/examples/full.py#5 ): [bot\_update ](#recipe_modules-bot_update ), [gclient ](#recipe_modules-gclient ), [gerrit ](#recipe_modules-gerrit ), [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime]
@ -820,16 +828,17 @@ Move things around in a loop!
— **def [RunSteps ](/recipes/recipe_modules/tryserver/examples/full.py#17 )(api):**
[recipe_engine/recipe_modules/context]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-context
[recipe_engine/recipe_modules/file]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-file
[recipe_engine/recipe_modules/json]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-json
[recipe_engine/recipe_modules/path]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-path
[recipe_engine/recipe_modules/platform]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-platform
[recipe_engine/recipe_modules/properties]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-properties
[recipe_engine/recipe_modules/python]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-python
[recipe_engine/recipe_modules/raw_io]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-raw_io
[recipe_engine/recipe_modules/runtime]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-runtime
[recipe_engine/recipe_modules/source_manifest]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-source_manifest
[recipe_engine/recipe_modules/step]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-step
[recipe_engine/recipe_modules/url]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/README.recipes.md#recipe_modules-url
[recipe_engine/wkt/RecipeApi]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/782ed0377a0a23f393a3a873194954825972b961/recipe_engine/recipe_api.py#1006
[recipe_engine/recipe_modules/buildbucket]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-buildbucket
[recipe_engine/recipe_modules/context]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-context
[recipe_engine/recipe_modules/file]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-file
[recipe_engine/recipe_modules/json]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-json
[recipe_engine/recipe_modules/path]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-path
[recipe_engine/recipe_modules/platform]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-platform
[recipe_engine/recipe_modules/properties]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-properties
[recipe_engine/recipe_modules/python]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-python
[recipe_engine/recipe_modules/raw_io]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-raw_io
[recipe_engine/recipe_modules/runtime]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-runtime
[recipe_engine/recipe_modules/source_manifest]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-source_manifest
[recipe_engine/recipe_modules/step]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-step
[recipe_engine/recipe_modules/url]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/README.recipes.md#recipe_modules-url
[recipe_engine/wkt/RecipeApi]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/57600791c9ce0381bffff5b8d5ffef235c661a09/recipe_engine/recipe_api.py#1006