Перейти до основного вмісту

Меню команд

Перейдіть на сторінку або пошукайте в каталозі

ШІ-інструменти та скрипти

Перевірка гігієни репозиторію

Перевіряє репозиторій перед 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