Unclear error when accessing private repository branches without permissions
Description
The get_branch_list function in github_service.py doesn't properly handle the case where a user tries to access a private repository without the necessary permissions.
Currently, when a user attempts to fetch branches from a private repository they don't have access to, the function returns a generic 404 error with "Repository not found or error fetching branches" message. This doesn't distinguish between repositories that don't exist and those that exist but are private and inaccessible.
Expected Behavior
The function should detect private repositories that the user doesn't have access to and return a more specific error message, such as a 403 Forbidden with a clear message that the repository exists but the user doesn't have sufficient permissions.
Current Behavior
The function returns a generic 404 error for both non-existent repositories and private repositories without access.
Code Location
app/modules/code_provider/github/github_service.py - get_branch_list method
Suggested Fix
Modify the get_branch_list method to catch specific GitHub API exceptions that indicate permission issues and return appropriate 403 responses with clear error messages.