パブリック フィードでアップストリーム ソースを使用する

Azure Artifacts を使用すると、開発者は 1 つのフィードから依存関係を管理できます。 アップストリーム ソースを使用すると、フィードや NuGet.org、npmjs.com などのパブリック レジストリからパッケージを使用できます。 この記事では、次の方法について学習します。

  • パブリック フィードを作成する
  • アップストリーム ソースを有効にする
  • 新しいアップストリーム ソースを追加する

前提条件

重要

パッケージ ロック ファイルは、再現可能なビルドと、パブリック フィードを使用するときに匿名ユーザーに資格情報の入力を求められるシナリオを最小限に抑えるのに役立ちます。

パブリック フィードを作成する

パブリック フィードは、パブリック プロジェクトのプロジェクト スコープ のフィードです。 パブリック フィードは、ホスティング プロジェクトの可視性設定を継承します。

  1. Azure DevOps 組織にサインインし、パブリック プロジェクトを選択します。

  2. [ Artifacts]\(成果物\) を選択し、フィードを作成します。

    Azure Artifacts の [フィードの作成] ボタンを示すスクリーンショット。

  3. フィードに名前付け、そのスコープとして Project: PublicProject (Recommended) を選択します。

    新しいパブリック フィードを作成する方法を示すスクリーンショット。

  4. 終わったら [作成] を選択します。

アップストリーム ソースを追加する

  1. Azure DevOps 組織にサインインし、パブリック プロジェクトを選択します。

  2. [ 成果物] を選択し、パブリック フィードを選択します。

  3. 歯車アイコン歯車アイコンを選択してフィード 設定にアクセスします

  4. [ アップストリーム ソース] を選択し、[ アップストリームの追加] を選択します。

    パブリック フィードにアップストリーム ソースを追加する方法を示すスクリーンショット。

  5. アップストリームソース タイプを選択します。 この例では、アップストリーム ソースとして NuGet.org を追加します。

    さまざまな種類のアップストリーム ソースを示すスクリーンショット。

  6. ソースを構成し、完了したら [保存] を選択します。

    アップストリーム ソースを構成する方法を示すスクリーンショット。

  7. [保存] を選択して、新しいアップストリーム ソースを保存します。

    新しく追加されたアップストリーム ソースを保存する方法を示すスクリーンショット。

重要

パブリック フィードでは、プライベート成果物フィードへのアップストリームはサポートされていません。 パブリック Azure Artifacts フィードを使用している場合は、パブリック レジストリ (NuGet.org、npmjs) またはその他 のパブリック Azure Artifacts フィードにのみアップストリームできます。

パッケージの復元

管理者特権でのコマンド プロンプトから、次のコマンドを実行します。

nuget.exe restore

Note

アップストリームから新しいパッケージ バージョンを インストールするには、フィードおよびアップストリーム リーダー (コラボレーター) 以上である必要があります。 匿名ユーザーは、フィードに存在するパッケージのみをインストールできます。

Q & A

Q: パッケージを復元しようとしていますが、401 の未承認エラーが発生し続けますか?

フィードの内容は、フィードに対する適切なアクセス許可を持つ認証済みおよび承認された ID によってのみ変更できます。 これには、アップストリーム ソースからのフィードへのパッケージの保存が含まれます。 認証されていない (匿名の) ユーザーは 、既にフィードに保存されている パッケージをダウンロードできますが、アップストリームからフィードに新しいパッケージを保存することはできません。

プロジェクトの保守担当者は、必要なすべてのバージョンのパッケージをパブリック フィードに保存する必要があります。 これを行うには、プロンプトが表示されたときにフィードに資格情報を提供できる ID を使用してプロジェクトを復元し使用される ID にフィードとアップストリーム リーダー (コラボレーター) 以上のアクセス許可があることを確認します。

プロジェクトのパッケージを復元している匿名ユーザーが資格情報の要求 (401 応答) によって繰り返しブロックされている場合、次の方法で問題が軽減または解消されます。

  1. プロジェクト構成でパッケージのバージョン範囲を使用しないでください。 明示的なパッケージ バージョンにより、パッケージ 化クライアントは必要な正確なバージョンのみを要求できます。

  2. サポートされている場合は、パッケージ 化エコシステムのロック ファイルを利用して、パッケージ 化クライアントが復元/インストール操作中にプロジェクトに必要な特定のバージョンのみを要求するようにします。

Q: Visual Studio を使用してパッケージを復元しようとしていますが、別のソースからパッケージがプルされていることに気付きましたか?

A: Visual Studio で、ローカルの NuGet パッケージ マネージャーではなく、nuget.config ファイルで参照されているソースが使用されていることを確認します。 詳細については、 パッケージ ソース を参照してください。

NuGet CLI を使用して、次のコマンドを実行して、構成ファイル内のソースを強制的に NuGet で使用することもできます。

nuget restore -config <PATH_TO_NUGET_CONFIG_FILE>