Skip to content

Latest commit

 

History

History
117 lines (80 loc) · 8.6 KB

README_RU.md

File metadata and controls

117 lines (80 loc) · 8.6 KB

GHP

Просматривайте открытые профили разработчиков GitHub, репозитории и недавнюю активность без входа в систему.

English · 简体中文 · 繁體中文 · Русский · 日本語 · Deutsch · Français · 한국어

Возможности

  • Поиск разработчиков — Имена пользователей, @имя или ссылки на GitHub; открытые профили, подписчики, подписки и дата регистрации.
  • Анализ репозиториев — Все страницы публичных репозиториев, суммы Stars / Forks без форков, распределение основных языков и пять лидеров по Stars.
  • Поиск и фильтры — Поиск по названию, описанию или языку; фильтры форков и архивов; сортировка по Stars, Forks или обновлению. По 20 результатов на странице.
  • Недавняя активность — До 30 публичных событий с раскрываемым списком.
  • Языки и темы — Восемь языков интерфейса и документации API; адаптивный интерфейс для компьютеров и мобильных устройств, системная тема и сохранение светлой / тёмной темы.
  • История и горячие клавиши — Десять последних успешных запросов, очистка истории, ссылки для публикации и /, Enter, Esc.
  • Серверный кеш — Полные результаты на десять минут, объединение одинаковых одновременных запросов, независимая загрузка и повторные запросы профилей, репозиториев и активности.
  • Публичный API — Эндпоинты профилей, репозиториев и активности только для чтения со встроенной документацией.

Статистика использует только публичные данные. Суммы Stars / Forks не включают форки, но включают архивированные репозитории; распределение языков считает репозитории по их основному языку. При неполной загрузке появляется уведомление, а общая статистика скрывается.

Развёртывание

Платформы хостинга

Импортируйте репозиторий на платформу с поддержкой Next.js 16 и динамических Route Handlers, используя следующие настройки:

Настройка Значение
Node.js 24.x
Команда установки npm ci
Команда сборки npm run build
Переменные окружения SITE_URL и необязательный GITHUB_TOKEN

Серверу нужен доступ к https://api.github.com, а эндпоинтам репозиториев — лимит выполнения функции не менее 60 секунд. Проект содержит серверные эндпоинты и не поддерживает развёртывание через статический экспорт на GitHub Pages.

Сервер Node.js

npm ci
npm run build
npm run start

По умолчанию сервер слушает 127.0.0.1:3000; для публичного доступа используйте обратный прокси.

Исходный код

Используйте Node.js 22.12+ (22.x) или 24.x. Рекомендуется Node.js 24, указанный в .nvmrc.

git clone https://github.com/everfu/GHP.git
cd GHP
npm ci
npm run dev

Откройте http://127.0.0.1:3000. Английские URL не имеют языкового префикса; остальные используют /zh, /zh-tw, /de, /ru, /ja, /fr или /ko, например /ru/u/everfu и /ru/docs. При первом посещении язык выбирается по настройкам браузера. Переключение языка сохраняет текущий запрос.

Переменные окружения

При необходимости скопируйте пример конфигурации и перезапустите сервер после изменений:

cp .env.example .env.local
Переменная Описание Поведение по умолчанию
GITHUB_TOKEN Необязательный серверный токен для повышения лимита запросов к API GitHub Если не задан, используется общий лимит IP сервера
SITE_URL Публичный URL сайта с https:// для абсолютных ссылок на изображения для публикаций Используется URL от Vercel или адрес локальной разработки

Для GITHUB_TOKEN нужен только доступ на чтение публичных данных; права на приватные репозитории и запись не требуются. Храните токен на сервере, не добавляйте префикс NEXT_PUBLIC_ и не коммитьте .env.local.

API

После запуска доступна встроенная документация API.

Эндпоинт Данные
GET /api/users/{username} Публичный профиль пользователя
GET /api/users/{username}/repos Публичные репозитории со всех страниц
GET /api/users/{username}/events До 30 последних публичных событий
curl http://127.0.0.1:3000/api/users/everfu
curl http://127.0.0.1:3000/api/users/everfu/repos
curl http://127.0.0.1:3000/api/users/everfu/events

Успешные ответы содержат { data, fetchedAt, complete }. Если загрузка репозиториев прервана после нескольких страниц, ответ содержит доступные данные, complete: false и поле error. Ответы с ошибкой используют { error: { code, retryAt? } }.

Технологии

  • Next.js 16 App Router, React 19, TypeScript
  • Tailwind CSS 4, Motion, Lucide React
  • GitHub REST API, LRU-кеш в памяти процесса
  • Vitest, Playwright, ESLint, Prettier

Разработка и проверки

npm run check
npm run build

# Установите Chromium перед первым запуском браузерных тестов
npx playwright install chromium
npm run test:e2e

CI выполняет проверки и сборку на Node.js 22 / 24, а также регрессионные тесты в браузерах для компьютеров и мобильных устройств. Приглашаем участвовать через Issues и Pull Request.

Благодарности

Благодарим проект next-whois.

Лицензия

Apache License 2.0. Лицензии шрифтов: public/fonts/LICENSE.txt.