

def main(self, request_id):
    'Run the command.'
    (repository_info, tool) = self.initialize_scm_tool(client_name=self.options.repository_type)
    server_url = self.get_server_url(repository_info, tool)
    (api_client, api_root) = self.get_api(server_url)
    review_request = get_review_request(request_id, api_root, only_fields='public', only_links='draft')
    self.setup_tool(tool, api_root)
    update_fields = {
        'public': True,
    }
    if (self.options.trivial_publish and tool.capabilities.has_capability('review_requests', 'trivial_publish')):
        e['trivial'] = True
    if (self.options.change_description is not None):
        if review_request.public:
            update_fields['changedescription'] = self.options.change_description
            if (self.options.markdown and tool.capabilities.has_capability('text', 'markdown')):
                update_fields['changedescription_text_type'] = 'markdown'
            else:
                update_fields['changedescription_text_type'] = 'plain'
        else:
            logging.error('The change description field can only be set when publishing an update.')
    try:
        draft = review_request.get_draft(only_fields='')
        draft.update(**update_fields)
    except APIError as e:
        raise CommandError(('Error publishing review request (it may already be published): %s' % e))
    print(('Review request #%s is published.' % request_id))

dataset/ETHPy150Open reviewboard/rbtools/rbtools/commands/publish.py Publish.main/VarMisuse@116/184 `update_fields`->`e`