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

Azure DevOps サービス

Azure Artifacts は、1 つのフィードからすべての依存関係を管理するのに役立ちます。 アップストリーム ソースを設定することで、NuGet.org や npmjs.com などのフィードやパブリック レジストリからパッケージを使用できます。 この記事では、パブリック フィードでアップストリーム ソースを設定し、パッケージを復元する手順について説明します。

重要

パブリック フィードは、パブリック プロジェクトによって異なります。 2027 年から、既存のパブリック プロジェクトは自動的にプライベートに変換されます。 その場合、パブリック フィードはホスティング プロジェクトの可視性を継承するため、パブリック にアクセスできなくなります。 2027 年までにパブリック パッケージの継続的な配布とアップストリーム戦略を計画します。 詳細については、「 パブリック プロジェクトの廃止」を参照してください。

前提条件

製品 必要条件
Azure DevOps - Azure DevOps 組織
- Azure DevOps プロジェクト
- 既存の パブリック プロジェクト。 パブリック プロジェクトは廃止され、この機能は、2027 年のプライベートへの自動変換までパブリックなプロジェクトにのみ適用されます。

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

重要

プロジェクトを作成したり 、プロジェクト の可視性をパブリックに変更したりできるのは、[パブリック プロジェクトの許可] ポリシーが既に有効になっている組織だけです。 このポリシーは、まだ使用していない組織では使用できなくなりました。 Microsoft では、パブリック プロジェクトのすべてのニーズに GitHub を使用することをお勧めします。

パブリック フィードは、既存のパブリック プロジェクトのプロジェクト スコープ フィードです。 パブリック フィードは、ホスティング プロジェクトの可視性設定を継承します。 既にパブリック フィードがある場合は、次のセクションに進むことができます。 それ以外の場合、既存のパブリック プロジェクトがある場合は、次のように作成します。

  1. Azure DevOpsにサインインし、既存のパブリック プロジェクトに移動します。

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

  3. フィードの名前を指定し、スコープとして Project: YourProjectName (推奨) を選択します。

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

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

重要

パブリック フィードでは、プライベート成果物フィードへのアップストリームはサポートされていません。 パブリック レジストリまたはその他の パブリック Azure Artifacts フィードへのアップストリームのみが可能です。

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

パブリック フィードが設定されたので、アップストリーム ソースの追加を開始できます。 パブリック フィードの場合、パブリック レジストリまたはその他のパブリック Azure Artifacts フィードをアップストリーム ソースとしてのみ構成できます。 アップストリーム ソースを追加するには、次の手順に従います。

  1. Azure DevOpsにサインインし、既存のパブリック プロジェクトに移動します。

  2. [ 成果物] を選択し、ドロップダウン メニューからパブリック フィードを選択します。

  3. 歯車アイコンの 歯車アイコン を選択して 、フィード設定を開きます。

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

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

  6. ドロップダウン メニューから NuGet ギャラリー を選択し、[ 追加] を選択します。

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

パッケージの復元

プロジェクト ディレクトリで次のコマンドを実行して、パッケージを復元します。

注意

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

nuget.exe restore

Q&A

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

フィードの内容は、適切なアクセス許可を持つ認証済みおよび承認された ID によってのみ変更できます。 これには、アップストリーム ソースからのパッケージの保存が含まれます。

  • 匿名ユーザー は既にフィードに保存されているパッケージをダウンロードできますが、アップストリーム ソースから新しいパッケージを保存することはできません。

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

匿名ユーザーが資格情報プロンプト (401 エラー) を繰り返し発生する場合は、次の方法を試してください。

  • プロジェクト構成でパッケージのバージョン範囲を使用しないでください。 クライアントが必要な正確なバージョンのみを要求するように、明示的なパッケージ バージョンを指定します。

  • ロック ファイル (サポートされている場合) を使用して、パッケージ クライアントは復元またはインストール操作中に必要な正確なバージョンのみを要求します。

Q: Visual Studio でパッケージを復元していますが、パッケージは別のソースから取得されています。 なぜでしょうか。

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

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

nuget restore -config <PATH_TO_NUGET_CONFIG_FILE>