Usare le origini upstream in un feed pubblico
Servizi di Azure DevOps
Azure Artifacts consente agli sviluppatori di gestire le relative dipendenze da un singolo feed. Usando le origini upstream, è possibile utilizzare pacchetti da feed e registri pubblici, ad esempio NuGet.org e npmjs.com. In questo articolo si apprenderà come:
- Creare un feed pubblico
- Abilitare le origini upstream
- Aggiungere una nuova origine upstream
Prerequisiti
Un'organizzazione Azure DevOps. Creare un'organizzazione, se non ne è già disponibile una.
Un progetto Azure DevOps. Creare un nuovo progetto se non ne è già disponibile uno.
Impostare la visibilità del progetto su pubblico.
Creare un feed pubblico
Un feed pubblico è un feed con ambito progetto in un progetto pubblico. I feed pubblici ereditano le impostazioni di visibilità del progetto di hosting.
Accedere all'organizzazione di Azure DevOps e quindi selezionare il progetto pubblico.
Selezionare Artefatti e quindi Crea feed.
Assegnare un nome al feed e quindi selezionare Progetto: PublicProject (scelta consigliata) per il relativo ambito.
Al termine, fare clic su Crea.
Importante
I feed pubblici non supportano l'upstreaming in un feed artifacts privato. Se si usa un feed pubblico di Azure Artifacts, è possibile eseguire l'upstream solo ai registri pubblici (NuGet.org, npmjs) o ad altri feed di Azure Artifacts pubblici .
Aggiungere un'origine upstream
Accedere all'organizzazione di Azure DevOps e quindi selezionare il progetto pubblico.
Selezionare Artefatti e quindi selezionare il feed pubblico.
Selezionare l'icona a forma di ingranaggio per accedere alle impostazioni del feed.
Selezionare Origini upstream e quindi Aggiungi upstream.
Selezionare il tipo di origine upstream. In questo esempio si aggiungerà NuGet.org come origine upstream.
Configurare l'origine e quindi selezionare Aggiungi al termine.
Selezionare Salva per salvare la nuova origine upstream.
Importante
I file di blocco dei pacchetti sono necessari per salvare i pacchetti NuGet e Dotnet da origini upstream a un feed pubblico.
Ripristinare pacchetti
Eseguire il comando seguente nella directory del progetto per ripristinare i pacchetti:
Nota
Per installare nuove versioni dei pacchetti da upstream, è necessario essere un lettore feed e upstream (collaboratore) o versione successiva. Gli utenti anonimi possono installare solo i pacchetti esistenti nel feed.
Domande e risposte
D: Si sta tentando di ripristinare i pacchetti, ma si continua a ricevere un errore 401 non autorizzato?
Il contenuto di un feed può essere modificato solo da un'identità autenticata e autorizzata che dispone delle autorizzazioni appropriate per il feed. Ciò include il salvataggio dei pacchetti nel feed da un'origine upstream. Gli utenti non autenticati (anonimi) possono scaricare i pacchetti già salvati in un feed, ma non possono salvare nuovi pacchetti da un upstream nel feed.
I gestori di un progetto devono salvare tutte le versioni necessarie dei pacchetti nel feed pubblico. Questa operazione può essere eseguita ripristinando un progetto usando un'identità che può fornire le credenziali al feed quando richiesto e verificando che l'identità usata abbia autorizzazioni di lettura feed e upstream (collaboratore) o superiori per il feed pubblico.
Se gli utenti anonimi che ripristinano pacchetti per un progetto vengono bloccati ripetutamente dalle richieste di credenziali (risposta 401), gli approcci seguenti ridurranno o elimineranno il problema:
Evitare di usare gli intervalli di versioni del pacchetto nella configurazione del progetto. Le versioni esplicite dei pacchetti garantiscono che i client di creazione di pacchetti richiedano solo la versione esatta necessaria.
Se supportato, utilizzare i file di blocco per l'ecosistema di pacchetti in modo che i client di creazione pacchetti richiedano solo le versioni specifiche necessarie per il progetto durante un'operazione di ripristino/installazione.
D: Si sta tentando di ripristinare i pacchetti usando Visual Studio, ma si nota che viene eseguito il pull da un'origine diversa?
R: Assicurarsi che Visual Studio usi l'origine a cui si fa riferimento nel file nuget.config e non dalla gestione pacchetti NuGet locale. Per altri dettagli, vedere Origini dei pacchetti .
È anche possibile usare l'interfaccia della riga di comando di NuGet per forzare l'uso dell'origine nel file di configurazione eseguendo il comando seguente:
nuget restore -config <PATH_TO_NUGET_CONFIG_FILE>