mirror of
https://github.com/Direct-Dev-Ru/go-lcg.git
synced 2025-11-16 09:39:56 +00:00
82 lines
2.7 KiB
Python
82 lines
2.7 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Скрипт для тестирования GitHub API
|
||
Использование: GITHUB_TOKEN=your_token python3 test_api.py
|
||
"""
|
||
|
||
import os
|
||
import sys
|
||
import requests
|
||
|
||
# Цвета
|
||
class Colors:
|
||
RED = '\033[0;31m'
|
||
GREEN = '\033[0;32m'
|
||
YELLOW = '\033[1;33m'
|
||
NC = '\033[0m'
|
||
|
||
def log(message):
|
||
print(f"{Colors.GREEN}[INFO]{Colors.NC} {message}")
|
||
|
||
def error(message):
|
||
print(f"{Colors.RED}[ERROR]{Colors.NC} {message}")
|
||
|
||
def main():
|
||
REPO = "direct-dev-ru/go-lcg"
|
||
|
||
token = os.getenv('GITHUB_TOKEN')
|
||
if not token:
|
||
error("GITHUB_TOKEN не установлен")
|
||
sys.exit(1)
|
||
|
||
session = requests.Session()
|
||
session.headers.update({
|
||
'Authorization': f'token {token}',
|
||
'Accept': 'application/vnd.github.v3+json'
|
||
})
|
||
|
||
print("=== ТЕСТИРОВАНИЕ GITHUB API ===")
|
||
|
||
# Тест 1: Проверка доступа к репозиторию
|
||
print("1. Проверка доступа к репозиторию...")
|
||
response = session.get(f"https://api.github.com/repos/{REPO}")
|
||
|
||
if response.status_code == 200:
|
||
repo_data = response.json()
|
||
print(f"✅ Доступ к репозиторию есть")
|
||
print(f" Репозиторий: {repo_data['full_name']}")
|
||
print(f" Описание: {repo_data.get('description', 'Нет описания')}")
|
||
else:
|
||
print(f"❌ Ошибка доступа: {response.status_code}")
|
||
print(f" Ответ: {response.text}")
|
||
|
||
# Тест 2: Проверка прав
|
||
print("\n2. Проверка прав...")
|
||
if response.status_code == 200:
|
||
permissions = repo_data.get('permissions', {})
|
||
if permissions.get('admin'):
|
||
print("✅ Есть права администратора")
|
||
elif permissions.get('push'):
|
||
print("✅ Есть права на запись")
|
||
else:
|
||
print("❌ Недостаточно прав для создания релизов")
|
||
|
||
# Тест 3: Последние релизы
|
||
print("\n3. Последние релизы:")
|
||
releases_response = session.get(f"https://api.github.com/repos/{REPO}/releases")
|
||
|
||
if releases_response.status_code == 200:
|
||
releases = releases_response.json()
|
||
if releases:
|
||
for release in releases[:5]:
|
||
print(f" - {release['tag_name']} ({release['name']})")
|
||
else:
|
||
print(" Релизов пока нет")
|
||
else:
|
||
print(f" Ошибка получения релизов: {releases_response.status_code}")
|
||
|
||
print("\n=== ТЕСТ ЗАВЕРШЕН ===")
|
||
|
||
if __name__ == "__main__":
|
||
main()
|