配置上游行为
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
借助 Azure Artifacts 上游源,开发人员可以方便地使用统一源从项目源和常用的公共注册表(如 NuGet.org 或 npmjs.com)发布和使用包。 以前,项目源合并了源本身和所有配置的上游源中的可用包版本列表。
上游行为是一项功能,使开发人员能够选择是否要使用外部源包版本。 它控制可从特定包的公共注册表访问哪些包。
启用上游行为后,将包发布到 Azure Artifacts 源时,将阻止来自公共注册表的任何版本,并且无法下载。
此方法通过防止可能渗透到公共注册表的恶意包中,增加了额外的安全层。
但是,用户仍可停用上游行为设置,允许他们使用公共注册表中的包(如果他们愿意这样做)。
注意
新行为不会影响当前正在使用的任何包版本,因为它们保留在源的 @local 视图中。
适用的场景
以下部分演示了触发上游行为以阻止外部源包版本的各种常见方案,以及不需要阻止对公共包的访问的其他方案。
公共版本被阻止
专用包版本公开
在此方案中,团队具有公开的专用包。 在这种情况下,将触发上游行为来阻止任何新的公共版本(不受信任的包)。
同时具有专用包和公共包
在此方案中,如果团队使用专用包和公共包的组合,则启用上游行为会阻止公共注册表中的任何新包版本。
不会阻止公共版本
所有包都是专用包*
如果所有现有包都是私有的,并且团队没有计划使用任何公共包,则新的上游行为不会影响此方案中团队的工作流。
所有包都是公共的
在此方案中,如果团队专门使用公共包(无论是来自公共注册表或其他开源存储库),则新的上游行为不会以任何方式影响其工作流。
公共包专用
在这种情况下,当公共包转换为专用包时,新的上游行为不会以任何方式影响团队的工作流。
允许外部版本
注意
必须是 源所有者 才能允许外部源版本。 有关详细信息,请参阅 源权限。
登录到 Azure DevOps 组织,并导航到你的项目。
选择“ 项目”,然后从下拉菜单中选择源。
选择包,然后选择省略号按钮以获取更多选项。 选择“ 允许外部源版本”。
选择切换按钮以允许外部版本。 完成后,选择“ 关闭 ”。
允许使用 REST API 的外部版本
使用 PowerShell 允许外部版本
-
为个人访问令牌创建环境变量。
$env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"
将个人访问令牌转换为 baser64 编码字符串并构造 HTTP 请求标头。
$token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$env:PatVar"))) $headers = @{ Authorization = "Basic $token" }
构造终结点 URL。 示例://pkgs.dev.azure.com/MyOrg/MyProject/_apis/packaging/feeds/MyFeed/nuget/packages/pkg1.0.0.nupkg/上游ing?api-version=6.1-preview.1
项目范围的源:
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
组织范围的源:
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
运行以下命令,检索包的上游行为状态。 $url
和 $headers
上一节中使用的变量相同。
Invoke-RestMethod -Uri $url -Headers $headers
相关文章
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈