Pass the RBTools configuration to the HTTP/API layer.

Review Request #14221 — Created Nov. 2, 2024 and submitted — Latest diff uploaded

Information

RBTools
release-5.x

Reviewers

We currently pass a lot of options all the way from RBClient to the
transport to ReviewBoardServer, and this list has continued to grow
over time. We will soon be needing another option, and instead of
continuing to add dedicated options, we're now passing the loaded
configuration instead.

RBToolsConfig was added in RBTools 5, and consolidates all of our
loaded options. This is easier to populate/load and pass around.
RBClient, SyncTransport, and ReviewBoardServer now all take this
as arguments.

If this is not provided, ReviewBoardServer will load a configuration.
This avoids breaking API compatibility with any custom scripts or hooks.
The loaded configuration will always be explicitly provided when being
run from a command.

Unit tests passed.

Successfully posted this change for review.

Made use of the configuration in an in-progress change.

Diff Revision 1 (Latest)

Commits

First Last Summary ID Author
Pass the RBTools configuration to the HTTP/API layer.
We currently pass a lot of options all the way from `RBClient` to the transport to `ReviewBoardServer`, and this list has continued to grow over time. We will soon be needing another option, and instead of continuing to add dedicated options, we're now passing the loaded configuration instead. `RBToolsConfig` was added in RBTools 5, and consolidates all of our loaded options. This is easier to populate/load and pass around. `RBClient`, `SyncTransport`, and `ReviewBoardServer` now all take this as arguments. If this is not provided, `ReviewBoardServer` will load a configuration. This avoids breaking API compatibility with any custom scripts or hooks. The loaded configuration will always be explicitly provided when being run from a command.
c11b0c7632682b0a059c0105f5e687148956852a Christian Hammond
rbtools/api/request.py
rbtools/api/transport/sync.py
rbtools/commands/base/commands.py
Loading...