Об этом проекте
RepositoryScanner — это анализатор аккаунтов GitHub, который использует GitHub API для чтения статистики языков из публичных и приватных репозиториев, а затем экспортирует SVG-карточку с основными языками. Согласно README, API языков GitHub возвращает объем кода в байтах для каждого языка, и проценты на карточке основаны на этих размерах в байтах, а не на количестве строк. Сгенерированная карточка отображает шесть основных языков по общему объему кода и статистику вкладов: общее количество контрибьютов, текущую серию (streak) и самую длинную серию. Инструмент использует тему, вдохновленную Kanagawa paper-ink, и предназначен для автоматического обновления каждую неделю через GitHub Actions.
Рекомендуемая настройка заключается в том, чтобы форкнуть репозиторий, создать персональный токен доступа GitHub с областями repo и read:user (или public_repo, если важны только публичные репозитории), добавить секреты репозитория для GH_TOKEN, GITHUB_USERNAME и, по желанию, EXCLUDED_LANGS, а затем один раз вручную запустить рабочий процесс Update Language Stats. Файл рабочего процесса находится по адресу .github/workflows/update-chart.yaml и настроен на запуск еженедельно по воскресеньям в 00:00 UTC, фиксацию обновленного файла assets/languages.svg в ветку main, а также поддерживает запуск по требованию. Расписание можно изменить, отредактировав строку cron в этом файле. Полученный SVG можно встроить в профильный README, используя URL raw.githubusercontent.com с необязательным параметром запроса, таким как ?v=1, для обхода кэширования браузера.
Для локальной разработки в README рекомендуется Python 3.10+ (предпочтительно 3.11). Основными зависимостями являются requests и python-dotenv. Конфигурация может быть предоставлена через файл .env или переменные окружения оболочки. Запуск python scripts/fetch_languages.py из корня репозитория генерирует assets/languages.svg. Цветовая палитра Kanagawa и цвета для каждого языка определены в scripts/colors.py, а детали разметки SVG обрабатываются внутри scripts/fetch_languages.py. В README также отмечается, что GITHUB_USERNAME является основной переменной, но USERNAME поддерживается для обратной совместимости. Если GH_TOKEN не установлен, анализируются только публичные репозитории и применяются лимиты GitHub для неавторизованных запросов.
Примечания по безопасности и конфиденциальности гласят, что инструмент использует GitHub API для чтения списка репозиториев и статистики языков по каждому репозиторию, но не читает фактическое содержимое кода. Токены считываются из локального .env или переменных окружения при локальной разработке и из GitHub Secrets для Actions; их никогда нельзя коммитить. Разделы по поиску и устранению неисправностей охватывают ошибки 401 Unauthorized и API, отсутствие данных о языках из-за отфильтрованных форков, исключенных языков, прав доступа токена или лимитов запросов, а также случаи, когда рабочие процессы не запускаются из-за отключенных Actions, неверного пути к workflow, невалидного YAML или отсутствия изменений в ожидаемой ветке. Проект распространяется под лицензией MIT; указано, что он был вдохновлен anuraghazra/github-readme-stats, а цветовая тема Kanagawa основана на rebelot/kanagawa-paper.nvim.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.