Spaces:
Running
Running
| import os | |
| import json | |
| import base64 | |
| import requests | |
| from github import Github | |
| # Path to the GitHub Actions event payload | |
| event_path = os.environ.get("GITHUB_EVENT_PATH") | |
| if not event_path or not os.path.exists(event_path): | |
| print("No event payload found.") | |
| exit(1) | |
| with open(event_path, "r") as f: | |
| event = json.load(f) | |
| # Only proceed if this is a PR comment event | |
| if "pull_request" not in event.get("issue", {}): | |
| print("Not a PR comment event.") | |
| exit(0) | |
| pr_number = event["issue"]["number"] | |
| comment_body = event["comment"]["body"] | |
| repo_full_name = event["repository"]["full_name"] | |
| token = os.environ.get("GITHUB_TOKEN") | |
| if not token: | |
| print("No GITHUB_TOKEN found in environment.") | |
| exit(1) | |
| gh = Github(token) | |
| repo = gh.get_repo(repo_full_name) | |
| pr = repo.get_pull(pr_number) | |
| files = [] | |
| for file in pr.get_files(): | |
| cf = repo.get_contents(file.filename, ref=pr.head.sha) | |
| content = base64.b64decode(cf.content).decode("utf-8") | |
| files.append({"filename": file.filename, "content": content}) | |
| fastapi_url = "http://127.0.0.1:8000/pr-comments" | |
| payload = { | |
| "comment": comment_body, | |
| "files": files | |
| } | |
| response = requests.post(fastapi_url, json=payload) | |
| print(f"FastAPI response: {response.status_code} {response.text}") | |