Buildbot no longer supports Python 2.7 on the Buildbot master. HTTP RequestsΒΆ


The HTTP steps are being migrated to new-style. A new-style equivalents are provided as HTTPStepNewStyle, GETNewStyle, PUTNewStyle, POSTNewStyle, DELETENewStyle, HEADNewStyle, OPTIONSNewStyle. This should be inherited by any custom steps until Buildbot 3.0 is released. Regular uses without inheritance are not affected.

Using the HTTPStep step, it is possible to perform HTTP requests in order to trigger another REST service about the progress of the build.


This step requires the txrequests and requests Python libraries.

The parameters are the following:


(mandatory) The URL where to send the request


The HTTP method to use (out of POST, GET, PUT, DELETE, HEAD or OPTIONS), default to POST.


Dictionary of URL parameters to append to the URL.


The body to attach the request. If a dictionary is provided, form-encoding will take place.


Dictionary of headers to send.


Iterable of request headers to be hidden from the log. The header will be listed in the log but the value will be shown as <HIDDEN>.


Iterable of response headers to be hidden from the log. The header will be listed in the log but the value will be shown as <HIDDEN>.

other params

Any other keywords supported by the requests api can be passed to this step.


The entire Buildbot master process shares a single Requests Session object. This has the advantage of supporting connection re-use and other HTTP/1.1 features. However, it also means that any cookies or other state changed by one step will be visible to other steps, causing unexpected results. This behavior may change in future versions.

When the method is known in advance, class with the name of the method can also be used. In this case, it is not necessary to specify the method.


from buildbot.plugins import steps, util

                     data = {
                        'builder': util.Property('buildername'),
                        'buildnumber': util.Property('buildnumber'),
                        'workername': util.Property('workername'),
                        'revision': util.Property('got_revision')