Update README.md
This commit is contained in:
90
test_gitea_integration.py
Normal file
90
test_gitea_integration.py
Normal 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()
|
Reference in New Issue
Block a user