mirror of
https://github.com/All-Hands-AI/OpenHands.git
synced 2026-01-08 22:38:05 -05:00
Fix excessive error logging for missing org-level microagents (#11425)
Co-authored-by: openhands <openhands@all-hands.dev>
This commit is contained in:
@@ -449,7 +449,10 @@ class ProviderHandler:
|
||||
return f'{provider.value}_token'.lower()
|
||||
|
||||
async def verify_repo_provider(
|
||||
self, repository: str, specified_provider: ProviderType | None = None
|
||||
self,
|
||||
repository: str,
|
||||
specified_provider: ProviderType | None = None,
|
||||
is_optional: bool = False,
|
||||
) -> Repository:
|
||||
errors = []
|
||||
|
||||
@@ -468,19 +471,22 @@ class ProviderHandler:
|
||||
errors.append(f'{provider.value}: {str(e)}')
|
||||
|
||||
# Log detailed error based on whether we had tokens or not
|
||||
# For optional repositories (like org-level microagents), use debug level
|
||||
log_fn = logger.debug if is_optional else logger.error
|
||||
|
||||
if not self.provider_tokens:
|
||||
logger.error(
|
||||
log_fn(
|
||||
f'Failed to access repository {repository}: No provider tokens available. '
|
||||
f'provider_tokens dict is empty.'
|
||||
)
|
||||
elif errors:
|
||||
logger.error(
|
||||
log_fn(
|
||||
f'Failed to access repository {repository} with all available providers. '
|
||||
f'Tried providers: {list(self.provider_tokens.keys())}. '
|
||||
f'Errors: {"; ".join(errors)}'
|
||||
)
|
||||
else:
|
||||
logger.error(
|
||||
log_fn(
|
||||
f'Failed to access repository {repository}: Unknown error (no providers tried, no errors recorded)'
|
||||
)
|
||||
raise AuthenticationError(f'Unable to access repo {repository}')
|
||||
@@ -626,17 +632,22 @@ class ProviderHandler:
|
||||
f'Microagent file {file_path} not found in {repository}'
|
||||
)
|
||||
|
||||
async def get_authenticated_git_url(self, repo_name: str) -> str:
|
||||
async def get_authenticated_git_url(
|
||||
self, repo_name: str, is_optional: bool = False
|
||||
) -> str:
|
||||
"""Get an authenticated git URL for a repository.
|
||||
|
||||
Args:
|
||||
repo_name: Repository name (owner/repo)
|
||||
is_optional: If True, logs at debug level instead of error level when repo not found
|
||||
|
||||
Returns:
|
||||
Authenticated git URL if credentials are available, otherwise regular HTTPS URL
|
||||
"""
|
||||
try:
|
||||
repository = await self.verify_repo_provider(repo_name)
|
||||
repository = await self.verify_repo_provider(
|
||||
repo_name, is_optional=is_optional
|
||||
)
|
||||
except AuthenticationError:
|
||||
raise Exception('Git provider authentication issue when getting remote URL')
|
||||
|
||||
|
||||
@@ -747,6 +747,7 @@ fi
|
||||
self.provider_handler.get_authenticated_git_url,
|
||||
GENERAL_TIMEOUT,
|
||||
org_openhands_repo,
|
||||
is_optional=True,
|
||||
)
|
||||
except AuthenticationError as e:
|
||||
self.log(
|
||||
|
||||
Reference in New Issue
Block a user