# [ggshield](https://github.com/GitGuardian/ggshield): GitGuardian でコードを保護する
[](https://pypi.org/project/ggshield/)
[](https://hub.docker.com/r/gitguardian/ggshield)
[](LICENSE)
[](https://github.com/GitGuardian/ggshield/stargazers)
[](https://github.com/GitGuardian/ggshield/actions)
[](https://codecov.io/gh/GitGuardian/ggshield/)
> [!IMPORTANT]
> **macOS: 1.54.0 へのアップグレード時に `ggshield-py` の Keychain プロンプトが表示されます**。これはパフォーマンス改善の一環として、保存されたトークンを読み取るようになった 2 つ目のバイナリです。**常に許可** をクリックしてください。以降は確認されません。
`ggshield` は、ローカル環境または CI 環境で実行される CLI アプリケーションで、500 種類以上のシークレットを検出するのに役立ちます。
`ggshield` は [py-gitguardian](https://github.com/GitGuardian/py-gitguardian) を通じて [公開 API](https://api.gitguardian.com/docs) を使用し、ファイルやその他のテキストコンテンツ内の潜在的な脆弱性をスキャンして検出します。
`ggshield` を使用したスキャンからは、呼び出し時刻、リクエストサイズ、スキャンモードなどのメタデータのみが保存されるため、シークレットがダッシュボードに表示されることはなく、**あなたのファイルとシークレットは保存されません**。
# 目次
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [インストール](#installation)
- [インストールスクリプト (推奨)](#install-script-recommended)
- [macOS](#macos)
- [Homebrew](#homebrew)
- [スタンドアロン .pkg パッケージ](#standalone-pkg-package)
- [Linux](#linux)
- [Deb および RPM パッケージ](#deb-and-rpm-packages)
- [Windows](#windows)
- [Chocolatey](#chocolatey)
- [MSI インストーラー](#msi-installer)
- [スタンドアロン .zip アーカイブ](#standalone-zip-archive)
- [すべてのオペレーティングシステム](#all-operating-systems)
- [pipx を使用する](#using-pipx)
- [pip を使用する](#using-pip)
- [初期セットアップ](#initial-setup)
- [`ggshield auth login` を使用する](#using-ggshield-auth-login)
- [手動セットアップ](#manual-setup)
- [はじめに](#getting-started)
- [シークレット](#secrets)
- [レガシー設定ファイルの移行](#migrating-a-legacy-configuration-file)
- [統合](#integrations)
- [AI コーディングアシスタント](#ai-coding-assistants)
- [詳細情報](#learn-more)
- [出力](#output)
- [関連するオープンソースプロジェクト](#related-open-source-projects)
- [ライセンス](#license)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# インストール
<!--
Any change made in this section must be replicated in the "Step 1: Install
ggshield" section of the "Getting started" page of ggshield public
documentation.
-->
## インストールスクリプト (推奨)
`ggshield` をインストールする最速の方法です。
Linux / macOS:
```shell
curl -sSfL \
https://raw.githubusercontent.com/GitGuardian/ggshield/main/scripts/install/install.sh | bash
```
Windows (PowerShell):
```powershell
irm https://raw.githubusercontent.com/GitGuardian/ggshield/main/scripts/install/install.ps1 | iex
```
または、`curl` (Windows 10 以降に同梱) を使用する場合:
```powershell
curl.exe -sSL https://raw.githubusercontent.com/GitGuardian/ggshield/main/scripts/install/install.ps1 | powershell -NoProfile -ExecutionPolicy Bypass -Command -
```
このスクリプトは `--instance` や `--plugin` (プラグインをインストール) などのオプションを受け付けます。EU ワークスペースまたはセルフホストインスタンスの場合は、実行前に `GITGUARDIAN_INSTANCE` 環境変数を設定する (または `--instance <URL>` を渡す) してください。
オプションの完全なリスト、その他のインストール方法、アンインストール方法については [`scripts/install/README.md`](https://github.com/gitguardian/ggshield/blob/main/scripts/install/README.md) を参照してください。
以下の方法では、代わりに CLI を手動でインストールします。
## macOS
### Homebrew
Homebrew を使用して `ggshield` をインストールできます:
```shell
brew install ggshield
```
アップグレードは Homebrew によって処理されます。
### スタンドアロン .pkg パッケージ
あるいは、[`ggshield` リリースページ](https://github.com/GitGuardian/ggshield/releases) からスタンドアロン .pkg パッケージをダウンロードしてインストールできます。
このパッケージは Python のインストールを必要としませんが、新しいバージョンは手動でダウンロードする必要があります。
## Linux
### Deb および RPM パッケージ
Deb および RPM パッケージは [Cloudsmith](https://cloudsmith.io/~gitguardian/repos/ggshield/packages/) で利用可能です。
セットアップ手順:
- [Deb パッケージ](https://cloudsmith.io/~gitguardian/repos/ggshield/setup/#formats-deb)
- [RPM パッケージ](https://cloudsmith.io/~gitguardian/repos/ggshield/setup/#formats-rpm)
アップグレードはパッケージマネージャーによって処理されます。
## Windows
### Chocolatey
`ggshield` は [Chocolatey パッケージマネージャー](https://chocolatey.org/packages/ggshield) から利用可能です:
```shell
choco install ggshield
```
### MSI インストーラー
[`ggshield` リリースページ](https://github.com/GitGuardian/ggshield/releases) から MSI インストーラーをダウンロードしてインストールします:
```powershell
msiexec /i ggshield-VERSION-x86_64-pc-windows-msvc.msi
```
### スタンドアロン .zip アーカイブ
[`ggshield` リリースページ](https://github.com/GitGuardian/ggshield/releases) でスタンドアロン .zip アーカイブを提供しています。
アーカイブをディスクに展開し、`ggshield.exe` ファイルを含むディレクトリを `%PATH%` に追加します。
このアーカイブは Python のインストールを必要としませんが、新しいバージョンは手動でダウンロードする必要があります。
## すべてのオペレーティングシステム
`ggshield` は、その [PyPI パッケージ](https://pypi.org/project/ggshield) を介して、サポートされているすべてのオペレーティングシステムにインストールできます。
これには **サポートされているバージョンの Python (EOL でないもの)** (スタンドアロンパッケージを除く) と git が必要です。
`ggshield` のパッケージ版を使用しない場合は、私たちが [Python リリースサイクル](https://devguide.python.org/versions/) に従っており、EOL に達したバージョンはサポートしていないことにご注意ください。
### pipx を使用する
PyPI から `ggshield` をインストールする推奨方法は、[pipx](https://pypa.github.io/pipx/) を使用することです。これにより、分離された環境にインストールされます:
```shell
pipx install ggshield
```
インストールをアップグレードするには、次を実行します:
```shell
pipx upgrade ggshield
```
### pip を使用する
pip を使用して PyPI から `ggshield` をインストールすることもできますが、インストールが分離されていないため、この方法でインストールされた他のアプリケーションやパッケージが `ggshield` のインストールに影響を与える可能性があるため、推奨されません。この方法は、Python のインストールが外部管理として宣言されている場合 (たとえば Debian 12 などのオペレーティングシステムでシステム Python を使用する場合) にも機能しません:
```shell
pip install --user ggshield
```
インストールをアップグレードするには、次を実行します:
```shell
pip install --user --upgrade ggshield
```
# 初期セットアップ
## `ggshield auth login` を使用する
`ggshield` を使用するには、GitGuardian サーバーに対して認証する必要があります。そのためには、`ggshield auth login` コマンドを使用します。このコマンドは、パーソナルアクセストークンのプロビジョニングとローカルワークステーションへの設定を自動化します。
詳細については、[`ggshield auth login` ドキュメント](https://docs.gitguardian.com/internal-repositories-monitoring/ggshield/reference/auth/login) を参照してください。
認証後、`ggshield machine setup` を実行して、AI および git フックを設定し、ハニートークンを設置し、最初のスキャンの前にマシンを Endpoints ページに登録します。登録には現在のユーザー、または root として実行している場合はすべてのハニートークン対象ユーザーが含まれます。これはベストエフォートで、最大 5 秒かかり、コマンドの終了コードには影響しません。
`ggshield secret scan pre-commit`、`pre-push`、`ai-hook` のスキャンもマシンのホスト名を送信し、GitGuardian はそこからこれらのフックのユーザーを登録します。他のスキャンコマンドはホスト名を送信せず、スタンドアロンおよびプラットフォーム固有の `pip` インストールが実行するネイティブ AI フックも送信しません。
CI では、ggshield はマシンを登録せず、ホスト名も送信しません。それ以外の場所で両方を無効にするには、`.gitguardian.yaml` で `endpoint_registration: false` を設定するか、`GGSHIELD_NO_ENDPOINT_REGISTRATION` に空でない値を設定します。
## 手動セットアップ
パーソナルアクセストークンを手動で作成し、`GITGUARDIAN_API_KEY` 環境変数に保存してセットアップを完了することもできます。
# はじめに
## シークレット
これで `ggshield` を使用してシークレットを検索できます:
- ファイル内: `ggshield secret scan path -r .`
- リポジトリ内: `ggshield secret scan repo .`
- Docker イメージ内 (`docker` コマンドが利用可能である必要があります): `ggshield secret scan docker ubuntu:22.04`
- Pypi パッケージ内 (`pip` コマンドが利用可能である必要があります): `ggshield secret scan pypi flask`
- その他、詳細は `ggshield secret scan --help` の出力を参照してください。
## レガシー設定ファイルの移行
`ggshield` が `.gitguardian.yaml` (または `.gitguardian.yml`) 設定ファイルが非推奨の形式を使用していると報告した場合は、次のコマンドで最新バージョンに移行します:
```shell
ggshield config migrate
```
デフォルトでは、現在のディレクトリで設定ファイルを探すため、ファイルを含むディレクトリから実行してください。どこからでも実行するには、`ggshield` にファイルを明示的に指定します:
```shell
ggshield --config-path path/to/.gitguardian.yaml config migrate
```
ファイルの以前のバージョンは、その隣に `.old` バックアップとして保持されます。
# 統合
`ggshield` を [CI/CD ワークフロー](https://docs.gitguardian.com/ggshield-docs/integrations/overview#cicd-integrations-secrets-detection-in-your-cicd-workflow) に統合できます。
エラーをより早く検出するには、`ggshield` を [pre-commit、pre-push、または pre-receive Git フック](https://docs.gitguardian.com/ggshield-docs/integrations/overview#git-hooks-prevent-secrets-from-reaching-your-vcs) として使用します。
## AI コーディングアシスタント
`ggshield` は、あなたと AI コーディングアシスタント間の [やり取りをリアルタイムでスキャン](https://docs.gitguardian.com/ggshield-docs/integrations/ai-coding-tools/secret-scanning-for-ai-coding-tools) し、シークレットを含むアクションが実行される前にブロックできます。
`ggshield install` コマンドでフックをインストールできます。
サポートされているツール: **Cursor**、**Claude Code**、**Copilot Chat**、**Codex**、**Mistral Vibe 2.21+**。
# 詳細情報
詳細については、[ドキュメント](https://docs.gitguardian.com/ggshield-docs/getting-started) を参照してください。
# 出力
シークレットが見つからなかった場合、終了コードは 0 になります:
```bash
ggshield secret scan pre-commit
```
ステージングされたコードまたは CI でシークレットが見つかった場合、シークレットが見つかったファイル名を知らせるアラートと、ファイル内のシークレットの位置を示すパッチが表示されます:
```shell
ggshield secret scan pre-commit
```
```
2 incidents have been found in file production.rb
11 | config.paperclip_defaults = {
12 | :s3_credentials => {
13 | :bucket => "XXX",
14 | :access_key_id => "XXXXXXXXXXXXXXXXXXXX",
|_____AWS Keys_____|
15 | :secret_access_key => "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
|_______________AWS Keys_______________|
16 | }
17 | }
```
長すぎる行は、詳細モード (`-v` または `--verbose`) が使用されていない限り、ターミナルのサイズに合わせて切り捨てられます。
# 関連するオープンソースプロジェクト
- [truffleHog](https://github.com/dxa4481/truffleHog)
- [gitleaks](https://github.com/zricethezav/gitleaks)
- [gitrob](https://github.com/michenriksen/gitrob)
- [git-hound](https://github.com/tillson/git-hound)
- [AWS git-secrets](https://github.com/awslabs/git-secrets)
- [detect-secrets](https://github.com/Yelp/detect-secrets)
# ライセンス
`ggshield` は MIT ライセンスです。