Skip to content

Commit

Permalink
fix: fix bugs from pr 43 (#45)
Browse files Browse the repository at this point in the history
* fix: switch to try except

* fix: check for non dismissal_restrictions
  • Loading branch information
andrewthetechie authored May 25, 2023
1 parent ef6dad4 commit b21e432
Showing 1 changed file with 34 additions and 28 deletions.
62 changes: 34 additions & 28 deletions repo_manager/github/branch_protections.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from repo_manager.utils import attr_to_kwarg
from repo_manager.utils import objary_to_list


def diff_option(key: str, expected: Any, repo_value: Any) -> str | None:
if expected is not None:
if expected != repo_value:
Expand Down Expand Up @@ -112,20 +113,18 @@ def edit_protection( # nosec
dismissal_teams = []
if dismissal_teams is NotSet:
dismissal_teams = []
post_parameters["required_pull_request_reviews"]["dismissal_restrictions"] \
= {
"users": dismissal_users,
"teams": dismissal_teams,
post_parameters["required_pull_request_reviews"]["dismissal_restrictions"] = {
"users": dismissal_users,
"teams": dismissal_teams,
}
if user_bypass_pull_request_allowances is not NotSet or team_bypass_pull_request_allowances is not NotSet:
if user_bypass_pull_request_allowances is NotSet:
user_bypass_pull_request_allowances = []
if team_bypass_pull_request_allowances is NotSet:
team_bypass_pull_request_allowances = []
post_parameters["required_pull_request_reviews"]["bypass_pull_request_allowances"] \
= {
"users": user_bypass_pull_request_allowances,
"teams": team_bypass_pull_request_allowances,
post_parameters["required_pull_request_reviews"]["bypass_pull_request_allowances"] = {
"users": user_bypass_pull_request_allowances,
"teams": team_bypass_pull_request_allowances,
}
else:
post_parameters["required_pull_request_reviews"] = None
Expand Down Expand Up @@ -417,30 +416,37 @@ def check_repo_branch_protections(

# TODO: Figure out how to diff Restriction options
# I figured out some of them....
dismissal_teams = [] if (this_protection.required_pull_request_reviews is None) else \
objary_to_list("slug", this_protection.required_pull_request_reviews.dismissal_teams)
try:
dismissal_teams = objary_to_list("slug", this_protection.required_pull_request_reviews.dismissal_teams)
except TypeError:
dismissal_teams = []

dismissal_teams.sort()
if (config_bp.protection.pr_options.dismissal_restrictions.teams is not None):
config_bp.protection.pr_options.dismissal_restrictions.teams.sort()
diffs.append(
diff_option(
"dismissal_teams",
config_bp.protection.pr_options.dismissal_restrictions.teams,
dismissal_teams,
if config_bp.protection.pr_options.dismissal_restrictions is not None:
if config_bp.protection.pr_options.dismissal_restrictions.teams is not None:
config_bp.protection.pr_options.dismissal_restrictions.teams.sort()
diffs.append(
diff_option(
"dismissal_teams",
config_bp.protection.pr_options.dismissal_restrictions.teams,
dismissal_teams,
)
)
)
dismissal_users = [] if (this_protection.required_pull_request_reviews is None) else \
objary_to_list("name", this_protection.required_pull_request_reviews.dismissal_users)
try:
dismissal_users = objary_to_list("name", this_protection.required_pull_request_reviews.dismissal_users)
except TypeError:
dismissal_users = []
dismissal_users.sort()
if (config_bp.protection.pr_options.dismissal_restrictions.teams is not None):
config_bp.protection.pr_options.dismissal_restrictions.teams.sort()
diffs.append(
diff_option(
"dismissal_users",
config_bp.protection.pr_options.dismissal_restrictions.users,
dismissal_users,
if config_bp.protection.pr_options.dismissal_restrictions is not None:
if config_bp.protection.pr_options.dismissal_restrictions.teams is not None:
config_bp.protection.pr_options.dismissal_restrictions.teams.sort()
diffs.append(
diff_option(
"dismissal_users",
config_bp.protection.pr_options.dismissal_restrictions.users,
dismissal_users,
)
)
)

diffs = [i for i in diffs if i is not None]
if len(diffs) > 0:
Expand Down

0 comments on commit b21e432

Please sign in to comment.