zuul/requirements.txt
Tobias Henkel 4c972f00bd
Optimize canMerge using graphql
The canMerge check is executed whenever zuul tests if a change can
enter a gate pipeline. This is part of the critical path in the event
handling of the scheduler and therefore must be as fast as
possible. Currently this takes five requests for doing its work and
also transfers large amounts of data that is unneeded:

* get pull request
* get branch protection settings
* get commits
* get status of latest commit
* get check runs of latest commit

Especially when Github is busy this can slow down zuul's event
processing considerably. This can be optimized using graphql to only
query the data we need with a single request. This reduces requests
and load on Github and speeds up event processing in the scheduler.

Since this is the first usage of graphql this also sets up needed
testing infrastructure using graphene to mock the github api with real
test data.

Change-Id: I77be4f16cf7eb5c8035ce0312f792f4e8d4c3e10
2020-02-28 09:43:56 +01:00

39 lines
759 B
Plaintext

pbr>=1.1.0
# Early virtualenv 20 had bad file location assumptions
virtualenv!=20.0.0,!=20.0.1
github3.py>=1.1.0
PyYAML>=3.1.0
paramiko>=2.0.1
GitPython>=2.1.8,<3.0.0
python-daemon>=2.0.4,<2.1.0
extras
statsd>=3.0
voluptuous>=0.10.2
gear>=0.13.0,<1.0.0,!=0.15.0
apscheduler>=3.0
PrettyTable>=0.6,<0.8
babel>=1.0
netaddr
kazoo
sqlalchemy
alembic
cryptography>=1.6
cachecontrol
cachetools
pyjwt
iso8601
psutil
fb-re2>=1.0.6
paho-mqtt
cherrypy
ws4py
routes
pathspec
jsonpath-rw
urllib3!=1.25.4,!=1.25.5 # https://github.com/urllib3/urllib3/pull/1684
# TODO(tobiash): cheroot 8.1.0 introduced a regression when handling concurrent
# requests. Remove the following line when this issue is resolved:
# https://github.com/cherrypy/cheroot/issues/263
cheroot<8.1.0