Fix cyclic dependency

This commit is contained in:
Ori Kotek
2023-07-25 16:52:18 +03:00
parent 1229fba346
commit 8ae5faca53
4 changed files with 12 additions and 10 deletions

View File

@ -3,6 +3,8 @@ from __future__ import annotations
import logging import logging
from typing import Tuple, Union, Callable, List from typing import Tuple, Union, Callable, List
from github import RateLimitExceededException
from pr_agent.algo import MAX_TOKENS from pr_agent.algo import MAX_TOKENS
from pr_agent.algo.git_patch_processing import convert_to_hunks_with_lines_numbers, extend_patch, handle_patch_deletions from pr_agent.algo.git_patch_processing import convert_to_hunks_with_lines_numbers, extend_patch, handle_patch_deletions
from pr_agent.algo.language_handler import sort_files_by_main_languages from pr_agent.algo.language_handler import sort_files_by_main_languages
@ -10,7 +12,6 @@ from pr_agent.algo.token_handler import TokenHandler
from pr_agent.algo.utils import load_large_diff from pr_agent.algo.utils import load_large_diff
from pr_agent.config_loader import settings from pr_agent.config_loader import settings
from pr_agent.git_providers.git_provider import GitProvider from pr_agent.git_providers.git_provider import GitProvider
from git_provider import RateLimitExceeded
DELETED_FILES_ = "Deleted files:\n" DELETED_FILES_ = "Deleted files:\n"

View File

@ -137,7 +137,3 @@ class IncrementalPR:
self.first_new_commit_sha = None self.first_new_commit_sha = None
self.last_seen_commit_sha = None self.last_seen_commit_sha = None
class RateLimitExceeded(Exception):
"""Raised when the git provider API rate limit has been exceeded."""
pass

View File

@ -3,15 +3,16 @@ from datetime import datetime
from typing import Optional, Tuple from typing import Optional, Tuple
from urllib.parse import urlparse from urllib.parse import urlparse
from github import AppAuthentication, Github, Auth, GithubException from github import AppAuthentication, Auth, Github, GithubException
from git_provider import RateLimitExceeded from retry import retry
from pr_agent.config_loader import settings from pr_agent.config_loader import settings
from .git_provider import FilePatchInfo, GitProvider, IncrementalPR
from ..algo.language_handler import is_valid_file from ..algo.language_handler import is_valid_file
from ..algo.utils import load_large_diff from ..algo.utils import load_large_diff
from retry import retry from .git_provider import FilePatchInfo, GitProvider, IncrementalPR
from ..servers.utils import RateLimitExceeded
class GithubProvider(GitProvider): class GithubProvider(GitProvider):
def __init__(self, pr_url: Optional[str] = None, incremental=IncrementalPR(False)): def __init__(self, pr_url: Optional[str] = None, incremental=IncrementalPR(False)):
@ -79,7 +80,7 @@ class GithubProvider(GitProvider):
return self.file_set.values() return self.file_set.values()
return self.pr.get_files() return self.pr.get_files()
@retry(exceptions=(GithubException.RateLimitExceededException), @retry(exceptions=RateLimitExceeded,
tries=settings.github.ratelimit_retries, delay=2, backoff=2, jitter=(1, 3)) tries=settings.github.ratelimit_retries, delay=2, backoff=2, jitter=(1, 3))
def get_diff_files(self) -> list[FilePatchInfo]: def get_diff_files(self) -> list[FilePatchInfo]:
try: try:

View File

@ -21,3 +21,7 @@ def verify_signature(payload_body, secret_token, signature_header):
if not hmac.compare_digest(expected_signature, signature_header): if not hmac.compare_digest(expected_signature, signature_header):
raise HTTPException(status_code=403, detail="Request signatures didn't match!") raise HTTPException(status_code=403, detail="Request signatures didn't match!")
class RateLimitExceeded(Exception):
"""Raised when the git provider API rate limit has been exceeded."""
pass