Compare commits
2 commits
2d77b38577
...
d497f16644
Author | SHA1 | Date | |
---|---|---|---|
d497f16644 | |||
e231376536 |
1 changed files with 13 additions and 3 deletions
|
@ -158,6 +158,7 @@ def maintain(config_path: Path, schedule: timedelta):
|
|||
client = Client(config["gh-unnotifier"]["api_key"])
|
||||
org_shitlist = config["gh-unnotifier"].get("org_shitlist", [])
|
||||
team_shitlist = config["gh-unnotifier"].get("team_shitlist", [])
|
||||
author_shitlist = config["gh-unnotifier"].get("author_shitlist", [])
|
||||
user = client.get_user()
|
||||
user_teams = {it["slug"] for it in client.get_user_teams()}
|
||||
mark = savepoint = prev = None
|
||||
|
@ -178,6 +179,10 @@ def maintain(config_path: Path, schedule: timedelta):
|
|||
_resolve(notif, "Closed")
|
||||
return
|
||||
|
||||
if pr["user"]["login"] in author_shitlist:
|
||||
_resolve(notif, "Ignoring PR by author")
|
||||
return
|
||||
|
||||
if notif["reason"] == "review_requested":
|
||||
reviewers = client.get_pr_reviewers(pr)
|
||||
if (
|
||||
|
@ -219,6 +224,7 @@ def maintain(config_path: Path, schedule: timedelta):
|
|||
|
||||
def _issue(subject, notif):
|
||||
issue = client.get_issue(url=subject["url"])
|
||||
|
||||
if issue["state"] == "closed":
|
||||
comments = client.get_comments(url=issue["comments_url"])
|
||||
if not any(
|
||||
|
@ -226,6 +232,9 @@ def maintain(config_path: Path, schedule: timedelta):
|
|||
):
|
||||
_resolve(notif, "Unengaged issue closed")
|
||||
|
||||
if user["author"]["login"] in author_shitlist:
|
||||
_resolve(notif, "Ignoring issue by author")
|
||||
|
||||
while True:
|
||||
try:
|
||||
savepoint = prev
|
||||
|
@ -237,17 +246,18 @@ def maintain(config_path: Path, schedule: timedelta):
|
|||
notif_timestamp = datetime.fromisoformat(notif["updated_at"])
|
||||
if (mark - notif_timestamp).days > 3:
|
||||
_resolve(notif, "More than 3 days old")
|
||||
continue
|
||||
|
||||
subject = notif["subject"]
|
||||
|
||||
match subject["type"]:
|
||||
case "PullRequest":
|
||||
match subject["type"].lower():
|
||||
case "pullrequest":
|
||||
_pr(subject, notif)
|
||||
|
||||
case "mention":
|
||||
_mention(subject, notif)
|
||||
|
||||
case "Issue":
|
||||
case "issue":
|
||||
_issue(subject, notif)
|
||||
|
||||
duration = (tick - datetime.now(timezone.utc)).total_seconds()
|
||||
|
|
Loading…
Reference in a new issue