Rewrite the RB Gateway support to leverage the new client support.
Review Request #10629 — Created July 16, 2019 and submitted
Review Board 4.0 has a better architecture for writing hosting service
client implementations, which takes care of a lot of cross-Python
compatibility issues, simplifies code, and reduces the need for certain
hacks and workarounds and specialized HTTP access wrappers we had
This change rewrites RB Gateway to leverage the new client support. The
ReviewBoardGatewayClientclass is responsible now for all API
communication, handling errors and headers in consistent ways. The
ReviewBoardGatewayhosting service class simply calls into it and
converts payload results into Review Board objects.
This will improve maintenance as we go forward, and also takes care of
some differences in behavior between Python 3.x releases that we were
Unit tests pass.
Manually tested authenticating, linking a repository, browsing commits,
posting for review, and viewing diffs. Aside from some bugs within
RB Gateway itself, this all works.