Crates.io 패키지 사용
Azure DevOps Services | Azure DevOps Server 2022
Azure Artifacts 업스트림 원본을 사용하면 개발자가 Crates.io 및 nuget.org 같은 공용 레지스트리의 패키지를 사용할 수 있습니다. 이 문서에서는 프로젝트를 설정하고 명령줄을 사용하여 Crates.io 크레이트를 사용하는 방법을 안내합니다.
이 문서에서는 다음 방법을 안내합니다.
- Azure Artifacts 피드 만들기
- 피드에 연결
- 업스트림에서 상자 사용
필수 조건
Azure DevOps 조직. 아직 구성하지 않은 경우 조직을 만듭니다.
Azure DevOps 프로젝트입니다. 프로젝트가 없는 경우 프로젝트를 만듭니다.
rustup을 다운로드하고 설치 합니다.
피드 만들기
Azure Artifacts는 crates.io 상자를 사용하기 위한 전용 피드와 내부 크레이트를 게시하기 위한 별도의 피드를 사용하는 것이 좋습니다.
Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.
아티팩트 및 피드 만들기를 선택합니다.
피드의 이름을 입력하고 표시 유형을 정의한 다음 범위를 선택합니다. 공용 레지스트리의 패키지를 포함하도록 업스트림 원본 확인란을 선택해야 합니다.
완료되면 만들기를 선택합니다.
피드에 연결
Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.
아티팩트 및 드롭다운 메뉴에서 피드를 선택합니다.
피드할 연결을 선택한 다음 왼쪽 탐색 창에서 Cargo를 선택합니다.
Azure Artifacts와 함께 Cargo를 처음 사용하는 경우 rustup을 설치했는지 확인합니다.
프로젝트 설정 섹션의 제공된 코드 조각을 원본 리포지토리의 .cargo/config.toml 파일에 추가합니다.
프로젝트 범위 피드:
[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>"
조직 범위 피드:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Azure DevOps 컬렉션에 로그인한 다음 프로젝트로 이동합니다.
아티팩트 및 드롭다운 메뉴에서 피드를 선택합니다.
피드할 연결을 선택한 다음 왼쪽 탐색 창에서 Cargo를 선택합니다.
Azure Artifacts와 함께 Cargo를 처음 사용하는 경우 rustup을 설치했는지 확인합니다.
프로젝트 설정 섹션의 제공된 코드 조각을 원본 리포지토리의 .cargo/config.toml 파일에 추가합니다.
프로젝트 범위 피드:
[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>"
컬렉션 범위 피드:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<COLLECTION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
자격 증명 공급자 구성
Azure Artifacts에서 Cargo를 사용하려면 자격 증명 공급자를 설정해야 합니다. 제공된 설정은 현재 사용자에 대한 기본 자격 증명 도우미를 구성합니다.
%USERPROFILE%.cargo\config.toml에 다음 코드 조각을 붙여넣습니다.
[registry]
global-credential-providers = ["cargo:token", "cargo:wincred"]
레지스트리에 로그인
패키징>읽기 및 쓰기 범위를 사용하여 개인 액세스 토큰을 만들어 피드로 인증합니다.
다음 명령을 실행하여 레지스트리에 로그인합니다. 자리 표시자를 피드의 이름으로 바꾸고 메시지가 표시되면 이전 단계에서 만든 개인용 액세스 토큰을 붙여넣습니다.
"Basic " + [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("PAT:" + (Read-Host -MaskInput "Enter PAT"))) | cargo login --registry <FEED_NAME>
Crates.io 패키지 저장
참고 항목
업스트림에서 패키지를 저장하려면 피드 및 업스트림 판독기(협력자) 역할 이상이 있어야 합니다. 자세한 내용은 사용 권한 관리를 참조하세요.
이제 프로젝트를 설정하고, 자격 증명 공급자를 구성하고, 피드에 로그인했으므로 업스트림에서 패키지 사용을 시작할 수 있습니다. Azure Artifacts는 업스트림에서 피드로 설치한 패키지의 복사본을 저장합니다.
이 예제에서는 직렬화/역직렬화 프레임워크인 크레이트를 사용합니다 serde
.
프로젝트 디렉터리에서 다음 명령을 실행하여 cargo.toml에 상자를 추가합니다.
cargo add serde
다음 명령을 실행하여 프로젝트를 빌드하고 상자를 사용합니다.
cargo build
패키지가 설치되면 복사본이 피드에 저장됩니다. 피드로 이동하여 현재 상태를 확인합니다. 아래와 같이 피드에서 패키지를 사용할 수 있어야 합니다.