Skip to content

Commit 0077338

Browse files
committed
Fixing ruff
1 parent d08d3e0 commit 0077338

File tree

2 files changed

+39
-22
lines changed

2 files changed

+39
-22
lines changed

.github/pr-reminder.py

Lines changed: 36 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1+
import logging
12
import os
2-
import requests
33
from datetime import datetime, timedelta
44

5+
import requests
6+
7+
logger = logging.getLogger(__name__)
8+
59
# Set up the GitHub and Slack tokens from environment variables
610
GH_TOKEN = os.getenv("GH_TOKEN")
711
SLACK_TOKEN = os.getenv("SLACK_TOKEN")
@@ -39,26 +43,30 @@ def get_slack_user_id(slack_email: str) -> int:
3943
headers = {"Authorization": f"Bearer {SLACK_TOKEN}"}
4044
params = {"email": slack_email}
4145
response = requests.get(
42-
"https://slack.com/api/users.lookupByEmail", headers=headers, params=params
46+
"https://slack.com/api/users.lookupByEmail",
47+
headers=headers,
48+
params=params,
49+
timeout=30,
4350
)
4451

4552
if response.status_code != 200 or not response.json().get("ok"):
46-
print(f"Error fetching Slack user ID for email {slack_email}: {response.text}")
53+
logger.info(f"Error fetching Slack user ID for email {slack_email}: {response.text}")
4754
return None
4855

49-
slack_user_id = response.json().get("user", {}).get("id")
50-
return slack_user_id
56+
return response.json().get("user", {}).get("id")
5157

5258

5359
# Helper function to fetch pull requests from GitHub
5460
def get_pull_requests() -> dict:
5561
headers = {"Authorization": f"token {GH_TOKEN}"}
5662
response = requests.get(
57-
f"https://api.github.com/repos/{REPO_OWNER}/{REPO_NAME}/pulls", headers=headers
63+
f"https://api.github.com/repos/{REPO_OWNER}/{REPO_NAME}/pulls",
64+
headers=headers,
65+
timeout=30,
5866
)
5967

6068
if response.status_code != 200:
61-
print(f"Error fetching PRs: {response.text}")
69+
logger.info(f"Error fetching PRs: {response.text}")
6270
response.raise_for_status()
6371

6472
return response.json()
@@ -69,10 +77,14 @@ def get_pr_reviews(pull_request: dict) -> list[dict]:
6977
pr_number = pull_request["number"]
7078
reviews_url = f"https://api.github.com/repos/{REPO_OWNER}/{REPO_NAME}/pulls/{pr_number}/reviews"
7179
headers = {"Authorization": f"token {GH_TOKEN}"}
72-
response = requests.get(reviews_url, headers=headers)
80+
response = requests.get(
81+
reviews_url,
82+
headers=headers,
83+
timeout=30,
84+
)
7385

7486
if response.status_code != 200:
75-
print(f"Error fetching reviews for PR {pr_number}: {response.text}")
87+
logger.info(f"Error fetching reviews for PR {pr_number}: {response.text}")
7688
return []
7789

7890
reviews = response.json()
@@ -86,10 +98,8 @@ def get_pr_reviews(pull_request: dict) -> list[dict]:
8698
# Convert the submitted_at timestamp to a datetime object for comparison
8799
review_time = datetime.strptime(submitted_at, "%Y-%m-%dT%H:%M:%SZ")
88100
# If the user doesn't have a review or the current one is later, update
89-
if (
90-
user not in latest_reviews
91-
or review_time > latest_reviews[user]["submitted_at"]
92-
and state != "COMMENTED"
101+
if user not in latest_reviews or (
102+
review_time > latest_reviews[user]["submitted_at"] and state != "COMMENTED"
93103
):
94104
latest_reviews[user] = {
95105
"user": user,
@@ -105,7 +115,7 @@ def get_pr_reviews(pull_request: dict) -> list[dict]:
105115
"state": "PENDING",
106116
}
107117
for user_dict in pull_request.get("requested_reviewers", [])
108-
}
118+
},
109119
)
110120
# Return the latest review state and URL for each user
111121
return latest_reviews.values()
@@ -119,11 +129,14 @@ def send_slack_message(slack_user_id: int, message: str) -> None:
119129
}
120130
payload = {"channel": slack_user_id, "text": message}
121131
response = requests.post(
122-
"https://slack.com/api/chat.postMessage", json=payload, headers=headers
132+
"https://slack.com/api/chat.postMessage",
133+
json=payload,
134+
headers=headers,
135+
timeout=30,
123136
)
124137

125138
if response.status_code != 200 or not response.json().get("ok"):
126-
print(f"Error sending Slack message: {response.text}")
139+
logger.info(f"Error sending Slack message: {response.text}")
127140
response.raise_for_status()
128141

129142

@@ -162,13 +175,13 @@ def notify_reviewers():
162175
slack_email_to_slack_id = {}
163176
pull_requests = get_pull_requests()
164177
# Logging all fetched PR details
165-
print(f"Fetched {len(pull_requests)} PRs from GitHub.")
178+
logger.info(f"Fetched {len(pull_requests)} PRs from GitHub.")
166179
for pull_request in pull_requests:
167180
title = pull_request["title"]
168181
pr_number = pull_request["number"]
169-
print(f"Processing PR: {pr_number} - {title}")
182+
logger.info(f"Processing PR: {pr_number} - {title}")
170183
reviews = get_pr_reviews(pull_request)
171-
print(f"Found {len(reviews)} reviews for PR {pr_number}.")
184+
logger.info(f"Found {len(reviews)} reviews for PR {pr_number}.")
172185
message = format_pr_message(pull_request, reviews)
173186
# Map Slack users to PR messages
174187
for review in reviews:
@@ -191,13 +204,14 @@ def notify_reviewers():
191204
if pr_list:
192205
if slack_email := GITHUB_USER_NAME_TO_SLACK_EMAIL.get(github_username):
193206
if slack_user_id := slack_email_to_slack_id.get(
194-
slack_email, get_slack_user_id(slack_email)
207+
slack_email,
208+
get_slack_user_id(slack_email),
195209
):
196210
message_content = f"Hello {github_username}! {header_message}\n{pr_list}\n{tips_message}"
197-
# print("\n\n", message_content, "\n\n")
211+
# logger.info("\n\n", message_content, "\n\n")
198212
send_slack_message(slack_user_id, message_content)
199213
except Exception as e:
200-
print(f"Error occurred: {e}")
214+
logger.info(f"Error occurred: {e}")
201215
raise
202216

203217

ruff.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,9 @@ preview = true
109109
"S105", # hardcoded passwords in tests are fine
110110
"S108", # tmp paths mentioned in tests are fine
111111
]
112+
".github/pr-reminder.py" = [
113+
"INP001", # https://docs.astral.sh/ruff/rules/implicit-namespace-package/
114+
]
112115

113116
[lint.flake8-boolean-trap]
114117
extend-allowed-calls = ["dojo.utils.get_system_setting"]

0 commit comments

Comments
 (0)