The Gatekeeper, or a project gating system
Go to file
Simon Westphahl 29592c9531 Allow refreshing volatile data in canMerge check
On GitHub we cannot reliably update all information that's needed for
doing a canmerge check using events. Namely completely missing events
on branch protection changes and ambiguous status events that might
match several changes due to its data model to have statuses on the
commit instead the pr. This was no problem in the past since this
information was only used during the enqueue phase which is directly
after the event preprocessing phase.

However with circular dependencies we re-do the can merge check just
before merging again and need to act on recent data. Therefore add an
allow_refresh flag that makes it possible to refresh the volatile
parts of the data we don't get events for. This is only used on GitHub
for now as the other drivers are either correctly updating their
states using events or didn't yet optimize to not do api calls within
the main loop yet (pagure).

Change-Id: I89ff158642fe32c5004ef62c2e25399110564252
2021-03-01 18:45:02 +00:00
doc Add optional support for circular dependencies 2021-03-01 19:42:56 +01:00
etc authentication config: add optional max_validity_time, skew 2019-12-10 16:39:29 +01:00
playbooks Remove zuul-migrate 2021-02-17 09:22:46 -08:00
releasenotes/notes Merge "Move queue from pipeline to project" 2021-02-25 00:45:45 +00:00
tests Add optional support for circular dependencies 2021-03-01 19:42:56 +01:00
tools Prepare Zookeeper for scale-out scheduler 2021-02-15 14:44:18 +01:00
web Update react-json-view 2021-02-23 12:54:15 -08:00
zuul Allow refreshing volatile data in canMerge check 2021-03-01 18:45:02 +00:00
.coveragerc Revert "Revert "Switch to stestr"" 2018-05-17 08:33:40 -07:00
.dockerignore Add web/node_modules to dockerignore 2019-01-27 11:23:45 +01:00
.gitignore Revert "Revert "Create zuul/web/static on demand"" 2020-07-07 19:53:33 +02:00
.gitreview OpenDev Migration Patch 2019-04-19 19:25:28 +00:00
.mailmap Fix pep8 E127 violations 2012-09-26 14:23:10 +00:00
.stestr.conf Revert "Revert "Switch to stestr"" 2018-05-17 08:33:40 -07:00
.zuul.yaml Remove zuul-migrate 2021-02-17 09:22:46 -08:00
COPYING Update README and add GPL license 2018-03-19 09:25:52 -07:00
Dockerfile Noop change to Dockerfile to trigger image builds 2021-02-19 13:09:18 -08:00
LICENSE Initial commit. 2012-05-29 14:49:32 -07:00
MANIFEST.in Optimize canMerge using graphql 2020-02-28 09:43:56 +01:00
README.rst Support nodes setting 'auto' python-path 2019-09-19 10:28:53 +10:00
TESTING.rst Docs: fix stestr run example 2020-01-21 10:36:07 +01:00
bindep.txt Fix bindep.txt: clean remaining python3.7 2020-09-29 17:16:22 +02:00
reno.yaml Add reno configuration settings 2020-07-22 08:45:46 -07:00
requirements.txt Merge "Bump pyjwt to 2.0.0" 2021-01-23 01:35:22 +00:00
setup.cfg Add python-logstash-async to container images 2021-02-18 14:48:55 -08:00
setup.py Partial sync with OpenStack requirements. 2013-09-25 15:30:37 -07:00
test-requirements.txt Optimize canMerge using graphql 2020-02-28 09:43:56 +01:00
tox.ini Decouple mypy from tox 2020-12-09 17:04:45 +00:00

README.rst

Zuul

Zuul is a project gating system.

The latest documentation for Zuul v3 is published at: https://zuul-ci.org/docs/zuul/

If you are looking for the Edge routing service named Zuul that is related to Netflix, it can be found here: https://github.com/Netflix/zuul

If you are looking for the Javascript testing tool named Zuul, it can be found here: https://github.com/defunctzombie/zuul

Getting Help

There are two Zuul-related mailing lists:

zuul-announce

A low-traffic announcement-only list to which every Zuul operator or power-user should subscribe.

zuul-discuss

General discussion about Zuul, including questions about how to use it, and future development.

You will also find Zuul developers in the #zuul channel on Freenode IRC.

Contributing

To browse the latest code, see: https://opendev.org/zuul/zuul To clone the latest code, use git clone https://opendev.org/zuul/zuul

Bugs are handled at: https://storyboard.openstack.org/#!/project/zuul/zuul

Suspected security vulnerabilities are most appreciated if first reported privately following any of the supported mechanisms described at https://zuul-ci.org/docs/zuul/user/vulnerabilities.html

Code reviews are handled by gerrit at https://review.opendev.org

After creating a Gerrit account, use git review to submit patches. Example:

# Do your commits
$ git review
# Enter your username if prompted

Join #zuul on Freenode to discuss development or usage.

License

Zuul is free software. Most of Zuul is licensed under the Apache License, version 2.0. Some parts of Zuul are licensed under the General Public License, version 3.0. Please see the license headers at the tops of individual source files.

Python Version Support

Zuul requires Python 3. It does not support Python 2.

Since Zuul uses Ansible to drive CI jobs, Zuul can run tests anywhere Ansible can, including Python 2 environments.