Udostępnij za pośrednictwem


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 pobierania pakietów z Crates.io.

Ten artykuł przeprowadzi Cię przez proces wykonywania następujących instrukcji:

  • Tworzenie źródła danych usługi Azure Artifacts
  • Połącz się z kanałem
  • Korzystanie z skrzynek z nadrzędnego strumienia

Wymagania wstępne

Tworzenie kanału informacyjnego

Usługa Azure Artifacts zaleca posiadanie dedykowanego kanału do pobierania pakietów z crates.io i oddzielnego kanału wyłącznie do publikowania wewnętrznych pakietów.

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Artefakty, a następnie wybierz pozycję Utwórz kanał informacyjny.

  3. Wprowadź nazwę dla swojego źródła, 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.

  4. Po zakończeniu wybierz pozycję Utwórz .

    Zrzut ekranu przedstawiający sposób tworzenia przepływu danych dla ładunku w górę łańcucha dostaw.

Połącz się z kanałem

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Artefakty, a następnie wybierz kanał z menu rozwijanego.

  3. Wybierz pozycję Połącz z kanałem informacyjnym, a następnie wybierz pozycję Ładunek w okienku nawigacji po lewej stronie.

  4. Jeśli po raz pierwszy używasz Cargo z Azure Artifacts, upewnij się, że masz zainstalowany rustup.

  5. Dodaj podany fragment kodu z 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 w 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>"
      
  1. Zaloguj się do kolekcji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Artefakty, a następnie wybierz kanał z menu rozwijanego.

  3. Wybierz pozycję Połącz z kanałem informacyjnym, a następnie wybierz pozycję Ładunek w okienku nawigacji po lewej stronie.

  4. Jeśli używasz Cargo z Azure Artifacts po raz pierwszy, upewnij się, że masz zainstalowany rustup.

  5. Dodaj podany fragment kodu z 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/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/Cargo/index/" }
      
      [source.crates-io]
      replace-with = "<FEED_NAME>"
      
    • Źródło danych o zakresie kolekcji:

      [registries]
      <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<COLLECTION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" }
      
      [source.crates-io]
      replace-with = "<FEED_NAME>"
      

Konfigurowanie dostawcy poświadczeń

Aby używać Cargo z usługi 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

  1. Utwórz osobisty token dostępu z Pakietami>zakresami odczytu i zapisu w celu uwierzytelnienia w kanale.

  2. Uruchom następujące polecenie, aby zalogować się do rejestru. Zastąp symbol zastępczy nazwą kanału i wklej osobisty token dostępu utworzony w poprzednim kroku, gdy pojawi się żądanie:

    "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 zapisywać pakiety ze źródeł nadrzędnych, musisz mieć rolę Kanał i Czytelnik Upstream (Współpracownik) lub wyższą. Aby uzyskać więcej informacji, zobacz Zarządzanie uprawnieniami .

Teraz, gdy skonfigurowaliśmy nasz projekt, skonfigurowaliśmy dostawcę poświadczeń i zalogowaliśmy się do naszego repozytorium, możemy rozpocząć korzystanie z pakietów z źródła nadrzędnego. Usługa Azure Artifacts zapisuje kopię dowolnego pakietu instalowanego z repozytorium nadrzędnego do twojego kanału.

W tym przykładzie używamy biblioteki serde, frameworku do serializacji/deserializacji.

  1. Uruchom następujące polecenie w katalogu projektu, aby dodać pakiet do pliku cargo.toml:

    cargo add serde
    
  2. Uruchom następujące polecenie, aby skompilować projekt i skonsumować swój pakiet.

    cargo build
    

Gdy twój pakiet zostanie zainstalowany, jego kopia zostanie zapisana w twoim kanale informacyjnym. Przejdź do swojego kanału, aby zweryfikować jego obecność. Pakiet jest dostępny w Twoim kanale, jak pokazano poniżej:

Zrzut ekranu przedstawiający *serde* zużytą z góry.