zuul coordinates talking to multiple different systems via the concept of connections. A connection is listed in the zuul.conf file and is then referred to from the layout.yaml. This makes it possible to receive events from gerrit via one connection and post results from another connection that may report back as a different user.


Create a connection with gerrit.


FQDN of Gerrit server.
Optional: Gerrit server port. port=29418
Optional: path to Gerrit web interface. Defaults to https://<value of server>/. baseurl=
User name to use when logging into above server via ssh. user=zuul
Path to SSH key to use when logging into above server. sshkey=/home/zuul/.ssh/id_rsa

event_delay (optional)

When querying a change immediately after a patchset upload, Gerrit may return incorrect data about dependent changes. In order to avoid this, the events are not delivered to Zuul until a constant number of seconds has passed.

Note that if we receive several events in succession, we will only need to delay for the first event.

Default: 10 (seconds)

Gerrit Configuration

Zuul will need access to a Gerrit user.

Create an SSH keypair for Zuul to use if there isn’t one already, and create a Gerrit user with that key:

cat ~/ | ssh -p29418 gerrit create-account --ssh-key - --full-name Jenkins jenkins

Give that user whatever permissions will be needed on the projects you want Zuul to gate. For instance, you may want to grant Verified +/-1 and Submit to the user. Additional categories or values may be added to Gerrit. Zuul is very flexible and can take advantage of those.



SMTP server hostname or address to use. server=localhost
Optional: SMTP server port. port=25
Who the email should appear to be sent from when emailing the report. This can be overridden by individual pipelines.
Who the report should be emailed to by default. This can be overridden by individual pipelines.