From 441b8e49c8ce09a74dc525e2808a5a74db0dd459 Mon Sep 17 00:00:00 2001
From: shiro <24359398+actuarysailor@users.noreply.github.com>
Date: Wed, 24 May 2023 22:49:03 -0400
Subject: [PATCH] feat(settings.py): Now compares all settings (#41)

---
 repo_manager/github/settings.py | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/repo_manager/github/settings.py b/repo_manager/github/settings.py
index 70de1605..5682a9fd 100644
--- a/repo_manager/github/settings.py
+++ b/repo_manager/github/settings.py
@@ -65,15 +65,20 @@ def get_repo_value(setting_name: str, repo: Repository) -> Any | None:
     checked = True
     for setting_name in settings.dict().keys():
         repo_value = get_repo_value(setting_name, repo)
-        if repo_value is None:
-            continue
         settings_value = getattr(settings, setting_name)
+        # These don't seem to update if changed; may need to explore a different API call
+        if ((setting_name == "enable_automated_security_fixes") | (setting_name == "enable_vulnerability_alerts")):
+            continue
+        # We don't want to flag description being different if the YAML is None
+        if (setting_name == "description") & (not settings_value):
+            continue
+        elif (setting_name == "topics") & (settings_value is None):
+            settings_value = []
         if repo_value != settings_value:
             drift.append(f"{setting_name} -- Expected: '{settings_value}' Found: '{repo_value}'")
-            checked = False
+            checked &= False if (settings_value is not None) else True
     return checked, drift
 
-
 def update(repo: Repository, setting_name: str, new_value: Any):
     """[summary]