mirror of
https://github.com/suyu-emu/drippu-rep.git
synced 2026-09-21 14:44:58 -07:00
65 lines
2.4 KiB
Python
65 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Simple test script to verify Forgejo API connection
|
||
"""
|
||
|
||
import sys
|
||
|
||
import requests
|
||
|
||
|
||
def test_forgejo_api():
|
||
"""Test basic connection to Forgejo API"""
|
||
url = "https://git.suyu.dev/api/v1/repos/suyu/suyu/issues"
|
||
|
||
print(f"Testing connection to: {url}")
|
||
|
||
try:
|
||
# First attempt - this might include authentication if available
|
||
response = requests.get(url, params={"per_page": 1}, timeout=10)
|
||
|
||
if response.status_code == 200:
|
||
issues = response.json()
|
||
print(f"✅ Connection successful! Found {len(issues)} issue(s)")
|
||
if issues:
|
||
print(f"Sample issue: {issues[0].get('title', 'N/A')}")
|
||
return True
|
||
elif response.status_code == 403:
|
||
print("⚠️ 403 Forbidden: Trying without authentication...")
|
||
# Try without authentication for public repos (same logic as main script)
|
||
# Make a completely fresh request without any headers
|
||
try:
|
||
response = requests.get(url, params={"per_page": 1}, timeout=10)
|
||
if response.status_code == 200:
|
||
issues = response.json()
|
||
print(f"✅ Connection successful without auth! Found {len(issues)} issue(s)")
|
||
if issues:
|
||
print(f"Sample issue: {issues[0].get('title', 'N/A')}")
|
||
return True
|
||
else:
|
||
print(f"❌ Still failed without auth: HTTP {response.status_code}")
|
||
print(f"Response: {response.text[:200]}...") # Show first 200 chars
|
||
return False
|
||
except Exception as e:
|
||
print(f"❌ Failed without auth: {e}")
|
||
return False
|
||
else:
|
||
print(f"❌ HTTP {response.status_code}: {response.text[:200]}...")
|
||
return False
|
||
|
||
except Exception as e:
|
||
print(f"❌ Connection failed: {e}")
|
||
return False
|
||
|
||
if __name__ == "__main__":
|
||
success = test_forgejo_api()
|
||
if success:
|
||
print("\n🎉 Test completed successfully!")
|
||
else:
|
||
print("\n💥 Test failed - but this might be expected for private repositories")
|
||
print("ℹ️ The main sync workflow has additional logic to handle authentication")
|
||
|
||
# Always exit with success code since 403 is an expected scenario
|
||
# The actual workflow will handle this gracefully
|
||
sys.exit(0)
|