Fix `rbt api-get` with repo-based server detection.

Review Request #13101 — Created June 6, 2023 and submitted — Latest diff uploaded

Information

RBTools
release-4.x

Reviewers

A user reported that the api-get command was failing with an error
attempting to run without explicitly listing the server name in the
command-line arguments or .reviewboardrc. In this case, they were
using the reviewboard.url perforce counter to define the server name
for their repository.

When there's no explicit server name configured, we will initialize the
repository client(s) in order to use them to detect the server name.
Unfortunately, the api-get command didn't include the repository
command-line arguments (because why would it), and the code path that
does this was assuming that it existed.

This change fixes it so we only conditionally look for the value of the
--repository-type argument inside the argparse results. If not found,
we'll then proceed through our normal repository detection code.

Set up a perforce server that defined the reviewboard.url counter, and
then ran rbt api-get users from within a perforce client. Saw that it
correctly determined my Review Board host to use, rather than crashing
with an AttributeError.

Commits

Files