# NuGet - プライベートパッケージ

Aikido がプライベート パッケージを含む依存関係を更新するには、正確な lockfile の更新を生成できるように、プライベート NuGet レジストリへのアクセスが必要です。

Aikido では、プライベート NuGet レジストリへの接続を構成する方法が 2 つあります：

1. 〜を介して `nuget.config` ファイル
2. .NET CLI の資格情報を介して

## 1. nuget.config ファイルによる構成 <a href="#id-1-configuration-via-nugetconfig-file" id="id-1-configuration-via-nugetconfig-file"></a>

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

プライベート NuGet パッケージの場合、Aikido は `nuget.config` プライベート レジストリで認証するためのファイルです。このファイルは、 `nuget.config` リポジトリのルートにあるものを上書きします。このファイルでは、複数のプライベート レジストリを構成できます。

例 `nuget.config` GitHub の NuGet レジストリ上のプライベート パッケージにアクセスするためのもの：

```
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="github" value="https://nuget.pkg.github.com/AikidoSec/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <github>
      <add key="Username" value="AikidoSec" />
      <add key="ClearTextPassword" value="ghp_ABC123...XYZ" />
    </github>
  </packageSourceCredentials>
</configuration>
```

プライベート NuGet レジストリでの認証の詳細については、次のドキュメントをご覧ください。

* [Microsoft - 認証済みフィードからパッケージを利用する](https://learn.microsoft.com/en-us/nuget/consume-packages/consuming-packages-authenticated-feeds)
* [GitHub - NuGet レジストリの操作](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry)

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

前提条件が満たされたら、以下の手順に従って、依存関係を更新する際に Aikido がプライベート NuGet レジストリで認証するように構成できます：

1. Aikido の Autofix のアカウント設定ページに移動し、 [こちら](https://app.aikido.dev/issues/fix/settings).
2. 「Connect Registry」をクリックすると、プライベート レジストリのモーダルが表示されます

<div data-with-frame="true"><figure><img src="https://help.aikidogov.us/_assets/f45f83e8a3f9/image-214.png" alt=""><figcaption></figcaption></figure></div>

3. パッケージ マネージャーとして「Nuget」を選択し、 `nuget.config` オプション

<div data-with-frame="true"><figure><img src="https://help.aikidogov.us/_assets/03ccb0a762d8/image-160.png" alt=""><figcaption></figcaption></figure></div>

4. 〜を入力し、 `nuget.config` 認証情報を入力します。Aikido は、構成ファイルを使用直前まで安全に暗号化します。
5. 構成を保存するには「Connect Registry」をクリックします

## 2. .NET の nuget CLI による構成 <a href="#id-2-configuration-via-nets-nuget-cli" id="id-2-configuration-via-nets-nuget-cli"></a>

CLI 構成では、Aikido はプライベート レジストリでの認証に使用できるレジストリの URL、ユーザー名、パスワードを必要とします。この情報があれば、以下の手順で構成できます：

1. Aikido の Autofix のアカウント設定ページに移動し、 [こちら](https://app.aikido.dev/issues/fix/settings).
2. 「Connect Registry」をクリックすると、構成モーダルが表示されます
3. パッケージ マネージャーとして「Nuget」を選択し、次に「NuGet CLI Registry」オプションを選択します

<div data-with-frame="true"><figure><img src="https://help.aikidogov.us/_assets/2193ad0a9907/image-161.png" alt=""><figcaption></figcaption></figure></div>

4. 入力欄に詳細を入力し、「Connect Registry」をクリックして構成を保存します

## 3. 環境変数による構成

NuGet では、Autofix の環境変数を通じて資格情報を提供することもできます。

これには `nuget.config` プライベート フィードを定義するリポジトリ内のファイルが必要です。環境変数内のフィード名は、 `nuget.config`.

1. Aikido の Autofix のアカウント設定ページに移動し、 [こちら](https://app.aikido.dev/issues/fix/settings).
2. 次の環境変数を追加します：
   1. キー： `NuGetPackageSourceCredentials_my-private-feed`
   2. 値： `Username=user;Password=secret-pat`

PAT にはパッケージの読み取りアクセス権が必要です。

<div data-with-frame="true"><figure><img src="https://help.aikidogov.us/_assets/865beff1f909/image-297.png" alt=""><figcaption></figcaption></figure></div>
