ابحث عن كود GitHub مع تصفية regex للنص الكامل، من CLI الخاص بك.
organisation/repository
يتوفر gh-search
كحزمة python عبر pypi.org ويتطلب Python 3.12+
pipx install gh-search
مطلوب رمز وصول شخصي صالح لـ GitHub، مع نطاق repo
، لاسترداد نتائج البحث. يمكن ضبطه على بيئة GITHUB_TOKEN
أو تمريره إلى البرنامج النصي عبر خيار --github-token
.
للبحث في GitHub Enterprise، قم بتعيين GITHUB_API_URL
envvar على نقطة نهاية GitHub v3 API الخاصة بمؤسستك. على سبيل المثال. GITHUB_API_URL=https://github.mycompany.net/api/v3
. يمكنك أيضًا استخدام خيار --github-api-url
لهذا الغرض.
قم بالاستدعاء باستخدام gh-search
وتمرير سلسلة استعلام كوسيطة أولى. على سبيل المثال، للبحث عن كلمة "استخدام" في هذا الريبو:
gh-search usage repo:janeklb/gh-search
لاحظ أن repo:
هو مؤهل بحث مدعوم أصلاً بواسطة واجهة برمجة تطبيقات بحث GitHub. راجع وثائق كود البحث الخاصة بـ GitHub لمعرفة المؤهلات الأخرى المتاحة.
إذا كنت تبحث عن سلسلة محددة غير أبجدية رقمية، فيمكنك استخدام خيارات --regex-content-filter
(أو --content-filter
). يجب دمج ذلك مع استعلام GitHub Search API صالح (والذي سينتج مجموعة النتائج التي سيتم تصفيتها لاحقًا).
على سبيل المثال، إذا كنت تبحث عن متغير special_var
يتم تعيينه على قيمة أحرف تبدأ بالرقم 10
فيمكنك القيام بشيء مثل:
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.
يمكن تحديد القيم الافتراضية للخيارات عبر ملف التكوين. يعتمد موقع هذا الملف على click.get_app_dir
، مع gh-search
كاسم app_name
(على سبيل المثال ~/Library/Application Support/gh-search/config
على نظام MacOS). ستشاهد موقع الملف الدقيق مطبوعًا بجوار نص المساعدة الخاص بـ --config
of gh-search --help
(أو إذا كنت تعمل باستخدام علامة --verbose
).
يجب تحويل أسماء الخيارات إلى حالة الثعبان وفقًا لتسمية معلمة click
.
على سبيل المثال، من أجل تعيين الافتراضي --github-token
و --github-api-url
يمكنك كتابة ما يلي في ملف التكوين الخاص بك (استبدال <PLACE HOLDERS>
وفقًا لذلك):
github_token="<YOUR TOKEN>"
github_api_url="<THE API URL>"
يتحقق gh-search
من حدود الأسعار الخاصة بك وسيطالبك بالمتابعة إذا كان بحثك:
500
طلب API أساسي10%
من حصة واجهة برمجة التطبيقات الأساسية الخاصة بك يتم التحقق فقط من حصة واجهة برمجة التطبيقات الأساسية لأن مرشحات gh-search
يمكن أن تستخدمها بكثرة. لم يتم تحديد حصة واجهة برمجة تطبيقات البحث .
make install-dev
install dev (قم بإعداد البيئة الافتراضية الخاصة بك أولاً)make unit
تشغيل اختبارات الوحدةmake lint
يركض