FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

ovaomnis/cvier: Automatic github analyser to prepeare data for your cv · GitHub

/ cvier Public

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub PR Fetcher

Мощный CLI инструмент для получения и экспорта pull requests из организаций и репозиториев GitHub.

Возможности

  • 🔍 Интерактивный режим - пошаговый выбор организации, репозиториев и фильтров
  • 💻 CLI режим - быстрое получение PR через командную строку
  • 📊 Множественные форматы экспорта - JSON, CSV, Markdown
  • 🚀 Batch режим - получение PR из нескольких репозиториев одновременно
  • Rate limit handling - автоматическая обработка лимитов GitHub API
  • 📈 Статистика - автоматический подсчет и экспорт статистики по PR
  • 🎨 Красивый вывод - использование Rich для красивого терминального интерфейса
  • 🤖 AI-powered Resume - автоматическая генерация резюме из PR с помощью Groq AI

Установка

1. Клонировать репозиторий

git clone <repository-url>
cd cvier

2. Установить зависимости

pip install -r requirements.txt

Или установить пакет:

pip install -e .

3. Настроить GitHub токен

Создайте .env файл из примера:

cp .env.example .env

Отредактируйте .env и добавьте ваши токены:

GITHUB_TOKEN=your_github_token_here
GROQ_API_KEY=your_groq_api_key_here  # Для AI-powered resume

Создание GitHub токена:

  1. Перейдите на https://github.com/settings/tokens
  2. Создайте новый Personal Access Token
  3. Выберите scope repo (для доступа к приватным репозиториям)
  4. Скопируйте токен в .env файл

Создание Groq API ключа (для AI функций):

  1. Перейдите на https://console.groq.com/keys
  2. Создайте новый API key
  3. Скопируйте ключ в .env файл

Использование

Интерактивный режим (рекомендуется)

Запустите инструмент в интерактивном режиме для пошагового выбора:

python -m src.cli interactive

Или после установки:

gh-pr-fetch interactive

Пошаговый процесс:

  1. Аутентификация с GitHub токеном
  2. Выбор организации из списка
  3. Выбор одного или нескольких репозиториев
  4. Настройка фильтров (статус PR, даты)
  5. Выбор формата экспорта
  6. Указание директории для сохранения

CLI режим

Получить PR из конкретного репозитория:

python -m src.cli fetch ORGANIZATION_NAME --repo REPO_NAME

Получить все PR из всех репозиториев организации:

python -m src.cli fetch ORGANIZATION_NAME

Опции CLI режима

  • --repo, -r - Название репозитория (опционально, без него получает из всех репо)
  • --author, -a - Автор PR (по умолчанию - текущий пользователь)
  • --state, -s - Статус PR: all, open, closed (по умолчанию: all)
  • --format, -f - Формат экспорта: json, csv, markdown, all (по умолчанию: json)
  • --output, -o - Директория для сохранения (по умолчанию: ./github_prs)
  • --token, -t - GitHub токен (если не указан, берется из .env)

Примеры

Получить все закрытые PR из конкретного репо:

python -m src.cli fetch my-org --repo my-repo --state closed --format all

Получить PR конкретного автора из всех репо организации:

python -m src.cli fetch my-org --author username --format csv

Экспорт в Markdown с кастомной директорией:

python -m src.cli fetch my-org --repo my-repo --format markdown --output ./exports

Проверка rate limit

Проверить текущий статус лимитов GitHub API:

python -m src.cli rate-limit

Форматы экспорта

JSON

Создает:

  • Отдельный JSON файл для каждого PR (pr_123.json)
  • summary.json с метаданными и статистикой

CSV

Создает:

  • pull_requests.csv для каждого репозитория
  • all_pull_requests.csv (для множественных репо) - объединенный файл

Колонки: номер PR, заголовок, статус, автор, даты, ссылки, labels и т.д.

Markdown

Создает:

  • pull_requests.md для каждого репозитория с детальной информацией
  • README.md (для множественных репо) - индекс со статистикой

AI-Powered Resume Generator 🤖

Автоматическая генерация профессионального резюме на основе анализа ваших PR с помощью Groq AI.

Как это работает:

  1. Скачайте PR данные (не тратит rate limit при повторном использовании):
poetry run gh-pr-fetch fetch my-org --repo my-repo --state merged --since 2024-01-01
  1. Сгенерируйте резюме с AI:
poetry run gh-pr-fetch analyze ./github_prs/my-org/my-repo

Возможности:

  • 📋 Кастомные поля - вы указываете какие поля нужно заполнить
  • 🧠 AI анализ - Groq AI (Llama 3.3 70B) анализирует PR и заполняет поля
  • 📊 Батчинг - обработка PR батчами по 15 штук (избегает лимитов токенов)
  • 💾 Локальные данные - работает с уже скачанными PR (не тратит GitHub API)
  • 📄 YAML/JSON вывод - структурированный формат

Примеры использования:

Базовый анализ с дефолтными полями:

poetry run gh-pr-fetch analyze ./github_prs/my-org/my-repo

С кастомными полями:

poetry run gh-pr-fetch analyze ./github_prs/my-org/my-repo \
  --fields "Key Achievements,Technologies,Projects,Bug Fixes" \
  --output my-resume.yaml

Анализ всей организации (рекурсивно):

poetry run gh-pr-fetch analyze ./github_prs/my-org \
  --recursive \
  --batch-size 20 \
  --format json \
  --output org-summary.json

Формат вывода (YAML):

metadata:
  total_prs: 45
  analyzed_at: "2025-09-30T22:00:00"

fields:
  Key Achievements:
    - Implemented JWT authentication system (PR #123, #145)
    - Migrated database to PostgreSQL (PR #167)
    - Reduced API response time by 40% (PR #189)

  Technologies Used:
    - Python, FastAPI, SQLAlchemy
    - PostgreSQL, Redis
    - Docker, Kubernetes

  Projects Completed:
    - User Authentication Module (3 PRs)
    - Payment Integration (5 PRs)
    - Admin Dashboard (8 PRs)

summary: |
  During Q4 2024, focused primarily on backend infrastructure
  improvements and new feature development. Successfully delivered
  authentication system, payment integration, and significantly
  improved performance. Made substantial contributions across 3
  repositories with 45 merged PRs.

Workflow:

  1. Скачать PR один раз → 2. Генерировать резюме многократно с разными полями

Структура проекта

cvier/
├── src/
│   ├── __init__.py
│   ├── cli.py           # CLI entry point с Typer
│   ├── github_api.py    # GitHub API client
│   ├── config.py        # Configuration management
│   ├── exporters.py     # JSON/CSV/Markdown exporters
│   ├── local_loader.py  # Load PRs from local files
│   └── ai_analyzer.py   # Groq AI analyzer with batching
├── .env.example         # Пример конфигурации
├── .gitignore
├── pyproject.toml       # Poetry dependencies
└── README.md           # Документация

Структура экспортированных данных

github_prs/
└── organization-name/
    ├── repo-1/
    │   ├── pr_1.json
    │   ├── pr_2.json
    │   ├── summary.json
    │   ├── pull_requests.csv
    │   └── pull_requests.md
    ├── repo-2/
    │   └── ...
    ├── all_pull_requests.csv  # Объединенный CSV
    └── README.md              # Индекс с статистикой

Технологии

  • Typer - Современный CLI framework с type hints
  • Rich - Красивый терминальный вывод
  • Requests - HTTP клиент для GitHub API
  • Python-dotenv - Управление переменными окружения
  • Groq - AI-powered анализ через Groq API (Llama 3.3 70B)
  • PyYAML - Экспорт в YAML формат

Требования

  • Python 3.8.1+
  • GitHub Personal Access Token с правами repo
  • Groq API Key (бесплатный tier доступен на https://console.groq.com)

Лицензия

MIT

Автор

Adil Ibraliev (adue)

Поддержка

При возникновении проблем:

  1. Проверьте, что токен имеет правильные права (repo)
  2. Проверьте rate limit: python -m src.cli rate-limit
  3. Используйте интерактивный режим для отладки

Made with ❤️ by adue

About

Automatic github analyser to prepeare data for your cv

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages


Back | FazBrowse Home | New Git URL