From 9bd677dd9b1189a1cae8c46f3a6431f751c1c387 Mon Sep 17 00:00:00 2001 From: Animesh Pathak <53110238+Sonichigo@users.noreply.github.com> Date: Tue, 10 Sep 2024 14:01:50 +0530 Subject: [PATCH] Update notification-reminder.yml --- .github/workflows/notification-reminder.yml | 70 ++++++++++----------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/.github/workflows/notification-reminder.yml b/.github/workflows/notification-reminder.yml index d2f4ce8..f491792 100644 --- a/.github/workflows/notification-reminder.yml +++ b/.github/workflows/notification-reminder.yml @@ -47,46 +47,46 @@ jobs: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} run: | python -c " - import os - import json - import requests - from github import Github - - def get_org_members(org_name, github_token): - g = Github(github_token) - org = g.get_organization(org_name) - return [member.login for member in list(org.get_members())] - - def get_pr_issue_activity(username, github_token): - g = Github(github_token) - user = g.get_user(username) - pr_issue_activity = [] - for notification in user.get_notifications(participating=True): - if notification.subject.type in ['PullRequest', 'Issue']: - pr_issue_activity.append({ - 'type': notification.subject.type, - 'title': notification.subject.title, - 'url': notification.subject.url.replace('api.github.com/repos', 'github.com') + import os + import json + import requests + from github import Github + + def get_org_members(org_name, github_token): + g = Github(github_token) + org = g.get_organization(org_name) + return [member.login for member in list(org.get_members())] + + def get_pr_issue_activity(username, github_token): + g = Github(github_token) + user = g.get_user(username) + pr_issue_activity = [] + for notification in user.get_notifications(participating=True): + if notification.subject.type in ['PullRequest', 'Issue']: + pr_issue_activity.append({ + 'type': notification.subject.type, + 'title': notification.subject.title, + 'url': notification.subject.url.replace('api.github.com/repos', 'github.com') }) - return pr_issue_activity - - def send_slack_reminder(username, activities, webhook_url): - if not activities: - return - message = f'*Reminder for @{username}*\n' - message += f'You have {len(activities)} unread PR/issue notifications:\n' - for activity in activities: - message += f'• {activity['type']}: <{activity['url']}|{activity['title']}>\n' + return pr_issue_activity + + def send_slack_reminder(username, activities, webhook_url): + if not activities: + return + message = f'*Reminder for @{username}*\n' + message += f'You have {len(activities)} unread PR/issue notifications:\n' + for activity in activities: + message += f'• {activity['type']}: <{activity['url']}|{activity['title']}>\n' payload = {'text': message, 'username': 'GitHub Notification Bot', 'icon_emoji': ':github:'} requests.post(webhook_url, json=payload) - + github_token = os.environ['GITHUB_TOKEN'] org_name = os.environ['ORG_NAME'] slack_webhook_url = os.environ['SLACK_WEBHOOK_URL'] - + org_members = get_org_members(org_name, github_token) for member in org_members: - activities = get_pr_issue_activity(member, github_token) - if activities: - send_slack_reminder(member, activities, slack_webhook_url) - " + activities = get_pr_issue_activity(member, github_token) + if activities: + send_slack_reminder(member, activities, slack_webhook_url) + "