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

Aikido がプライベートパッケージを含む依存関係を更新するには、正確なロックファイル更新を生成できるように、プライベートレジストリへのアクセスが必要です。Poetry では、 **Google Artifact Registry** 設定サービスキーを提供するか、 **環境変数** Aikidoで。

## 環境変数を使って認証情報を追加する <a href="#adding-credentials-with-environment-variables" id="adding-credentials-with-environment-variables"></a>

プライベートレジストリに接続するための認証情報が固定の場合は、環境変数として指定できます。環境変数は次の形式で作成してください：

* `POETRY_HTTP_BASIC_[SOURCE_NAME]_USERNAME`
* `POETRY_HTTP_BASIC_[SOURCE_NAME]_PASSWORD`

ここで `[SOURCE_NAME]` は、 `pyproject.toml` ファイル内で指定したデータソース名を大文字にしたものです。たとえば、次を設定します： `POETRY_HTTP_BASIC_ARTIFACT_USERNAME` と `POETRY_HTTP_BASIC_ARTIFACT_PASSWORD` 次のプロジェクトファイルに対して：

```
[[tool.poetry.source]]
name = "artifact"
url = "https://repo-1234567890.d.codeartifact.eu-west-1.amazonaws.com/pypi/poetry/simple/"
```

以下の手順に従って、Aikido で Poetry の環境変数を設定できます：

1. Aikido の AutoFix のアカウント設定ページに移動し、 [こちら](https://app.aikido.dev/settings/integrations/autofix).
2. 「Connect Registry」をクリックすると、構成モーダルが表示されます

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

3. Poetry を選択すると、次の `POETRY_HTTP_BASIC_[SOURCE_NAME]_USERNAME` と `POETRY_HTTP_BASIC_[SOURCE_NAME]_PASSWORD` 環境変数を追加できるようになります：

<figure><img src="https://help.aikidogov.us/_assets/e6641a3369ba/image-217.png" alt=""><figcaption></figcaption></figure>

4. ［Connect Registry］をクリックして、環境変数を保存します。

Poetry と AWS CodeArtifact を併用している場合、パスワードはその場で生成する必要があります。詳しくは、こちらを参照してください： [ページ](https://help.aikidogov.us/docs/docs-ja/autofix-and-remediation/connect-private-packages/aws-codeartifact-private-packages) Poetry を AWS CodeArtifact とともに設定する方法について。

Autofix を介して PR を作成すると、Aikido は Poetry コマンドの実行時にこれらの環境変数を含めます。

## GCP Artifact Registry の認証情報を追加する <a href="#adding-credentials-for-gcp-artifact-registry" id="adding-credentials-for-gcp-artifact-registry"></a>

GCP Artifact Registry では、認証情報を静的に生成することはできません。この場合は、以下の手順に従ってください。

### 1. GCP でサービス アカウントを作成する <a href="#id-1-create-a-service-account" id="id-1-create-a-service-account"></a>

まず、Google Cloud プロジェクトにサービス アカウントを作成します:

1. Google Cloud Console に移動します。
2. 次へ移動します: **IAM & Admin** > **サービス アカウント**.
3. クリックします **サービス アカウントを作成**.
4. 次の内容を入力します **サービス アカウント名** たとえば `Aikido Artifact Registry Reader` に移動し、 **作成して続行**.
5. サービス アカウントに次の権限を付与します **Artifact Registry Reader** ロールが割り当てられている必要があります。

   ![Google Cloud プロジェクトでサービス アカウントに「Artifact Registry Reader」ロールを割り当てる。](https://help.aikidogov.us/_assets/7a71789ec040/ucarecdn-8d6db05a-1848-4c9e-8d0a-5bd824229aa9.jpeg)
6. クリックします **続行** と **完了**.

### 2. GCP でサービス アカウント用のキーを作成する <a href="#id-2-create-a-key-for-the-service-account" id="id-2-create-a-key-for-the-service-account"></a>

1. On the **サービス アカウント** ページで、先ほど作成したサービス アカウントを見つけます。
2. 右側の 3 つの点をクリックし、 **キーを管理**.
3. クリックします **キーを追加** > **新しいキーを作成**.
4. 選択 **JSON** に移動し、 **作成**.
5. JSON キーファイルを安全な場所に保存します。

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

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

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

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

3. Poetry を選択して、 `GCP サービス アカウントキー` セクションをモーダルの下部で見つけてください：

<figure><img src="https://help.aikidogov.us/_assets/377d493bec92/image-218.png" alt=""><figcaption></figcaption></figure>

4. 保存した **JSON キー** の内容を **プライベートレジストリのサービス アカウント キー** 欄に貼り付け
5. クリックします **レジストリを接続** て設定を保存します。
