GitHub-Codesuche mit Volltext-Regex-Filterung von Ihrer CLI aus.
organisation/repository
an gh-search
ist als Python-Paket über pypi.org verfügbar und erfordert Python 3.12+
pipx install gh-search
Zum Abrufen von Suchergebnissen ist ein gültiges persönliches GitHub-Zugriffstoken mit dem repo
-Bereich erforderlich. Es kann auf einer GITHUB_TOKEN
Umgebung festgelegt oder über die Option --github-token
an das Skript übergeben werden.
Um GitHub Enterprise zu durchsuchen, legen Sie die Umgebungsvariable GITHUB_API_URL
auf den GitHub v3 API-Endpunkt Ihrer Organisation fest. z.B. GITHUB_API_URL=https://github.mycompany.net/api/v3
. Sie können hierfür auch die Option --github-api-url
verwenden.
Rufen Sie mit gh-search
auf und übergeben Sie eine Abfragezeichenfolge als erstes Argument. Um beispielsweise in diesem Repo nach dem Wort „usage“ zu suchen:
gh-search usage repo:janeklb/gh-search
Beachten Sie, dass repo:
ein Suchqualifizierer ist, der nativ von der GitHub Search API unterstützt wird. Sehen Sie sich die Suchcode-Dokumentation von GitHub an, um zu sehen, welche anderen Qualifizierer verfügbar sind.
Wenn Sie nach einer bestimmten nicht alphanumerischen Zeichenfolge suchen, können Sie die Optionen --regex-content-filter
(oder --content-filter
) verwenden. Dies muss mit einer gültigen GitHub Search API-Abfrage kombiniert werden (die den Ergebnissatz erzeugt, der anschließend gefiltert wird).
Wenn Sie beispielsweise nach einer Variable special_var
suchen, die auf einen Wert aus Zeichen festgelegt ist, die mit 10
beginnen, könnten Sie Folgendes tun:
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.
Standardwerte für Optionen können über eine Konfigurationsdatei angegeben werden. Der Speicherort dieser Datei basiert auf click.get_app_dir
mit gh-search
als app_name
(z. B. ~/Library/Application Support/gh-search/config
unter MacOS). Sie sehen den genauen Speicherort der Datei neben dem Hilfetext der --config
von gh-search --help
(oder wenn Sie mit der Flagge --verbose
ausführen).
Die Optionsnamen müssen entsprechend der Parameterbenennung von click
in „snake_case“ konvertiert werden.
Um beispielsweise einen Standardwert für --github-token
und --github-api-url
festzulegen, würden Sie Folgendes in Ihre Konfigurationsdatei schreiben (und <PLACE HOLDERS>
entsprechend ersetzen):
github_token="<YOUR TOKEN>"
github_api_url="<THE API URL>"
gh-search
prüft Ihre Tarifgrenzen und fordert Sie auf, fortzufahren, wenn Ihre Suche Folgendes könnte:
500
Kern-API-Anfragen durch10%
Ihres Kern-API-Kontingents Es wird nur das Kern -API-Kontingent überprüft, da die Filter von gh-search
es stark beanspruchen können. Das Such- API-Kontingent wird nicht überprüft.
make install-dev
install dev dependencies (richten Sie zuerst Ihre eigene virtuelle Umgebung ein)make unit
make lint
-Linters