summaryrefslogtreecommitdiff
path: root/zuul/driver/github
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2021-03-01 23:10:50 +0000
committerGerrit Code Review <review@openstack.org>2021-03-01 23:10:50 +0000
commit1bafeb4b7342ef4b9ec93a9b2807151bac0f9d3c (patch)
tree256fddf19f80f6c5edbb7e10e57793f4a41c4629 /zuul/driver/github
parent86f588e97fb2d115fa1d7423e812dceda5864a6d (diff)
parentf87952ba0647855723acfc5c280256d909bcb986 (diff)
downloadzuul-1bafeb4b7342ef4b9ec93a9b2807151bac0f9d3c.tar.gz
Merge "Don't query branch protection on pull request events"
Diffstat (limited to 'zuul/driver/github')
-rw-r--r--zuul/driver/github/githubconnection.py22
-rw-r--r--zuul/driver/github/githubmodel.py1
-rw-r--r--zuul/driver/github/graphql/__init__.py2
3 files changed, 19 insertions, 6 deletions
diff --git a/zuul/driver/github/githubconnection.py b/zuul/driver/github/githubconnection.py
index 820f5761c..3c5615e07 100644
--- a/zuul/driver/github/githubconnection.py
+++ b/zuul/driver/github/githubconnection.py
@@ -435,12 +435,14 @@ class GithubEventProcessor(object):
event.zuul_event_id = self.delivery
event.timestamp = self.ts
project = self.connection.source.getProject(event.project_name)
+ change = None
if event.change_number:
- self.connection._getChange(project,
- event.change_number,
- event.patch_number,
- refresh=True,
- event=event)
+ change = self.connection._getChange(
+ project,
+ event.change_number,
+ event.patch_number,
+ refresh=True,
+ event=event)
self.log.debug("Refreshed change %s,%s",
event.change_number, event.patch_number)
@@ -448,7 +450,14 @@ class GithubEventProcessor(object):
# unprotected branches, we might need to check whether the
# branch is now protected.
if hasattr(event, "branch") and event.branch:
- self.connection.checkBranchCache(project.name, event)
+ protected = None
+ if change:
+ # PR based events already have the information if the
+ # target branch is protected so take the information
+ # from there.
+ protected = change.branch_protected
+ self.connection.checkBranchCache(project.name, event,
+ protected=protected)
event.project_hostname = self.connection.canonical_hostname
self.event = event
@@ -1484,6 +1493,7 @@ class GithubConnection(CachedBranchConnection):
change.required_contexts = set(
canmerge_data['requiredStatusCheckContexts']
)
+ change.branch_protected = canmerge_data['protected']
def getGitUrl(self, project: Project):
if self.git_ssh_key:
diff --git a/zuul/driver/github/githubmodel.py b/zuul/driver/github/githubmodel.py
index da06da46f..9b9295225 100644
--- a/zuul/driver/github/githubmodel.py
+++ b/zuul/driver/github/githubmodel.py
@@ -42,6 +42,7 @@ class PullRequest(Change):
self.review_decision = None
self.required_contexts = set()
self.contexts = set()
+ self.branch_protected = False
@property
def status(self):
diff --git a/zuul/driver/github/graphql/__init__.py b/zuul/driver/github/graphql/__init__.py
index d671e9e90..f0d17f5f0 100644
--- a/zuul/driver/github/graphql/__init__.py
+++ b/zuul/driver/github/graphql/__init__.py
@@ -107,8 +107,10 @@ class GraphQLClient:
'requiresApprovingReviews')
result['requiresCodeOwnerReviews'] = matching_rule.get(
'requiresCodeOwnerReviews')
+ result['protected'] = True
else:
result['requiredStatusCheckContexts'] = []
+ result['protected'] = False
# Check for draft
pull_request = nested_get(repository, 'pullRequest')