Перейти к основному содержимому

Меню команд

Перейти на страницу или искать в каталоге

ИИ-инструменты и скрипты

Проверка гигиены репозитория

Проверяет репозиторий перед push или публикацией: маркеры конфликтов слияния, файлы больше лимита GitHub в 100 МиБ, shell-скрипты с CRLF, имена, ломающие клонирование в Windows и macOS, а также ключи, env-файлы и дампы, которые git все еще отслеживает.

$5.00

Что вы получите: 1 файл · 48.07 KB · ZIP

Варианты покупки

Описание товара

Push не проходит, потому что в последний коммит проскочил файл модели на 120 МиБ. Коллега на Windows клонирует репозиторий, и git останавливается с ошибкой "invalid path 'lib/aux.js'". Контейнер завершается с "exec /entrypoint.sh: no such file or directory", потому что скрипт был закоммичен с окончаниями строк CRLF. Файл .env, указанный в .gitignore, был закоммичен еще до появления этого правила, и каждый форк по-прежнему его получает. Этот навык находит такие ошибки и другие нарушения гигиены репозитория, перечисленные ниже, и объясняет, как исправить каждую из них.

Ваш агент запускает сканер на папке репозитория. Он обходит все файлы, кроме вендорных и сгенерированных папок (node_modules, vendor, dist, build, .venv и подобных), вложенных репозиториев и файлов, игнорируемых .gitignore, и напрямую читает .git/index, не запуская git, чтобы узнать, какие пути отслеживает git и каков их размер. Так он видит два имени, отличающиеся только регистром, или зарезервированное в Windows имя даже в рабочей копии на Windows или macOS, где такие файлы не могут существовать на диске, и так он отличает скрипт, который git хранит с CRLF (реальная проблема), от скрипта, который имеет CRLF только в этой рабочей копии на Windows из-за core.autocrlf (локальная проблема). Он учитывает .gitattributes (text, eol, filter=lfs, conflict-marker-size) и .git/info/exclude. Он никогда не запускает git или код проекта и не использует сеть. Результат: BLOCK, REVIEW или NOT FLAGGED с указанием файла, строки, причины и более безопасного подхода. Содержимое файлов и значения секретов никогда не выводятся.

Что проверяется

BLOCK (исправить до выпуска)

  • R01: конфликты слияния, оставленные в файлах (<<<<<<<, =======, >>>>>>>), но не подчеркивания заголовков и не примеры в блоках кода Markdown
  • R02: файлы больше 100 МиБ, которые не хранятся в Git LFS
  • R03: окончания строк CRLF в shell-скриптах, файлах запуска оболочки, файлах с #! для sh/bash/node и файлах с #! без расширения (bin/deploy, git-хуки), если git хранит их именно так, .gitattributes задает eol=crlf или нет .git/index для сравнения
  • R04: пути, отличающиеся только регистром или Unicode-нормализацией, либо файл, названный как папка в другом регистре (в находке указано, что проект, который никогда не извлекался на Windows или macOS, может их сохранить)
  • R05: имена, которые Windows не может создать: CON, PRN, AUX, NUL, COM1-9, LPT1-9 (а также aux.js, nul.txt), < > : " | ? * \ и управляющие символы, имена, оканчивающиеся пробелом или точкой
  • R06: файлы с учетными данными, которые отслеживает git: приватные SSH-ключи, .ppk, .p12, .pfx, .jks, .keystore, .kdbx, AuthKey_*.p8, приватные ключи PEM, JSON-ключи сервисных аккаунтов, .git-credentials, .netrc, terraform.tfstate, а также env-файлы с секретными значениями, которые названы .local или игнорируются .gitignore (в тестовых папках см. R22)

REVIEW (проверить перед релизом)

  • R11: файлы больше 50 МиБ, которые не хранятся в Git LFS
  • R12: смешанные окончания строк CRLF и LF без правила .gitattributes для файла
  • R13: метка порядка байтов UTF-8 (BOM) в JSON, PHP, shell-скриптах и файлах с #!
  • R14: пути длиннее 200 символов от корня репозитория или имена длиннее 255 байт
  • R15: символические ссылки, указывающие за пределы репозитория
  • R16: файлы .sh без строки #! в первой строке
  • R17: остатки .orig, .rej и файлы _BASE_/_LOCAL_/_REMOTE_/_BACKUP_ от инструментов слияния
  • R18: дампы баз данных и локальные базы данных, которые отслеживает git (.sql.gz, .dump, dump.sql, dump.rdb, .bson, .sqlite3, .mdf)
  • R19: файлы, которые git отслеживает, хотя .gitignore или .git/info/exclude их игнорирует (одна находка на каждую игнорируемую папку)
  • R20: файл LICENSE есть, но SECURITY.md нет ни в корне, ни в docs/, ни в .github/
  • R21: shell-скрипты с CRLF только в этой рабочей копии: git хранит их с LF (core.autocrlf=true в Windows), поэтому push и Linux CI в порядке, а вот сборки WSL и Docker из этой папки нет
  • R22: тестовые ключи и хранилища ключей в папках test, spec и fixtures, а также хранилища доверенных сертификатов (truststore.jks, cacerts): убедитесь, что они нигде не используются в реальной работе

Что входит в комплект

  • Сканер (Python 3.9+, только стандартная библиотека) с модулем чтения формата индекса git (версии 2, 3 и 4, репозитории SHA-1 и SHA-256, разделенные индексы, связанные рабочие деревья)
  • Руководство по правилам с причиной, более безопасным подходом и официальным источником для каждого правила
  • Рискованный и безопасный примеры проекта, а также реальный отчет сканера по рискованному примеру (пример демонстрирует шесть правил; остальным нужно то, что нельзя передать в ZIP, например файл на 100 МиБ, символическая ссылка или папка .git)

Ограничения

Он читает файлы в их текущем состоянии и список отслеживаемых путей в .git/index. История git, другие ветки и хранящиеся объекты не читаются, поэтому файл, удаленный в более позднем коммите, но оставшийся в истории, не будет найден. Без папки .git (скачанный архив исходников) правила об отслеживаемых файлах (R06, R18, R19, R22) не выполняются, а скрипт с CRLF отмечается как R03, поскольку закоммиченную копию невозможно сравнить. Глобальный файл исключений, глобальные атрибуты и режимы файлов, например бит исполнения, не проверяются. Он не ищет секреты в тексте файлов. NOT FLAGGED не является гарантией.

Содержимое

Один ZIP-файл с 28 файлами: SKILL.md, сканер в scripts/ (8 файлов Python), references/rules.md (каждое правило с причиной и более безопасным подходом) и examples/ (19 файлов примеров плюс report.md, реальный вывод сканера по рискованному примеру).

Как использовать: Это навык для агента: папка с файлом SKILL.md и скриптами Python, которые может запускать ИИ-агент для программирования, например Claude Code, Cursor или Codex CLI. Распакуйте его в папку навыков вашего агента (для Claude Code: ~/.claude/skills/), затем попросите агента проверить ваш проект. Скрипты также работают самостоятельно с Python 3.9 или новее, ничего устанавливать не нужно. Они только читают ваши файлы: без доступа к сети, и ничего никуда не отправляется.

Что вы получите

1 файл · 48.07 KB

  • repo-hygiene-check-1.0.0.zipZIP · 48.07 KB
ЛицензияКоммерческое использование разрешено
Проверка пакетаПройдена

Getly открыл загруженные файлы и не нашёл ничего, что помешало бы их открыть. Это не проверка на вирусы и не оценка качества.

Опубликовано12 нояб. 2026 г.
Размер файла48.07 KB
Формат файлаZIP
Версияv1.0

Теги

gitrepositoryhygieneline-endingsdevopsai agent skill
R
RR HH

Частые вопросы

Доступ открывается сразу?

Да. Это цифровой товар - скачать его можно сразу после оплаты, прямо из своей библиотеки.

Можно ли использовать в коммерческих проектах?

Да. Коммерческое использование разрешено: в своём бизнесе и в том, что вы продаёте. Перепродавать и распространять сам файл нельзя.

Какие условия возврата?

Запросить возврат можно в течение 30 дней. Если что-то не так, оформите заявку в своём заказе - её рассмотрит команда Getly.

Какие форматы и размеры файлов я получу?

Вы скачаете 1 файл - ZIP - всего 48.07 KB.

Обновления бесплатны?

Да - когда продавец выпускает новую версию, вы можете бесплатно скачать актуальные файлы из своей библиотеки. Последние изменения смотрите в истории версий.

Цена

$5.00