before add feature v - verbose

This commit is contained in:
2025-10-18 22:40:07 +06:00
parent 01f8adc979
commit c57d981804
6 changed files with 658 additions and 52 deletions

81
shell-code/test_api.py Normal file
View File

@@ -0,0 +1,81 @@
#!/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()