cli からの全文正規表現フィルタリングを使用した GitHub コード検索。
organisation/repository
ごとにグループ化された結果を表示しますgh-search
、pypi.org 経由で Python パッケージとして入手でき、Python 3.12 以降が必要です。
pipx install gh-search
検索結果を取得するには、 repo
スコープを含む有効な GitHub 個人アクセス トークンが必要です。これは、 GITHUB_TOKEN
環境変数に設定するか、 --github-token
オプションを介してスクリプトに渡すことができます。
GitHub Enterprise を検索するには、 GITHUB_API_URL
環境変数を組織の GitHub v3 API エンドポイントに設定します。例えば。 GITHUB_API_URL=https://github.mycompany.net/api/v3
。これには--github-api-url
オプションを使用することもできます。
gh-search
を使用して呼び出し、最初の引数としてクエリ文字列を渡します。たとえば、このリポジトリで「usage」という単語を検索するには、次のようにします。
gh-search usage repo:janeklb/gh-search
repo:
は、GitHub Search API によってネイティブにサポートされている検索修飾子であることに注意してください。他にどのような修飾子が使用できるかについては、GitHub の検索コードのドキュメントを参照してください。
英数字以外の特定の文字列を検索する場合は、 --regex-content-filter
(または--content-filter
) オプションを使用できます。これは、有効な GitHub Search API クエリと組み合わせる必要があります(後でフィルタリングされる結果セットが生成されます)。
たとえば、 10
で始まる文字の値に設定されているspecial_var
変数を探している場合は、次のようなことができます。
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
に基づいており、 app_name
としてgh-search
が使用されます (例: MacOS の~/Library/Application Support/gh-search/config
)。 gh-search --help
(または--verbose
フラグを指定して実行した場合) の--config
のヘルプ テキストの横に、正確なファイルの場所が出力されます。
オプション名は、 click
のパラメータの命名に従って、snake_case に変換する必要があります。
たとえば、デフォルトの--github-token
と--github-api-url
設定するには、構成ファイルに次のように記述します ( <PLACE HOLDERS>
を適宜置き換えます)。
github_token="<YOUR TOKEN>"
github_api_url="<THE API URL>"
gh-search
レート制限をチェックし、検索が次の可能性がある場合は続行するよう求めます。
500
を超えるコア API リクエストを実行する10%
未満しか残らないgh-search
のフィルターがコア API クォータを頻繁に使用する可能性があるため、コアAPI クォータのみがチェックされます。検索API の割り当てはチェックされません。
make install-dev
開発依存関係をインストールします (最初に独自の仮想環境をセットアップします)make unit
make lint