# NPM & PNPM - プライベートパッケージ

プライベートパッケージを使用しているリポジトリで Aikido が依存関係を更新する場合、ロックファイルを正しく更新するためにそれらのパッケージへのアクセスが必要です。プライベート NPM レジストリで認証するように Aikido を設定することで、これらの更新を実行できます。

## 前提条件 <a href="#prerequisites" id="prerequisites"></a>

NPM または PNPM を使用しているリポジトリでは、プライベートパッケージへのアクセスは `.npmrc` ファイルで管理されます。パッケージマネージャーは `.npmrc` ファイルを使用して、どのレジストリを使用し、どのように認証するかを判断します。

次のいずれかの方法を選択できます:

* トークンに[環境変数](https://help.aikido.dev/~/revisions/KY3QqEqZPV6ifxqjwoLa/aikido-autofix/connect-private-packages/custom-config-private-packages)を参照する `.npmrc` ファイルをリポジトリに含める。
* `.npmrc` の設定を Aikido のインターフェースで直接指定する（[こちら](https://help.aikido.dev/docs/docs-ja/autofix-and-remediation/connect-private-packages/npm-private-packages#configuration-in-aikido)）。

プライベートパッケージ名が `@pied-piper/***` のような形式で、GitHub の npm レジストリでホストされている場合、ファイルは次のようになります:

```
@pied-piper:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=<YOUR_GITHUB_TOKEN>
```

Aikido で `.npmrc` ファイルが設定されている場合、依存関係を更新する前に `.npmrc` ファイルを書き込みます。リポジトリに `.npmrc` ファイルが存在する場合は、Aikido で設定された `.npmrc` ファイルによって上書きされます。

`.npmrc` についての詳細は、NPM のドキュメント（[こちら](https://docs.npmjs.com/cli/v8/configuring-npm/npmrc#auth-related-configuration)）をご覧ください。

## Aikido での設定 <a href="#configuration-in-aikido" id="configuration-in-aikido"></a>

プライベートパッケージを使用するリポジトリの更新を可能にするには、Aikido の UI でプライベートレジストリの設定を指定します。Aikido は認証情報を暗号化して保存し、認証情報を Aikido の UI や API から取得することはできません。

1. Aikido で _Autofix_ > _Settings_ に移動します（[こちら](https://app.aikido.dev/issues/fix/settings)）。
2. 「_Connect Registry_」をクリックすると、選択モーダルが表示されます。

<figure><img src="https://help.aikido.dev/_assets/f45f83e8a3f9/image-214.png" alt=""><figcaption></figcaption></figure>

3. NPM を選択して、`.npmrc` ファイルを入力します。

<figure><img src="https://help.aikido.dev/_assets/6bde2f126981/image-179.png" alt=""><figcaption></figcaption></figure>

4. `.npmrc` ファイルの内容を入力します。この例は、GitHub Packages でホストされているスコープ付きパッケージ（`@pied-piper`）の設定を示しています。
5. 「_Connect Registry_」をクリックして設定を保存します。
