.. bb:reporter:: GerritVerifyStatusPush

GerritVerifyStatusPush
++++++++++++++++++++++

.. py:currentmodule:: buildbot.reporters.status_gerrit_verify_status

.. py:class:: GerritVerifyStatusPush

:class:`GerritVerifyStatusPush` sends a verify status to Gerrit using the verify-status_ Gerrit plugin.

It is an alternate method to :bb:reporter:`GerritStatusPush`, which uses the SSH API to send reviews.

The verify-status_ plugin allows several CI statuses to be sent for the same change, and display them separately in the Gerrit UI.

Most parameters are :index:`renderables <renderable>`.

.. py:class:: GerritVerifyStatusPush( \
    baseURL, auth, \
    verification_name=Interpolate("%(prop:buildername)s"), abstain=False, category=None, reporter=None, \
    verbose=False, generators=None, **kwargs)
    :noindex:

    :param string baseURL: Gerrit HTTP base URL
    :param string auth: A requests authentication configuration. (can be a :ref:`Secret`).
       If Gerrit is configured with ``BasicAuth``, then it shall be ``('login', 'password')``.
       If Gerrit is configured with ``DigestAuth``, then it shall be ``requests.auth.HTTPDigestAuth('login', 'password')`` from the requests module.
    :type generators: list of IReportGenerator instances
    :param generators: A list of report generators that will be used to generate reports to be sent by this reporter.
        Currently the reporter will consider only the report generated by the first generator.
    :param renderable string verification_name: The name of the job displayed in the Gerrit UI
    :param renderable boolean abstain: Whether this results should be counted as voting
    :param renderable boolean category: Category of the build
    :param renderable boolean reporter: The user that verified this build
    :param boolean verbose: Whether to log every requests
    :param boolean verify: Disable ssl verification for the case you use temporary self signed certificates
    :param boolean debug: Logs every requests and their response

This reporter is integrated with :class:`GerritChangeSource`, and will update changes detected by this change source.

This reporter can also send reports for changes triggered manually provided that there is a property in the build named ``gerrit_changes``, containing the list of changes that were tested.
This property must be a list of dictionaries, containing ``change_id`` and ``revision_id`` keys, as defined in the revision endpoints of the `Gerrit documentation`_.

.. _verify-status: https://gerrit.googlesource.com/plugins/verify-status
.. _Gerrit documentation: https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revision-endpoints
