Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/actions/bot-autoassign/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import sys
import traceback


def main():
if len(sys.argv) < 2:
print(
"Usage: python __main__.py <bot_type> [args...]\n"
"Available bot types: issue_assignment, stale_pr, pr_reopen"
)
return 1

bot_type = sys.argv[1]

try:
sys.argv = [sys.argv[0]] + sys.argv[2:]

if bot_type == "issue_assignment":
from issue_assignment_bot import main as issue_main

return issue_main()
elif bot_type == "stale_pr":
from stale_pr_bot import main as stale_main

return stale_main()
elif bot_type == "pr_reopen":
from pr_reopen_bot import main as pr_main

return pr_main()
else:
print(f"Unknown bot type: {bot_type}")
print("Available bot types: " "issue_assignment, stale_pr, pr_reopen")
return 1
except Exception as e:
print(f"Error running {bot_type} bot: {e}")
traceback.print_exc()
return 1


if __name__ == "__main__":
sys.exit(main())
27 changes: 27 additions & 0 deletions .github/actions/bot-autoassign/base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import os

from github import Github


class GitHubBot:
def __init__(self):
self.github_token = os.environ.get("GITHUB_TOKEN")
self.repository_name = os.environ.get("REPOSITORY")
self.event_name = os.environ.get("GITHUB_EVENT_NAME")
self.event_payload = None

if self.github_token and self.repository_name:
try:
self.github = Github(self.github_token)
self.repo = self.github.get_repo(self.repository_name)
except Exception as e:
print(f"Warning: Could not initialize GitHub client: {e}")
self.github = None
self.repo = None
else:
print("Warning: GITHUB_TOKEN or REPOSITORY env vars not set")
self.github = None
self.repo = None

def load_event_payload(self, event_payload):
self.event_payload = event_payload
Loading
Loading