Spaces:
Runtime error
Runtime error
import time | |
import traceback | |
from functools import lru_cache | |
from os import environ as env | |
from os import listdir | |
from typing import List | |
import requests | |
from codedog_demo.github_utils import parse_github_pr_url | |
codedog_api = env.get("CODEDOG_API_URL", "") | |
github_token = env.get("GITHUB_TOKEN", "") | |
sample_names = [] | |
sample_contents = [] | |
for file in listdir("samples"): | |
sample_names.append(file.replace("@", "/")) | |
with open("samples/" + file, "r") as f: | |
sample_contents.append(f.read()) | |
def request_pr_review(url: str): | |
try: | |
repo, pr_number = parse_github_pr_url(url) | |
if not repo or not pr_number: | |
return "Invalid URL. Accept format is: https://www.github.com/{owner}/{repository}/pull/{pr_number}", "" | |
result = _request_pr_review(repo, pr_number, ttl_hash=get_ttl_hash()) | |
except Exception: | |
traceback.print_exc() | |
return "Something went wrong. Please try again later.", "" | |
return result, result | |
def _request_pr_review(repo: str, pr_number: int, ttl_hash=None): | |
response = requests.post( | |
codedog_api, json={"repository": repo, "pull_request_number": pr_number, "token": github_token} | |
) | |
result = response.text | |
if len(result) < 100: | |
if result == "stream timeout": | |
raise ValueError("Timeout") | |
print(f"Error result: {result}") | |
raise ValueError() | |
return result | |
def get_ttl_hash(seconds=120): | |
"""Return the same value withing `seconds` time period""" | |
return round(time.time() / seconds) | |
def get_sample_choices() -> List[str]: | |
return sample_names | |
def show_sample(idx: int) -> str: | |
return sample_contents[idx] | |