# Takumi Guard が PyPI に対応

Takumi Guard が npm に加えて **PyPI** に対応しました。

**pip**、**uv**、**poetry** を使用する Python プロジェクトで、Takumi Guard 経由でインストールをルーティングすることで、CI や開発環境に届く前に悪性パッケージをブロックできるようになりました。

## 概要

Takumi Guard は、パッケージマネージャーと上流レジストリの間に位置するセキュリティプロキシです。すべてのインストールリクエストをリアルタイムの脅威データベースと照合し、悪性パッケージをブロックします。

今回のリリースにより、npm ユーザーが利用していた保護機能が Python エコシステムでも利用可能になりました。

- **パッケージブロック**: 悪性 PyPI パッケージをコード実行前にブロック
- **ダウンロード追跡**: 認証済みユーザーのインストール履歴を記録
- **[感染可能性の通知](/docs/ja/t/guard/features/breach-notifications)**: ダウンロードしたパッケージに後からセキュリティアドバイザリが公開された場合に通知
- **[バージョン単位のブロック](/docs/ja/t/guard/features/package-blocking)**: 侵害されたバージョンのみをブロックし、安全なバージョンは通過

## 利用開始方法

### pip / uv

シェルプロファイル（`.bashrc`、`.zshrc` など）に以下を追加してください。

```bash
# pip
export PIP_INDEX_URL=https://pypi.flatt.tech/simple/

# uv（PIP_INDEX_URL を参照しないため、専用の変数が必要）
export UV_INDEX_URL=https://pypi.flatt.tech/simple/
```

または `pip.conf`（Linux/macOS では `~/.config/pip/pip.conf`、Windows では `%APPDATA%\pip\pip.ini`）に設定してください。

```ini
[global]
index-url = https://pypi.flatt.tech/simple/
```

一度だけ試す場合は、`--index-url` を直接指定することもできます。

```bash
pip install --index-url https://pypi.flatt.tech/simple/ <package>
```

### poetry

Takumi Guard をプライマリソースとして追加します。

```bash
poetry source add --priority=primary takumi-guard https://pypi.flatt.tech/simple/
```

### GitHub Actions

ワークフローに 1 行追加するだけで導入できます。

```yaml
steps:
  - uses: actions/checkout@v4
  - uses: flatt-security/setup-takumi-guard-pypi@v1
  - run: pip install -r requirements.txt
```

認証や感染可能性の通知を含む詳細なセットアップ手順は [PyPI クイックスタートガイド](/docs/ja/t/guard/quickstart/pypi) をご覧ください。

### メール登録（感染可能性の通知）

メールアドレスを登録すると、ダウンロードしたパッケージに後からセキュリティアドバイザリが公開された場合に通知が届きます。アカウント不要、無料で利用できます。

**ステップ 1:** メールアドレスを登録する

```bash
curl -X POST https://pypi.flatt.tech/api/v1/tokens \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "language": "ja"}'
```

**ステップ 2:** 確認メール内のリンクをクリックしてください。API キーとセットアップ手順が表示されるページに遷移します。

**ステップ 3:** トークンでパッケージマネージャーを設定する

```bash
export PIP_INDEX_URL=https://token:tg_anon_xxxxxx@pypi.flatt.tech/simple/

# uv を使用している場合は以下も追加:
export UV_INDEX_URL=https://token:tg_anon_xxxxxx@pypi.flatt.tech/simple/
```

以降のインストールが追跡され、ダウンロードしたパッケージに問題が見つかった場合に通知が届きます。

## 対応パッケージマネージャー

| パッケージマネージャー | 対応状況     |
| ---------------------- | ------------ |
| pip                    | 対応         |
| uv                     | 対応         |
| poetry                 | 対応         |
| npm                    | 対応（既存） |
| pnpm                   | 対応（既存） |
| yarn                   | 対応（既存） |
