diff --git a/app.py b/app.py index 638eac7..fae7ab5 100644 --- a/app.py +++ b/app.py @@ -35,7 +35,8 @@ github_bot = GitHubBot( token=os.environ.get("GITHUB_TOKEN"), webhook_secret=os.environ.get("WEBHOOK_SECRET"), - db=db + db=db, + review_reminders_enabled=os.environ.get("ENABLE_REVIEW_REMINDERS", "").lower() == "true" ) logger.info("init'd github bot...") diff --git a/github_bot.py b/github_bot.py index 57b5ce4..16b5096 100644 --- a/github_bot.py +++ b/github_bot.py @@ -15,10 +15,11 @@ IGNORED_REVIEWERS = ['graphite-app[bot]'] class GitHubBot: - def __init__(self, token, webhook_secret, db): + def __init__(self, token, webhook_secret, db, review_reminders_enabled=False): self.token = token self.webhook_secret = webhook_secret.encode() self.db = db + self.review_reminders_enabled = review_reminders_enabled self.logger = logging.getLogger(__name__) self.headers = { 'Authorization': f'token {token}', @@ -562,7 +563,7 @@ def auto_assign_reviewers(self, pr_record): def check_and_send_reminders(self): """Check for PRs needing review reminders and auto-assign reviewers.""" - self.logger.info("Checking for PRs needing review reminders...") + self.logger.info("Checking for PRs needing reviewer assignment/reminders...") current_time = datetime.utcnow() reviewer_threshold = current_time - timedelta(minutes=10) @@ -580,6 +581,9 @@ def check_and_send_reminders(self): for pr in prs_needing_assignment: self.auto_assign_reviewers(pr) + if not self.review_reminders_enabled: + return + # Nag reviewers, but only on weekdays now = datetime.utcnow() if now.weekday() < 4 or (now.weekday() == 5 and now.hour < 17):