Używanie pakietów z Crates.io
Azure DevOps Services | Azure DevOps Server 2022
Źródła nadrzędne usługi Azure Artifacts umożliwiają deweloperom korzystanie z pakietów z publicznych rejestrów, takich jak Crates.io i nuget.org. Ten artykuł przeprowadzi Cię przez proces konfigurowania projektu i używania wiersza polecenia do korzystania z stawek z Crates.io.
Ten artykuł przeprowadzi Cię przez proces wykonywania następujących instrukcji:
- Tworzenie źródła danych usługi Azure Artifacts
- Nawiązywanie połączenia z kanałem informacyjnym
- Korzystanie z skrzynek z nadrzędnego strumienia
Wymagania wstępne
Organizacja: Azure DevOps. Utwórz organizację , jeśli jeszcze tego nie zrobiono.
Projekt usługi Azure DevOps. Utwórz projekt , jeśli go nie masz.
Pobierz i zainstaluj rustup.
Tworzenie kanału informacyjnego
Usługa Azure Artifacts zaleca posiadanie dedykowanego kanału informacyjnego do używania skrzynek z crates.io i oddzielnego kanału informacyjnego wyłącznie do publikowania wewnętrznych skrzynek.
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz pozycję Utwórz kanał informacyjny.
Wprowadź nazwę źródła danych, zdefiniuj jego widoczność, a następnie wybierz zakres. Pamiętaj, aby zaznaczyć pole wyboru Nadrzędne źródła , aby uwzględnić pakiety z publicznych rejestrów.
Po zakończeniu wybierz pozycję Utwórz .
Nawiązywanie połączenia z kanałem informacyjnym
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz źródło danych z menu rozwijanego.
Wybierz pozycję Połącz z kanałem informacyjnym, a następnie wybierz pozycję Ładunek w okienku nawigacji po lewej stronie.
Jeśli po raz pierwszy używasz ładunku w usłudze Azure Artifacts, upewnij się, że zainstalowano rustup.
Dodaj podany fragment kodu w sekcji Konfiguracja projektu do pliku cargo/config.toml w repozytorium źródłowym:
- Źródło danych o zakresie projektu:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
- Kanał informacyjny o zakresie organizacji:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Konfigurowanie dostawcy poświadczeń
Aby używać ładunku w usłudze Azure Artifacts, należy skonfigurować dostawcę poświadczeń. Podane ustawienia spowodują skonfigurowanie domyślnego pomocnika poświadczeń dla bieżącego użytkownika:
Wklej następujący fragment kodu w pliku %USERPROFILE%.cargo\config.toml:
[registry]
global-credential-providers = ["cargo:token", "cargo:wincred"]
Zaloguj się do rejestru
Utwórz osobisty token dostępu z zakresami odczytu i zapisu pakietów>w celu uwierzytelnienia w kanale informacyjnym.
Uruchom następujące polecenie, aby zalogować się do rejestru. Zastąp symbol zastępczy nazwą źródła danych i wklej osobisty token dostępu utworzony w poprzednim kroku po wyświetleniu monitu:
"Basic " + [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("PAT:" + (Read-Host -MaskInput "Enter PAT"))) | cargo login --registry <FEED_NAME>
Zapisywanie pakietów z Crates.io
Uwaga
Aby zapisać pakiety z nadrzędnych strumieni, musisz mieć rolę Kanał informacyjny i Nadrzędny czytelnik (współpracownik) lub wyższy. Aby uzyskać więcej informacji, zobacz Zarządzanie uprawnieniami .
Po skonfigurowaniu projektu, skonfigurowaniu dostawcy poświadczeń i zalogowaniu się do naszego kanału informacyjnego możemy rozpocząć korzystanie z pakietów z nadrzędnego źródła danych. Usługa Azure Artifacts zapisuje kopię dowolnego pakietu instalowanego z nadrzędnego źródła danych.
W tym przykładzie serde
używamy skrzyni, struktury serializacji/deserializacji:
Uruchom następujące polecenie w katalogu projektu, aby dodać skrzynię do pliku cargo.toml:
cargo add serde
Uruchom następujące polecenie, aby skompilować projekt i użyć skrzyni:
cargo build
Po zainstalowaniu pakietu kopia zostanie zapisana w kanale informacyjnym. Przejdź do kanału informacyjnego, aby zweryfikować jego obecność. Pakiet powinien być dostępny w kanale informacyjnym, jak pokazano poniżej: