> For the complete documentation index, see [llms.txt](https://help.aikido.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aikido.dev/autofix-and-remediation/connect-private-packages/custom-config-private-packages.md).

# Environment Variables - Private Packages

For Aikido to update dependencies that include private packages, it needs access to your private registries so it can generate accurate lockfile updates. Many package manager like Bundle, Poetry, UV use environment variables to configure authentication. In Aikido you can proivde environment variables, which will be encrypted and injected into your workflows.

This means when our system detects vulnerabilities in dependencies, it can seamlessly authenticate with private registries, automatically patch the affected packages, and update the lockfiles, all while keeping your credentials safe.

## Configuration in Aikido <a href="#configuration-in-aikido" id="configuration-in-aikido"></a>

Once write access to the repos is set up, you can configure Aikido to authenticate with your private registry by following the steps below:

1. Go to your account's settings page for AutoFix, [here](https://app.aikido.dev/issues/fix/settings).
2. Click on "*Connect registry*" to see the modal below

<figure><img src="/files/4QQzBRmYrK4gOIWgNrKZ" alt=""><figcaption></figcaption></figure>

3. When you select '*Environment variables*' you will be able to enter the environment variables needed to create automated fixes in your repositories. In the example below we show a setup for a private registry for Poetry.

<figure><img src="/files/cKsqrYOYMHusLPfq7Mds" alt=""><figcaption></figcaption></figure>

4. Fill in the "key" and "value" and add as many variables which are needed. Aikido will encrypt all values automatically for you.

## Using the environment variables <a href="#example-setups" id="example-setups"></a>

### NPM <a href="#npmrc" id="npmrc"></a>

A common way to authenticate with private registries for JS libraries, is by including an `.npmrc` file in your repository to tell your package manager where to download a package from. In order not to store the authentication token in the repository, an environment variable can be referenced.

Below you can find an example `.npmrc` file that defines a registry and uses the `NPM_TOKEN` environment variable for authentication:

```
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}
@pied-piper:registry=https://npm.pkg.github.com
```

More NPM private registry options can be found [here](https://help.aikido.dev/~/revisions/27oApOKWT7NW06uHiiU1/aikido-autofix/connect-private-packages/github-registry-private-packages).

### Poetry

Documentation for setting up Poetry with environment variables can be found [here](https://help.aikido.dev/~/revisions/27oApOKWT7NW06uHiiU1/aikido-autofix/connect-private-packages/poetry-private-packages).

### Bundle

Documentation for setting up Bundle with environment variables can be found [here](https://help.aikido.dev/~/revisions/27oApOKWT7NW06uHiiU1/aikido-autofix/connect-private-packages/bundle-private-gems).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.aikido.dev/autofix-and-remediation/connect-private-packages/custom-config-private-packages.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
