noxi雑記

.NET、Angularまわりの小ネタブログ

Azure ArtifactsのNuGet認証を手動で追加する

Azure Artifacts は Azure DevOps のパッケージ管理サービスです。自分で作ったライブラリをパブリック、プライベート問わず公開することができます。
Azure Artifacts をプライベートの NuGet サーバーとして使用するには NuGet.Config に認証情報を持たせる必要があります。コマンドラインからサクッと設定できるので、やり方のメモです。


PAT 取得

Azure Artifacts に対して NuGet の認証を通すには PAT (Personal Access Token) が必要です。 Azure DevOps の個人設定ページから取得します。PAT を取得、管理するページを開くには Azure DevOps 画面右上の個人アイコンの中にある Security をクリックします。

f:id:noxi515:20190114210426p:plain
Azure DevOpsのPATページへの行き方

PAT の追加、管理ページを開いたら画面上部にある追加ボタンを押します。

f:id:noxi515:20190114210727p:plain
PAT追加ボタン

表示された PAT 追加オプション画面でスコープに Packaging: Read & write のみにチェックを入れて作成します。名前は適当に NuGet@PC名 、期限はカスタムに設定して最大(1年)にしておくと分かりやすいし更新頻度が少なくなって便利です。

作成後の画面に表示されたトークンをメモ帳か何かにコピーしておきます。この画面を閉じてしまうと二度とトークンは表示されません。

NuGet コマンドラインの取得

Azure Artifacts の認証管理は Windows ではコマンドプロンプトMac / Linux ではターミナルから nuget コマンドを利用して行います。まだ取得していない場合はサクッと取得しましょう。

docs.microsoft.com

Windows の場合 Chocolatey を利用する方法もあります。 Chocolatey がインストールされている環境では choco install nuget.commandline で NuGet コマンドラインがインストールされます。
また macOS の場合は homebrew が利用できます。 brew install nuget で NuGet コマンドラインをインストールできます。

NuGet フィード情報の取得

NuGet 認証を設定するには、まずどのフィードに対する認証にするのか、フィードの URL を取得します。 Azure DevOps でどれかプロジェクトを開き、ナビゲーションの一番下にある Artifacts をクリックします。そして表示されるフィードの中から認証を通すフィードを選択し、 Connect to feed ボタンをクリックします。

f:id:noxi515:20190114213239p:plain
認証先フィード情報の取得1

次に、表示されたフィード接続情報の中から Add this feed に記載されている文字列をメモ帳にコピーします。

f:id:noxi515:20190114213500p:plain
認証先フィード情報の取得2

NuGet 認証の設定

コマンドプロンプトまたはターミナルを開き、先ほど取得した PAT とフィードの情報を元にコマンドを実行して認証情報を設定します。

nuget.exe sources Add -Name "Sample" -Source "https://xxx.pkgs.visualstudio.com/_packaging/yyy/nuget/v3/index.json" -UserName $UserName$ -Password $PAT$ -StorePasswordInClearText

NuGet フィード情報の取得で取得したコマンドに3つのオプションを追加して実行します。 -UserName に Azure DevOps のユーザー名、 -Password に取得した PAT をそのまま、そして -StorePasswordInClearText の3つです。実行するとグローバルの NuGet.Config に認証情報が保存されます。