Pencarian kode GitHub dengan pemfilteran regex teks lengkap, dari klien Anda.
organisation/repository
gh-search
tersedia sebagai paket python melalui pypi.org dan membutuhkan Python 3.12+
pipx install gh-search
Token akses pribadi GitHub yang valid, dengan cakupan repo
, diperlukan untuk mengambil hasil pencarian. Itu dapat diatur pada envvar GITHUB_TOKEN
atau diteruskan ke skrip melalui opsi --github-token
.
Untuk mencari GitHub Enterprise, atur envvar GITHUB_API_URL
ke titik akhir API GitHub v3 organisasi Anda. misalnya. GITHUB_API_URL=https://github.mycompany.net/api/v3
. Anda juga dapat menggunakan opsi --github-api-url
untuk ini.
Panggil dengan gh-search
dan berikan string kueri sebagai argumen pertama. Misalnya untuk mencari kata "usage" di repo ini:
gh-search usage repo:janeklb/gh-search
Perhatikan bahwa repo:
adalah kualifikasi pencarian yang secara asli didukung oleh GitHub Search API. Lihat dokumentasi kode pencarian GitHub untuk melihat kualifikasi lain yang tersedia.
Jika Anda mencari string non-alfanumerik tertentu, Anda dapat menggunakan opsi --regex-content-filter
(atau --content-filter
). Ini harus dikombinasikan dengan kueri GitHub Search API yang valid (yang akan menghasilkan kumpulan hasil yang selanjutnya akan difilter).
Misalnya jika Anda mencari variabel special_var
yang disetel ke nilai karakter yang dimulai dengan 10
Anda dapat melakukan sesuatu seperti:
gh-search special_var -e " special_var \ s*= \ s*10 "
Usage: gh-search [OPTIONS] QUERY...
QUERY must contain at least one search term, but may also contain search qualifiers
(https://docs.github.com/en/github/searching-for-information-on-github/searching-code)
Options:
--github-token TEXT GitHub Auth Token. Will fall back on GITHUB_TOKEN envvar.
--github-api-url TEXT Override default GitHub API URL. Can also specify via GITHUB_API_URL envvar.
-p, --path-filter TEXT Exclude results whose path (or part of path) does not match this.
-c, --content-filter TEXT Exclude results whose content does not match this.
-e, --regex-content-filter TEXT
Exclude results whose content does not match this regex.
-a, --include-archived Include results from archived repos.
-l, --repos-with-matches Only the names of repos are printed. Equivalent to --output=repo-list
-o, --output TEXT Output style; one of: default, repo-list, json, yaml
-v, --verbose Verbose output.
--help Show this message and exit.
Nilai default untuk opsi dapat ditentukan melalui file konfigurasi. Lokasi file ini didasarkan pada click.get_app_dir
, dengan gh-search
sebagai app_name
(mis. ~/Library/Application Support/gh-search/config
di MacOS). Anda akan melihat lokasi file persisnya tercetak di sebelah teks bantuan dari --config
dari gh-search --help
(atau jika Anda menjalankan dengan tanda --verbose
).
Nama opsi harus diubah menjadi Snake_case sesuai dengan penamaan parameter click
.
Misalnya, untuk menetapkan --github-token
dan --github-api-url
default, Anda akan menulis yang berikut ke file konfigurasi Anda (mengganti <PLACE HOLDERS>
sesuai kebutuhan):
github_token="<YOUR TOKEN>"
github_api_url="<THE API URL>"
gh-search
memeriksa batas tarif Anda dan akan meminta Anda untuk melanjutkan jika pencarian Anda mungkin:
500
permintaan API inti10%
kuota API inti Anda Hanya kuota API inti yang dicentang karena filter gh-search
dapat membuat penggunaannya menjadi berat. Kuota API pencarian tidak dicentang.
make install-dev
install dev dependensi (atur lingkungan virtual Anda sendiri terlebih dahulu)make unit
menjalankan pengujian unitmake lint
menjalankan linter