#!/usr/bin/env python """ Test script to list all accessible Gitea repositories grouped by owner. This will show both personal and organization repositories. """ import os import sys from collections import defaultdict from dotenv import load_dotenv from app.services.gitea_client import GiteaClient # Load environment variables from .env file load_dotenv() def main(): print("Testing Gitea Repository Access for Personal and Organization Accounts...") # Check if Gitea API URL is configured gitea_api_url = os.getenv("GITEA_API_URL") if not gitea_api_url: print("Error: GITEA_API_URL is not configured in .env file.") sys.exit(1) # Initialize the Gitea client gitea_client = GiteaClient() # Get all repositories (increase limit if you have many) repositories = gitea_client.list_repositories(limit=100) if not repositories: print("No repositories found or error occurred.") sys.exit(1) # Group repositories by owner owners = defaultdict(list) for repo in repositories: owner_name = repo.get('owner', {}).get('login', 'unknown') owners[owner_name].append(repo) # Display repositories grouped by owner print(f"\nFound {len(repositories)} repositories across {len(owners)} owners:") for owner, repos in owners.items(): print(f"\n== {owner} ({len(repos)} repositories) ==") for repo in repos: print(f" - {repo.get('name')}: {repo.get('html_url')}") print(f" Description: {repo.get('description') or 'No description'}") print(f" Default branch: {repo.get('default_branch')}") print("\nTest completed successfully.") if __name__ == "__main__": main()