ค้นหาโค้ด GitHub พร้อมการกรอง regex ข้อความแบบเต็มจาก cli ของคุณ
organisation/repository
gh-search
มีให้บริการเป็นแพ็คเกจ python ผ่าน pypi.org และต้องใช้ Python 3.12+
pipx install gh-search
ต้องใช้โทเค็นการเข้าถึงส่วนบุคคล GitHub ที่ถูกต้องพร้อมขอบเขต repo
เพื่อดึงผลการค้นหา สามารถตั้งค่าบน envvar GITHUB_TOKEN
หรือส่งผ่านไปยังสคริปต์ผ่านตัวเลือก --github-token
หากต้องการค้นหา GitHub Enterprise ให้ตั้งค่า GITHUB_API_URL
envvar เป็นจุดสิ้นสุด API ของ GitHub v3 ขององค์กรของคุณ เช่น GITHUB_API_URL=https://github.mycompany.net/api/v3
คุณยังสามารถใช้ตัวเลือก --github-api-url
สำหรับสิ่งนี้
เรียกใช้ด้วย gh-search
และส่งสตริงการสืบค้นเป็นอาร์กิวเมนต์แรก ตัวอย่างเช่น หากต้องการค้นหาคำว่า "usage" ใน repo นี้:
gh-search usage repo:janeklb/gh-search
โปรดทราบว่า repo:
เป็นตัวระบุการค้นหาที่ GitHub Search API รองรับ ดูเอกสารโค้ดการค้นหาของ 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
ของ gh-search --help
(หรือถ้าคุณรันโดยใช้แฟล็ก --verbose
)
ชื่อตัวเลือกจะต้องถูกแปลงเป็น Snake_case ตามการตั้งชื่อพารามิเตอร์ของ click
ตัวอย่างเช่น ในการตั้งค่าเริ่มต้น --github-token
และ --github-api-url
คุณจะต้องเขียนสิ่งต่อไปนี้ลงในไฟล์ปรับแต่งของคุณ (แทนที่ <PLACE HOLDERS>
ตามลำดับ):
github_token="<YOUR TOKEN>"
github_api_url="<THE API URL>"
gh-search
ตรวจสอบขีดจำกัดอัตราของคุณและจะแจ้งให้คุณดำเนินการต่อหากการค้นหาของคุณอาจ:
500
รายการ10%
มีการตรวจสอบเฉพาะโควต้า API หลัก เท่านั้นเนื่องจากตัวกรองของ gh-search
สามารถใช้งานได้หนัก ไม่ ได้ตรวจสอบโควต้า API การค้นหา
make install-dev
การพึ่งพาการติดตั้ง dev (ตั้งค่าสภาพแวดล้อมเสมือนของคุณเองก่อน)make unit
make lint
ทำงานเป็นผ้าสำลี