Add manual run and retry for Review Bot tools.

Review Request #11130 — Created Aug. 10, 2020 and submitted — Latest diff uploaded




This change adds the ability for Review Bot to run tools manually. This
is used in two ways:

  • Tool configurations can now be set to only be run manually. In this
    case, the tool will create a status update in the NOT_YET_RUN state.
  • All tool configurations will mark the status update as retryable,
    which will allow the trigger of a retry in the case of error or
    timeout states.

Based on work by Alex Klemenchuk at /r/10316

  • Created a configuration set to only run manually. Verified that the
    initial status update was correctly created in the NOT_YET_RUN state,
    and that clicking the "Run" button triggered a tool run and subsequent
  • Triggered the run of a tool not normally set to run manually but
    without running the worker process (resulting in a timeout). Saw that
    the "Retry" button was shown and that clicking it re-ran the tool.
  • Tested that the correct diffset was chosen when running and retrying