Packagist
Takumi Guard は Composer のリポジトリプロトコルに対応しているため、Private Packagist や Toran Proxy などのミラーと同じ要領で composer install・composer update を経由させることができます。このページでは、ローカル開発環境と CI の両方について、それぞれの利用方法を説明します。
既存の composer.lock からのインストールに対するブロックは、Composer 2.10(2026 年 5 月)で追加された依存ポリシー機能を利用します。それより古い Composer では、ブロックは composer update や composer require には適用されますが、既存ロックファイルからの composer install には適用されません。Composer をアップグレードしてください。
設定方法
Takumi Guard には3つの利用方法があります。
- 匿名で利用する:トークン不要。リポジトリを設定するだけでパッケージブロックが有効になります。
- ユーザー登録して利用する:メール認証トークン(
tg_anon_…)を使い、ダウンロード追跡と感染可能性の通知を有効にします。 - 組織ユーザートークンで利用する:組織ユーザートークン(
tg_org_…)を使い、組織全体のインストール状況を追跡できます。
組織ユーザートークンを利用するには、Guard を有効化した基本サブスクリプションが必要です。詳しくは料金と請求を参照してください。
匿名で利用する
認証なしで Takumi Guard のパッケージブロック機能を利用できます。プロキシを Composer のリポジトリとして追加し、デフォルトの packagist.org を無効化することで、すべてのパッケージがプロキシ経由で解決されるようになります。
# Guard プロキシを Composer のリポジトリとして追加する(グローバル設定)
composer config --global repositories.takumi-guard composer https://packagist.flatt.tech
# デフォルトの packagist.org を無効化する。パッケージの二重読み込みを防ぎ、
# ブロックリストを回避する直接フォールバックを起こさないためです。
composer config --global repositories.packagist.org false
# Guard に到達できないとき、Guard を迂回せずに失敗させる(Composer 2.10 以降)
composer config --global policy.ignore-unreachable false
Composer v2 は packagist.org から取得するはずのパッケージを Guard 経由でミラーします。packagist.org を無効化することで経路が明確になり、ブロックリストを回避する直接フォールバックを防げます。詳しくはこちらをご覧ください。
これで設定は完了です。パッケージブロックは composer install と composer update の両方に適用され、既存の composer.lock からのインストールも対象になります(Composer 2.10 以降)。
任意:ダウンロード追跡を有効にする
composer update mirrors
composer update mirrors は composer update --lock と同じ動作で、パッケージのバージョンを変えずに composer.lock 内の dist URL をプロキシ経由に書き換えます。これはブロックには不要で、ダウンロードしたパッケージが後から悪性と判明した際に通知を受け取れるよう、バージョン単位のダウンロード追跡を有効にするためのものです(ユーザー登録して利用するを参照)。プロジェクトごとに一度実行してください。実行しなくても、次回の composer update 時に自動的に反映されます。
グローバル設定を変更したくない場合は、同じ 2 つの repositories エントリをプロジェクトの composer.json に直接記述することもできます。
{
"repositories": [
{ "type": "composer", "url": "https://packagist.flatt.tech" },
{ "packagist.org": false }
]
}
ユーザー登録して利用する
メールアドレスを登録すると、匿名利用のパッケージブロックに加えて、ダウンロード追跡と感染可能性の通知が利用可能になります。ダウンロードしたパッケージが後から悪性であると判明した場合、登録したメールアドレスに通知が届きます。Shisho Cloud アカウントは不要で、無料で利用できます。
tg_anon_ トークンを取得済みの場合お持ちの tg_anon_ トークンは、そのまま npm / PyPI / RubyGems / Go / Composer いずれのエコシステムでも利用できます。再登録は不要で、下記の ステップ 3 から進めてください。
ステップ 1: メールアドレスを登録する
curl -X POST https://packagist.flatt.tech/api/v1/tokens \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "language": "ja"}'
language フィールドは省略可能で、デフォルトは "en"(英語)です。"ja" を指定すると、確認メールや感染可能性の通知を含むすべてのメールが日本語で届きます。この設定はトークンに保存され、以降のメールすべてに適用されます。
数秒以内にウェルカムメールが届きます。
ステップ 2: メールに記載された API キーを確認する
API キーはウェルカムメールの本文に直接記載されています。リンクをクリックする必要はなく、すぐに利用できます。
このキーは安全な場所に保管してください。新しいキーが必要な場合は、いつでも再生成できます。curl -X POST -H 'Authorization: Bearer tg_anon_xxxxxx' https://packagist.flatt.tech/api/v1/tokens/regenerate
ステップ 3: トークンを送信するよう Composer を設定する
Composer はホスト名ごとの HTTP Basic 認証でリポジトリに認証します。ユーザー名は無視され、トークンはパスワード欄に入れます。
# 1. リポジトリを追加する(未設定の場合)
composer config --global repositories.takumi-guard composer https://packagist.flatt.tech
composer config --global repositories.packagist.org false
# 2. トークンを保存する(グローバルの auth.json に書き込まれます)
composer config --global --auth http-basic.packagist.flatt.tech token tg_anon_xxxxxx
# 3. トークンが使えなくなったとき、Guard を迂回せずに失敗させる(Composer 2.10 以降)
composer config --global policy.ignore-unreachable false
# 4. ダウンロードをプロキシ経由にし、インストールをトークンに紐づけて追跡する
# (プロジェクトごとに一度実行。バージョンは変わらず URL のみ更新されます)
composer update mirrors
これ以降、Composer はパッケージ取得のたびに tg_anon_ トークンで認証します。ロックファイルをプロキシ経由にしておくと、インストールが追跡され、ダウンロードした正確なバージョンに対して感染可能性の通知が届きます。
組織ユーザートークンで利用する
組織ユーザートークン(tg_org_…)は、Takumi / Shisho Cloud コンソール、または Bot から Guard API 経由で発行できます。発行方法の詳細は トークンの管理 を参照してください。
1 つの tg_org_ トークンは、すべての Takumi Guard エコシステム(npm、PyPI、RubyGems、Go、Composer)で利用できます。別のエコシステムで発行済みであれば、同じトークンをそのまま利用できます。
トークンを取得したら、リポジトリを設定し、トークンを保存します。最後の composer update mirrors は任意で、ダウンロードをプロキシ経由にしてインストールをトークンに紐づけて追跡するためのものです。
composer config --global repositories.takumi-guard composer https://packagist.flatt.tech
composer config --global repositories.packagist.org false
composer config --global --auth http-basic.packagist.flatt.tech token tg_org_xxxxxx
composer config --global policy.ignore-unreachable false
# 任意(インストール追跡を有効化。ブロックには不要)
composer update mirrors
これ以降、composer install は組織ユーザートークンで認証し、組織全体のインストール追跡と、組織宛の感染可能性の通知(Slack、Webhook など)が有効になります。
packagist.org を無効化する理由
公開パッケージのリポジトリは Guard プロキシのみとし、packagist.org は無効化してください。
packagist.org を有効なままにすると、Composer はそれを同列のリポジトリとして扱い、パッケージを packagist.org や GitHub から直接解決・ダウンロードして、Guard のブロックリストを回避することがあります。無効化することで、すべての公開パッケージが必ず Takumi Guard 経由で解決されるようになります。
なお、組織独自のプライベートパッケージはこのプロキシを経由させるべきではありません。プライベートパッケージとの併用で説明するとおり、別の vcs リポジトリや path リポジトリとして宣言してください。