@ -761,17 +761,29 @@ Return a presubmit step.
  ** @property **< br > — **def [presubmit\_support\_path ](/recipes/recipe_modules/presubmit/api.py#8 )(self):**
### *recipe_modules* / [tryserver ](/recipes/recipe_modules/tryserver )
[DEPS ](/recipes/recipe_modules/tryserver/__init__.py#5 ): [gerrit ](#recipe_modules-gerrit ), [git ](#recipe_modules-git ), [git\_cl ](#recipe_modules-git_cl ), [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/step][recipe_engine/recipe_modules/step]
[DEPS ](/recipes/recipe_modules/tryserver/__init__.py#5 ): [gerrit ](#recipe_modules-gerrit ), [git ](#recipe_modules-git ), [git\_cl ](#recipe_modules-git_cl ), [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/step][recipe_engine/recipe_modules/step]
#### **class [TryserverApi ](/recipes/recipe_modules/tryserver/api.py#1 2 )([RecipeApi][recipe_engine/wkt/RecipeApi]):**
#### **class [TryserverApi ](/recipes/recipe_modules/tryserver/api.py#1 1 )([RecipeApi][recipe_engine/wkt/RecipeApi]):**
— **def [add\_failure\_reason ](/recipes/recipe_modules/tryserver/api.py#1 08 )(self, reason):**
— **def [add\_failure\_reason ](/recipes/recipe_modules/tryserver/api.py#1 37 )(self, reason):**
Records a more detailed reason why build is failing.
The reason can be any JSON-serializable object.
— **def [get\_files\_affected\_by\_patch ](/recipes/recipe_modules/tryserver/api.py#38 )(self, patch_root, \*\*kwargs):**
  ** @property **< br > — **def [gerrit\_change ](/recipes/recipe_modules/tryserver/api.py#30 )(self):**
Returns current gerrit change, if there is exactly one.
Returns a self.m.buildbucket.common_pb2.GerritChange or None.
  ** @property **< br > — **def [gerrit\_change\_repo\_url ](/recipes/recipe_modules/tryserver/api.py#38 )(self):**
Returns canonical URL of the gitiles repo of the current Gerrit CL.
Populated iff gerrit_change is populated.
— **def [get\_files\_affected\_by\_patch ](/recipes/recipe_modules/tryserver/api.py#67 )(self, patch_root, \*\*kwargs):**
Returns list of paths to files affected by the patch.
@ -781,34 +793,36 @@ Argument:
Returned paths will be relative to to patch_root.
— **def [get\_footer ](/recipes/recipe_modules/tryserver/api.py#1 6 2)(self, tag, patch_text=None):**
— **def [get\_footer ](/recipes/recipe_modules/tryserver/api.py#1 9 2)(self, tag, patch_text=None):**
Gets a specific tag from a CL description
— **def [get\_footers ](/recipes/recipe_modules/tryserver/api.py#1 44 )(self, patch_text=None):**
— **def [get\_footers ](/recipes/recipe_modules/tryserver/api.py#1 73 )(self, patch_text=None):**
Retrieves footers from the patch description.
footers are machine readable tags embedded in commit messages. See
git-footers documentation for more information.
  ** @property **< br > — **def [is\_gerrit\_issue ](/recipes/recipe_modules/tryserver/api.py#22 )(self):**
— **def [initialize ](/recipes/recipe_modules/tryserver/api.py#19 )(self):**
  ** @property **< br > — **def [is\_gerrit\_issue ](/recipes/recipe_modules/tryserver/api.py#51 )(self):**
Returns true iff the properties exist to match a Gerrit issue.
  ** @property **< br > — **def [is\_patch\_in\_git ](/recipes/recipe_modules/tryserver/api.py# 32 )(self):**
  ** @property **< br > — **def [is\_patch\_in\_git ](/recipes/recipe_modules/tryserver/api.py# 61 )(self):**
  ** @property **< br > — **def [is\_tryserver ](/recipes/recipe_modules/tryserver/api.py# 17 )(self):**
  ** @property **< br > — **def [is\_tryserver ](/recipes/recipe_modules/tryserver/api.py# 46 )(self):**
Returns true iff we have a change to check out.
— **def [normalize\_footer\_name ](/recipes/recipe_modules/tryserver/api.py#1 6 6)(self, footer):**
— **def [normalize\_footer\_name ](/recipes/recipe_modules/tryserver/api.py#1 9 6)(self, footer):**
— **def [set\_compile\_failure\_tryjob\_result ](/recipes/recipe_modules/tryserver/api.py# 87 )(self):**
— **def [set\_compile\_failure\_tryjob\_result ](/recipes/recipe_modules/tryserver/api.py# 116 )(self):**
Mark the tryjob result as a compile failure.
  ** @contextlib .contextmanager**< br > — **def [set\_failure\_hash ](/recipes/recipe_modules/tryserver/api.py#1 17 )(self):**
  ** @contextlib .contextmanager**< br > — **def [set\_failure\_hash ](/recipes/recipe_modules/tryserver/api.py#1 46 )(self):**
Context manager that sets a failure_hash build property on StepFailure.
@ -817,7 +831,7 @@ for the same reason. For example, if a patch is bad (breaks something),
we'd expect it to always break in the same way. Different failures
for the same patch are usually a sign of flakiness.
— **def [set\_invalid\_test\_results\_tryjob\_result ](/recipes/recipe_modules/tryserver/api.py# 99 )(self):**
— **def [set\_invalid\_test\_results\_tryjob\_result ](/recipes/recipe_modules/tryserver/api.py# 128 )(self):**
Mark the tryjob result as having invalid test results.
@ -825,18 +839,18 @@ This means we run some tests, but the results were not valid
(e.g. no list of specific test cases that failed, or too many
tests failing, etc).
— **def [set\_patch\_failure\_tryjob\_result ](/recipes/recipe_modules/tryserver/api.py# 83 )(self):**
— **def [set\_patch\_failure\_tryjob\_result ](/recipes/recipe_modules/tryserver/api.py# 112 )(self):**
Mark the tryjob result as failure to apply the patch.
— **def [set\_subproject\_tag ](/recipes/recipe_modules/tryserver/api.py# 65 )(self, subproject_tag):**
— **def [set\_subproject\_tag ](/recipes/recipe_modules/tryserver/api.py# 94 )(self, subproject_tag):**
Adds a subproject tag to the build.
This can be used to distinguish between builds that execute different steps
depending on what was patched, e.g. blink vs. pure chromium patches.
— **def [set\_test\_failure\_tryjob\_result ](/recipes/recipe_modules/tryserver/api.py# 9 1)(self):**
— **def [set\_test\_failure\_tryjob\_result ](/recipes/recipe_modules/tryserver/api.py# 120 )(self):**
Mark the tryjob result as a test failure.
@ -959,9 +973,9 @@ Move things around in a loop!
— **def [RunSteps ](/recipes/recipe_modules/presubmit/examples/full.py#10 )(api):**
### *recipes* / [tryserver:examples/full ](/recipes/recipe_modules/tryserver/examples/full.py )
[DEPS ](/recipes/recipe_modules/tryserver/examples/full.py#5 ): [tryserver ](#recipe_modules-tryserver ), [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]
[DEPS ](/recipes/recipe_modules/tryserver/examples/full.py#5 ): [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [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]
— **def [RunSteps ](/recipes/recipe_modules/tryserver/examples/full.py#1 7 )(api):**
— **def [RunSteps ](/recipes/recipe_modules/tryserver/examples/full.py#1 8 )(api):**
### *recipes* / [windows\_sdk:examples/full ](/recipes/recipe_modules/windows_sdk/examples/full.py )
[DEPS ](/recipes/recipe_modules/windows_sdk/examples/full.py#5 ): [windows\_sdk ](#recipe_modules-windows_sdk ), [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step]