@ -761,17 +761,29 @@ Return a presubmit step.
  ** @property **< br > — **def [presubmit\_support\_path ](/recipes/recipe_modules/presubmit/api.py#8 )(self):**
  ** @property **< br > — **def [presubmit\_support\_path ](/recipes/recipe_modules/presubmit/api.py#8 )(self):**
### *recipe_modules* / [tryserver ](/recipes/recipe_modules/tryserver )
### *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.
Records a more detailed reason why build is failing.
The reason can be any JSON-serializable object.
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.
Returns list of paths to files affected by the patch.
@ -781,34 +793,36 @@ Argument:
Returned paths will be relative to to patch_root.
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
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.
Retrieves footers from the patch description.
footers are machine readable tags embedded in commit messages. See
footers are machine readable tags embedded in commit messages. See
git-footers documentation for more information.
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.
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.
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.
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.
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
we'd expect it to always break in the same way. Different failures
for the same patch are usually a sign of flakiness.
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.
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
(e.g. no list of specific test cases that failed, or too many
tests failing, etc).
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.
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.
Adds a subproject tag to the build.
This can be used to distinguish between builds that execute different steps
This can be used to distinguish between builds that execute different steps
depending on what was patched, e.g. blink vs. pure chromium patches.
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.
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):**
— **def [RunSteps ](/recipes/recipe_modules/presubmit/examples/full.py#10 )(api):**
### *recipes* / [tryserver:examples/full ](/recipes/recipe_modules/tryserver/examples/full.py )
### *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 )
### *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]
[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]