54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
#!/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() |