asfyaml/feature/github/pull_requests.py (34 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. """Settings related to GitHub Pull Requests""" from github.GithubObject import NotSet, is_defined from . import directive, ASFGitHubFeature @directive def pull_requests(self: ASFGitHubFeature): # retrieve the legacy "del_branch_on_merge" setting from the github object legacy_del_branch_on_merge = self.yaml.get("del_branch_on_merge", NotSet) pull_requests = self.yaml.get("pull_requests") if pull_requests: allow_auto_merge = pull_requests.get("allow_auto_merge", NotSet) allow_update_branch = pull_requests.get("allow_update_branch", NotSet) del_branch_on_merge = pull_requests.get("del_branch_on_merge", NotSet) if is_defined(legacy_del_branch_on_merge): raise Exception( "found legacy setting 'github.del_branch_on_merge' while " "'github.pull_requests' is present. Move setting to 'github.pull_requests'" ) else: allow_auto_merge = NotSet allow_update_branch = NotSet del_branch_on_merge = legacy_del_branch_on_merge # check if we have any defined property any_defined_property = any( map(lambda x: is_defined(x), (del_branch_on_merge, allow_auto_merge, allow_update_branch)) ) if any_defined_property and not self.noop("pull_requests"): if is_defined(allow_auto_merge): print(f"Setting allow_auto_merge to '{allow_auto_merge}'") if is_defined(allow_update_branch): print(f"Setting allow_update_branch to '{allow_update_branch}'") if is_defined(del_branch_on_merge): print(f"Setting del_branch_on_merge to '{del_branch_on_merge}'") self.ghrepo.edit( allow_auto_merge=allow_auto_merge, allow_update_branch=allow_update_branch, delete_branch_on_merge=del_branch_on_merge, )