diff options
author | Zuul <zuul@review.opendev.org> | 2021-03-01 23:10:50 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2021-03-01 23:10:50 +0000 |
commit | 1bafeb4b7342ef4b9ec93a9b2807151bac0f9d3c (patch) | |
tree | 256fddf19f80f6c5edbb7e10e57793f4a41c4629 /zuul/driver/github | |
parent | 86f588e97fb2d115fa1d7423e812dceda5864a6d (diff) | |
parent | f87952ba0647855723acfc5c280256d909bcb986 (diff) | |
download | zuul-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.py | 22 | ||||
-rw-r--r-- | zuul/driver/github/githubmodel.py | 1 | ||||
-rw-r--r-- | zuul/driver/github/graphql/__init__.py | 2 |
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') |