Add JSON output to rbt review.

Review Request #12673 — Created Oct. 11, 2022 and submitted — Latest diff uploaded




This adds JSON output to the rbt review command. The output contains
information relevant to the review, such as:
- The review ID.
- The review API URL.
- The review URL.
- The review status which can be draft, published, or discarded.
- The review request ID.
- The review request URL.

When a comment subcommand is used, the following comment details are also
included in the output:
- The comment type which can be diff_comment, file_attachment_comment,
or general_comment.
- The comment ID.
- The comment API URL.

During testing, a regression in Review Board 5.0's API was discovered
which broke the reviews URI template on the Root List Resource. This breaks
the command in cases where a new review draft needs to be created. While the
API regression is being tracked and dealt with separately, this change allows
the command to work normally by accessing the reviews through the review
request resource instead of the root since we're fetching the review request
resource anyways in order to include its URL in the output.

An upcoming change will add unit tests for the rbt review command.

This also fixes a bug in the add diff comment subcommand where we add
the comment to the wrong file. The comment would always be added to the
last file in the diffset.

  • Manually tested the command and all of its subcommands.
  • Tested on RB5, RB6 and RB7.
  • Tested the case where a new review draft is created, and where one
    already exists.