GitHub Tech Scanner
claude-access/github-tech-scannerИнструмент для инвентаризации технологического стека: сканирует доступные GitHub-репозитории через PAT и формирует отчёт по языкам и фреймворкам с процентами, счётчиками репозиториев и версиями. Работает как CLI-скрипт и как Claude Code skill.
Установка
pip install -r requirements.txtREADME
github-tech-scanner
Сканирует все активные GitHub-репозитории, доступные через Personal Access Token (PAT), и формирует полную инвентаризацию каждого языка и фреймворка в использовании — с количеством репозиториев, процентным соотношением байт и информацией о версиях там, где это доступно.
Работает как самостоятельный CLI-скрипт, так и как Claude Code skill.
Использование
Самостоятельный запуск
pip install -r requirements.txt
python scripts/scan_repos.py --token <YOUR_PAT> --verboseФлаги
| Флаг | По умолчанию | Описание |
|---|---|---|
--token, -t | $GITHUB_TOKEN | GitHub Personal Access Token |
--org, -o | (все доступные) | Ограничить сканирование конкретной организацией (например, my-company) |
--active-days, -d | 365 | Включать только репозитории с пушем за указанное количество дней |
--show-repos | выкл | Показывать, какие репозитории используют каждый язык/фреймворк |
--json | выкл | Выводить сырой JSON вместо форматированного отчёта |
--verbose, -v | выкл | Выводить прогресс в stderr во время сканирования |
Примеры
# Сканировать всё, к чему есть доступ у токена
python scripts/scan_repos.py --token ghp_xxx --verbose
# Сканировать только одну организацию
python scripts/scan_repos.py --token ghp_xxx --org my-company
# Последние 6 месяцев, показать какие репозитории используют каждую технологию
python scripts/scan_repos.py --token ghp_xxx --active-days 180 --show-repos
# JSON-вывод для дальнейшей обработки
python scripts/scan_repos.py --token ghp_xxx --json | jq '.language_bytes'Что обнаруживается
Языки
Использует нативный эндпоинт GitHub /repos/{owner}/{repo}/languages — возвращает количество байт на язык, которые агрегируются в проценты по всем активным репозиториям.
Фреймворки (через файлы манифестов)
| Файл | Обнаруживаемые экосистемы |
|---|---|
package.json | React, Vue, Angular, Next.js, Express, NestJS, Vite, Prisma, … |
requirements.txt | Django, Flask, FastAPI, PyTorch, LangChain, Anthropic SDK, … |
pyproject.toml | То же, что выше (форматы PEP 621 и Poetry) |
Gemfile | Rails, Sinatra, Sidekiq, Devise, … |
go.mod | Gin, Echo, Fiber, GORM, Chi, … |
pom.xml | Spring Boot, Quarkus, Hibernate, Kafka, … |
build.gradle | Spring Boot, Ktor, Micronaut, … |
composer.json | Laravel, Symfony, Doctrine, … |
Cargo.toml | Actix Web, Axum, Tokio, Tauri, Leptos, … |
pubspec.yaml | Flutter, Riverpod, Firebase, … |
Пример вывода
============================================================
GitHub Tech Stack Report — @username
============================================================
Repos scanned: 42 active (of 87 total, active = pushed within 365 days)
── Languages ────────────────────────────────────────────
TypeScript 41.2% ████████ (18 repos)
Python 28.5% █████ (12 repos)
JavaScript 15.3% ███ (9 repos)
── Frameworks & Libraries ───────────────────────────────
React (11 repos) [18.1.0, 18.2.0]
Django (6 repos) [4.2.0]
Express (5 repos)
============================================================
Требования к токену
| Цель | Необходимые права |
|---|---|
| Только публичные репозитории | Права не нужны |
| Приватные репозитории | repo (классический PAT) или Contents: read + Metadata: read (тонко настроенный PAT) |
| Репозитории организации | То же, что выше; токен должен быть авторизован для организации (SSO при необходимости) |
| Создание репозиториев в организации | repo + write:org (классический PAT) |
Создать токен можно по пути: GitHub → Settings → Developer settings → Personal access tokens
Использование как Claude Code skill
Репозиторий структурирован как Claude Code skill. Для установки поместите директорию в ~/.claude/skills/ — Claude Code подхватит её автоматически.
Лицензия
MIT — см. LICENSE.