Here is a brief outline of the parts of what we have put together for the Python API.
ServerManager: Allows for high level calls to a ReviewBoard server. Some examples of this would be “login”, “create review request”, and “close review request”
Resource: An object which deals with ReviewBoard server resources. This is further extended to specific resources, such as review requests or draft review requests. The main functionality provided through these objects is getting the value of different fields held within the resource. Some examples of fields that would be commonly retrieved are ‘links’ and ‘status’.
ServerInterface: Acts as a RESTful interface to a ReviewBoard server. This object is capable of making HTTP requests and storing any cookies along the way.
Repository: Used to hold local repository information in addition to creating diffs. The bulk of this class deals with SCM specific functionality.
RBUtilities: Utility class to provide functionality such as logging and calls to the OS command line.