GitHub CLI: Массовое удаление старых задач

В долгосрочных проектах накапливаются устаревшие задачи: баги для старых версий, фичи, которые уже не актуальны, тестовые тикеты. Ручное удаление - долго и скучно. Этот скрипт автоматически находит и удаляет (или помечает) старые задачи по заданным меткам. 💡 Скрипт использует dry-run по умолчанию - сначала покажет, что будет удалено, без реального удаления. 📦 Скрипт: delete-issues.sh Полный код #!/bin/bash # Удаление старых GitHub Issues по меткам и дате # Использование: ./delete-issues.sh [--execute] set -euo pipefail # === НАСТРОЙКИ === REPO="owner/repo" # Репозиторий в формате owner/repo LABELS='label1,label2,label3' # Метки для фильтрации (через запятую) CUTOFF="2025-12-31T23:59:59Z" # Удалять задачи, созданные ДО этой даты DRY_RUN=true # true = только показать, false = реально удалить # Парсинг аргументов if [[ "${1:-}" == "--execute" ]]; then DRY_RUN=false echo "⚠️ Режим: РЕАЛЬНОЕ УДАЛЕНИЕ" else echo "ℹ️ Режим: DRY RUN (ничего не будет удалено)" fi echo "🔍 Поиск задач в $REPO с метками: $LABELS, созданных до $CUTOFF" echo "---" # Получение и фильтрация задач gh issue list --repo "$REPO" --state all --limit 1000 \ --json number,title,createdAt,labels,url | \ jq -r --arg labels "$LABELS" --arg cutoff "$CUTOFF" ' ($labels | split(",")) as $label_array | .[] | select(.createdAt < $cutoff) | select(.labels | map(.name) | any(. as $l | $label_array | index($l))) | "\(.number)|\(.title)|\(.url)" ' | \ while IFS='|' read -r number title url; do if [[ "$DRY_RUN" == "true" ]]; then echo "[DRY RUN] ##$number - $title" echo " $url" else echo "🗑 Удаление ##$number - $title" gh issue delete "$REPO" "$number" --yes sleep 1 # Небольшая пауза, чтобы не превысить rate limit fi done echo "---" echo "✅ Готово" Установка зависимостей # GitHub CLI # Windows (winget): winget install GitHub.cli # Linux (Ubuntu/Debian): sudo apt install gh # macOS (Homebrew): brew install gh # Авторизация gh auth login # jq (JSON-процессор) # Windows (winget): winget install jq.jq # Linux: sudo apt install jq # macOS: brew install jq Запуск # Сделать скрипт исполняемым chmod +x delete-issues.sh # DRY RUN (безопасный режим - только показать) ./delete-issues.sh # РЕАЛЬНОЕ УДАЛЕНИЕ (добавить флаг --execute) ./delete-issues.sh --execute 🔍 Как это работает Пошаговый разбор Шаг Команда Что делает 1 gh issue list --json ... Получает задачи в формате JSON с полями: номер, заголовок, дата, метки, ссылка 2 jq -r ... Фильтрует: дата < cutoff И есть хотя бы одна из указанных меток 3 while read ... Обрабатывает каждую найденную задачу 4 gh issue delete Удаляет задачу (только если DRY_RUN=false) Логика jq-фильтра ($labels | split(",")) as $label_array | # Разбиваем строку меток в массив .[] | # Для каждой задачи select(.createdAt < $cutoff) | # Только если создана до cutoff select( .labels | map(.name) | # Получаем список имён меток any(. as $l | $label_array | index($l)) # Есть ли совпадение с нашими метками ) | "\(.number)|\(.title)|\(.url)" # Форматируем вывод Почему так: ...

17 мар. 2026 · 5 минут · 889 слов · Potato Energy Team, ponfertato

Git Submodules: Шпаргалка

Подмодуль - это ссылка на другой Git-репозиторий внутри вашего проекта. Удобно, когда нужно использовать внешнюю библиотеку или общий код, но держать его в отдельном репозитории. 💡 Подмодуль хранит не код, а ссылку на конкретный коммит внешнего репозитория. Добавить подмодуль # Добавить репозиторий как подмодуль в указанную папку git submodule add <URL> <путь/куда/положить> # Пример git submodule add https://github.com/luizdepra/hugo-coder.git themes/hugo-coder # Зафиксировать изменения git commit -m "Add submodule: themes/hugo-coder" git push После этого в проекте появятся: ...

16 мар. 2026 · 2 минуты · 359 слов · Potato Energy Team, ponfertato

Git: Установка и настройка

Git - система контроля версий. Сохраняет историю изменений кода, позволяет работать в команде и откатывать ошибки. 💡 Установил один раз - пользуешься годами. Установка Windows Способ 1: Официальный установщик (рекомендуется) Скачай с git-scm.com Запусти установщик, оставляй настройки по умолчанию Важно: на шаге “Adjusting your PATH” выбери Git from the command line and also from 3rd-party software Способ 2: Через Winget (PowerShell) winget install Git.Git Способ 3: Через Chocolatey choco install git -y Linux Ubuntu / Debian ...

16 мар. 2026 · 3 минуты · 1 слово · Potato Energy Team, ponfertato

GPT4Free в 2026: Полный гайд по бесплатному доступу к GPT-5, DeepSeek и Gemini

GPT4Free (g4f) - бесплатный инструмент, который даёт доступ к мощным нейросетям: GPT-4/5, Claude, Gemini, DeepSeek. Работает через обратную инженерию публичных интерфейсов. ⚠️ Важно: Только для обучения и тестов. Может нарушать правила некоторых сервисов. Установка за 2 минуты Что нужно Компьютер с интернетом Python 3.10+ (поставьте галочку “Add to PATH” при установке) Команда установки pip install -U g4f[all] Готово. Библиотека установлена. Запуск Вариант 1: Веб-интерфейс (как чат в браузере) python -m g4f.cli gui --port 8080 Откройте в браузере: http://localhost:8080/chat/ ...

16 мар. 2026 · 2 минуты · 1 слово · Potato Energy Team, ponfertato