aboutsummaryrefslogtreecommitdiff
path: root/docs/guides/install/azure-artifacts.md
blob: 5f52b942c319d9d64fff4c81e2fad1a3047560c0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
---
name: Using bun install with an Azure Artifacts npm registry
---

[Azure Artifacts](https://azure.microsoft.com/en-us/products/devops/artifacts) is a package management system for Azure DevOps. It allows you to host your own private npm registry, npm packages, and other types of packages as well.

To use it with `bun install`, add a `bunfig.toml` file to your project with the following contents:

**Configure with bunfig.toml**

Make sure to replace `my-azure-artifacts-user` with your Azure Artifacts username, such as `jarred1234`.

```toml#bunfig.toml
[install.registry]
url = "https://pkgs.dev.azure.com/my-azure-artifacts-user/_packaging/my-azure-artifacts-user/npm/registry"
username = "my-azure-artifacts-user"
# Bun v1.0.3+ supports using an environment variable here
password = "$NPM_PASSWORD"
```

Set the `$NPM_PASSWORD` environment variable to your Azure Artifacts npm registry password and Bun will automatically replace it with the correct value. You can also choose not to use an environment variable and instead hardcode your password in the `bunfig.toml` file, but be careful not to commit it to source control.


**Configure with environment variables**

You can also use an environment variable to configure Azure Artifacts with bun install.

Like with the `npm` CLI, the environment variable to use is `NPM_CONFIG_REGISTRY`.

The URL should include `:username` and `:_password` as query parameters. For example:

```bash#shell
NPM_CONFIG_REGISTRY=https://pkgs.dev.azure.com/my-azure-artifacts-user/_packaging/my-azure-artifacts-user/npm/registry/:username=my-azure-artifacts-user:_password=my-azure-artifacts-password
```

Make sure to:

- Replace `my-azure-artifacts-user` with your Azure Artifacts username, such as `jarred1234`
- Replace `my-azure-artifacts-password` with the non-base64 encoded password for your Azure Artifacts npm registry

**Don't base64 encode the password**

In [Azure Artifact's](https://learn.microsoft.com/en-us/azure/devops/artifacts/npm/npmrc?view=azure-devops&tabs=windows%2Cclassic) instructions for `.npmrc`, they say to base64 encode the password. Do not do this for `bun install`. Bun will automatically base64 encode the password for you if needed.

To un-base64 encode a password, you can open your browser console and run:

```js
atob("base64-encoded-password");
```

You can also use the `base64` command line tool, but doing so means it may be saved in your terminal history which is not recommended:

```bash
echo "base64-encoded-password" | base64 --decode
```

If it ends with `==`, it probably is base64 encoded.