Idealnya, kait ditulis dalam bash, jika Anda mengikuti file sampel. Tetapi Anda dapat menulisnya dalam bahasa apa pun yang tersedia, dan pastikan bendera tersebut memiliki tanda executable.
Jadi, Anda dapat menulis kode Python atau Go untuk mencapai tujuan Anda, dan letakkan di bawah folder hooks. Ini akan berfungsi, tetapi tidak akan dikelola bersama dengan repositori.
Dua pilihan
a) Multi Script
Anda dapat memberi kode pada kait di dalam bantuan Anda, dan menambahkan sebagian kecil kode ke kait, untuk memanggil skrip sempurna Anda, seperti ini:
$ cat .git/hooks/pre-commit
#!/bin/bash
../../hooks/myprecommit.js
b) Naskah Tunggal
Opsi yang lebih keren adalah menambahkan hanya satu skrip untuk mengatur semuanya, bukan beberapa skrip. Jadi, Anda membuat kait / mysuperhook.go dan arahkan setiap kait yang Anda inginkan.
$ cat .git/hooks/pre-commit
#!/bin/bash
../../hooks/mysuperhook.go $(basename $0)
Parameter akan memberikan skrip yang dipicu oleh skrip Anda, dan Anda dapat membedakannya di dalam kode Anda. Mengapa? Kadang-kadang Anda mungkin ingin menjalankan cek yang sama untuk komit dan push, misalnya.
Lalu?
Kemudian, Anda mungkin ingin memiliki fungsionalitas lebih lanjut, seperti:
- Trigger hook secara manual untuk memeriksa apakah semuanya baik-baik saja bahkan sebelum komit atau dorong. Jika Anda hanya memanggil skrip Anda (opsi a atau b) akan melakukan trik.
- Trigger the hooks pada CI, jadi Anda tidak perlu menulis ulang cek yang sama untuk CI, itu hanya akan memanggil komit dan mendorong pemicu, misalnya. Sama seperti di atas harus menyelesaikannya.
- Panggil alat eksternal, seperti validator penurunan harga, atau validator YAML. Anda dapat membuat syscalls dan perlu menangani STDOUT dan STDERR.
- Pastikan semua pengembang memiliki cara sederhana untuk memasang kait, jadi skrip yang bagus perlu ditambahkan ke repositori untuk mengganti kait default dengan yang benar
- Minta bantuan global, seperti cek untuk memblokir komit untuk mengembangkan dan menguasai cabang, tidak harus menambahkannya ke setiap repositori. Anda dapat menyelesaikannya dengan memiliki repositori lain dengan skrip global.
Bisakah ini lebih sederhana?
Ya, ada beberapa alat untuk membantu Anda mengelola git-hooks. Masing-masing dirancang untuk mengatasi masalah dari perspektif yang berbeda, dan Anda mungkin perlu memahami semuanya untuk mendapatkan yang terbaik untuk Anda atau tim Anda. GitHooks.com menawarkan banyak bacaan tentang mengait, dan beberapa alat tersedia saat ini.
Sampai hari ini, ada 21 proyek yang terdaftar di sana dengan berbagai strategi untuk mengelola kait git. Beberapa hanya melakukannya untuk satu kait, beberapa untuk bahasa tertentu, dan sebagainya.
Salah satu alat itu, yang ditulis oleh saya dan ditawarkan secara gratis sebagai proyek opensource, disebut hooks4git . Itu ditulis dalam Python (karena saya suka) tetapi idenya adalah untuk menangani semua item yang tercantum di atas dalam file konfigurasi tunggal bernama .hooks4git.ini, yang hidup di dalam repositori Anda dan dapat memanggil skrip apa pun yang ingin Anda panggil, dalam bahasa apa pun .
Menggunakan kait git benar-benar fantastis, tetapi cara mereka ditawarkan biasanya hanya membuat orang menjauh darinya.