Sayfulla's blog

pre-commit haqida

pre-commit image

pre-commitni nega ishlatishimiz kerak?

Tasavvur qiling siz jamoa bilan ishlaysiz va kod yozishda ma’lum standartlarga rioya qilasiz. Doimiy ravishda linter/formatterlardan foydalanasiz va har safar kodni push qilishdan oldin bularni tekshirishingiz kerak. Buni avtomatik tarzda bajarish uchun esa pre-commit juda yaxshi yechim. U kodga git commit berishingizdan oldin belgilangan tekshiruvlarni avtomatik bajaradi.

Bularga:

  1. Kodni lintingdan o’tkazish
  2. Avtomatik formatlash (Black, Prettier va hkz…)
  3. Katta hajmli fayllarni tekshirish
  4. Maxfiy kalit yoki parollarni commit qilinishidan saqlash
  5. Kodingiz standartlarga mosligini tekshirish
  6. Unit testlar
  7. Va boshqalar…

To’liqroq vebsaytda: https://pre-commit.com/

pre-commit qanday ishlaydi?

Project folderda .pre-commit-config.yaml fayli bo’ladi va kerakli hooklar/vazifalar yoziladi, har gal git commit yozilganda belgilangan hooklar ishga tushadi.

Basic setup:

  1. Install qilib olamiz:
pip install pre-commit
  1. .pre-commit-config.yaml yaratamiz:
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.5.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-added-large-files

  - repo: https://github.com/psf/black
    rev: 24.3.0
    hooks:
      - id: black

Bu yerda hohlagancha kerakli amallarni qo’shishimiz mumkin.

  1. Git hook uchun install qilamiz:
pre-commit install

Endi har safar git commit qilganingizda hooklar avtomatik ishlaydi.

Support qilinadigan boshqa hooklarni shu yerdan topsangiz bo’ladi: https://pre-commit.com/hooks.html

pre-commitni manual/qo’lda ishlatish

  1. Barcha fayllar uchun:
pre-commit run --all-files
  1. Individual:
pre-commit run <hook_id> --files <filename>

Xulosa

pre-commit — jamoaviy ishlash uchun va doimiy standartlarni ushlab turish uchun yaxshi yechim. U bilan doim mayda kamchiliklarni fix qilib keta olasiz.