Update README.md

This commit is contained in:
2025-02-26 15:25:39 +07:00
parent d6acf632e3
commit baf1723a50
69 changed files with 5525 additions and 0 deletions

90
test_gitea_integration.py Normal file
View File

@ -0,0 +1,90 @@
#!/usr/bin/env python
"""
Test script to verify Gitea integration with Nomad MCP.
This script tests the basic functionality of the Gitea client.
"""
import os
import sys
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 integration with Nomad MCP...")
# 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.")
print("Please configure the Gitea API URL and try again.")
sys.exit(1)
# Check if authentication is configured
gitea_token = os.getenv("GITEA_API_TOKEN")
gitea_username = os.getenv("GITEA_USERNAME")
gitea_password = os.getenv("GITEA_PASSWORD")
if not gitea_token and not (gitea_username and gitea_password):
print("Warning: No authentication configured for Gitea API.")
print("You might not be able to access protected repositories.")
# Initialize the Gitea client
gitea_client = GiteaClient()
# Test listing repositories
print("\nTesting repository listing...")
repositories = gitea_client.list_repositories(limit=5)
if not repositories:
print("No repositories found or error occurred.")
else:
print(f"Found {len(repositories)} repositories:")
for repo in repositories:
print(f" - {repo.get('full_name')}: {repo.get('html_url')}")
# Test parsing repository URLs
print("\nTesting repository URL parsing...")
test_urls = [
f"{gitea_api_url.replace('/api/v1', '')}/username/repo-name",
"http://gitea.internal.example.com/org/project",
"https://gitea.example.com/user/repository",
]
for url in test_urls:
try:
owner, repo = gitea_client.parse_repo_url(url)
print(f" {url} -> Owner: {owner}, Repo: {repo}")
except ValueError as e:
print(f" {url} -> Error: {str(e)}")
# If we have repositories, test getting repository info for the first one
if repositories:
print("\nTesting repository info retrieval...")
first_repo = repositories[0]
repo_url = first_repo.get("html_url")
repo_info = gitea_client.get_repository_info(repo_url)
if repo_info:
print(f"Repository info for {repo_url}:")
print(f" Name: {repo_info.get('name')}")
print(f" Description: {repo_info.get('description')}")
print(f" Default branch: {repo_info.get('default_branch')}")
print(f" Stars: {repo_info.get('stars_count')}")
print(f" Forks: {repo_info.get('forks_count')}")
# Test getting branches
branches = gitea_client.get_repository_branches(repo_url)
if branches:
print(f" Branches: {', '.join([b.get('name') for b in branches])}")
else:
print(" No branches found or error occurred.")
else:
print(f"Error retrieving repository info for {repo_url}")
print("\nGitea integration test completed.")
if __name__ == "__main__":
main()