Support manual run and retry for tools attached to status updates

Review Request #10311 — Created Nov. 7, 2018 and discarded — Latest diff uploaded

Information

Review Board
release-4.0.x

Reviewers

Allows Status Updates to have tools that are manually run, and allows
Status Updates with a error/timeout state to be rerun.

Adds a new StatusUpdate state NEEDS_RUN which represents the ability
to be run manually on user interaction in a review request, and is
considered a pending StatusUpdate for the purposes of collapsing /
summaries.

Adds a new option to the PUT API for Status Updates that supports
running a tool attached to a Status Update. This runs a new signal:
status_update_run_tool, which extensions can hook into to run some
sort of tool when the user manually hits the run/retry button in the
review request.

Adds a new button to the front-end to PUT to the new StatusUpdate API,
which checks for updates on newly run tools.

Adds a new field to the StatusUpdatesEntry model containing the review
request ID to be passed to a the event handler of these new buttons.

Tests have been added for all added functionality in front-end and
back-end.

All tests pass, and manual testing with reviewbot tools has been done
and works with the new manual run feature, as well as retrying features.

reviewboard/reviews/detail.py
reviewboard/reviews/signals.py
reviewboard/reviews/models/status_update.py
reviewboard/reviews/tests/test_entries.py
reviewboard/static/rb/css/pages/reviews.less
reviewboard/static/rb/js/reviewRequestPage/models/statusUpdatesEntryModel.es6.js
reviewboard/static/rb/js/reviewRequestPage/models/tests/statusUpdatesEntryModelTests.es6.js
reviewboard/static/rb/js/reviewRequestPage/views/baseStatusUpdatesEntryView.es6.js
reviewboard/static/rb/js/reviewRequestPage/views/tests/baseStatusUpdatesEntryViewTests.es6.js
reviewboard/templates/reviews/status_update_summary.html
reviewboard/webapi/resources/status_update.py
reviewboard/webapi/tests/test_status_update.py
Loading...