提升包和管理源视图

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

源视图使开发人员可以通过共享某些包来控制包可见性,同时使其他包保持私密性。 每个视图筛选源以基于为该视图定义的特定条件显示包的子集。

默认情况下,Azure Artifacts 附带三个视图: @Local@Prerelease@Release。 该 @Local 视图是默认视图,包含所有已发布的包以及从上游源保存的包。 所有视图都支持 NuGet、npm、Maven、Python、Cargo 和通用包。 可以在 推送设置>视图设置中更改默认视图,但这样做不会启用直接发布到该视图。 软件包只能发布到基础数据源,它们在@Local视图中可用。

注意

必须是 源发布者(参与者)源所有者 才能将包提升到视图。

将包提升到特定视图

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

  2. 选择“ 项目”,然后从下拉菜单中选择源。

  3. 选择要升级的包,然后选择“ 提升”。

  4. 从下拉菜单中选择视图,然后再次选择“ 提升 ”。

    显示可用视图列表的屏幕截图。

重要

Azure Artifacts 不支持包降级。 升级包后,无法将其还原到以前的视图。

使用 REST API 推广包

若要使用 REST API 升级包,需要使用格式为 JSON 修补程序 文档的相应正文发送 PATCH 请求。 这会将所需视图(例如预发行版)追加到包的视图数组中。

  1. 创建包含打包>范围的个人访问令牌

  2. 复制终结点 URL,将其替换为以下示例( PowerShellcurl),并运行命令将包提升到所需视图。

  • 组织范围的源

    https://pkgs.dev.azure.com/{organization}/_apis/packaging/feeds/{feedId}/nuget/packages/{packageName}/versions/{packageVersion}?api-version=7.1
    
  • 项目范围的源

    https://pkgs.dev.azure.com/{organization}/{project}/_apis/packaging/feeds/{feedId}/nuget/packages/{packageName}/versions/{packageVersion}?api-version=7.1
    

有关更多详细信息,请参阅 JsonPatchOperationNuGet - 更新包版本

  • 集合范围的信息流

    https://{instance}/{collection}/_apis/packaging/feeds/{feedId}/nuget/packages/{packageName}/versions/{packageVersion}?api-version=7.1
    
  • 项目范围的源

    https://{instance}/{collection}/{project}/_apis/packaging/feeds/{feedId}/nuget/packages/{packageName}/versions/{packageVersion}?api-version=7.1
    

有关更多详细信息,请参阅 JsonPatchOperationNuGet - 更新包版本

  • 集合范围的信息流

    https://{instance}/{collection}/_apis/packaging/feeds/{feedId}/nuget/packages/{packageName}/versions/{packageVersion}?api-version=6.0-preview.1
    
  • 项目范围的源

    https://{instance}/{collection}/{project}/_apis/packaging/feeds/{feedId}/nuget/packages/{packageName}/versions/{packageVersion}?api-version=6.0-preview.1
    

有关更多详细信息,请参阅 JsonPatchOperationNuGet - 更新包版本

示例

将占位符替换为个人访问令牌、终结点 URL 和视图名称,然后运行以下命令,将包提升到所需的视图:

$env:PAT = "YOUR_PERSONAL_ACCESS_TOKEN"
$uri = "YOUR_URL"
$headers = @{
    "Content-Type" = "application/json"
    Authorization = "Basic " + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$env:PAT"))
}
$body = @{
    views = @{
        op    = "add"
        path  = "/views/-"
        value = "YOUR_VIEW_NAME"
    }
} | ConvertTo-Json

Invoke-RestMethod -Uri $uri -Method Patch -Headers $headers -Body $body

注意

公共项目中的所有源视图都可供 Internet 上的每个人都访问。

管理视图

默认情况下,Azure Artifacts 提供三种视图: @Local@Prerelease@Release。 还可以通过直接从源设置重命名或删除现有视图来创建新视图和管理现有视图。

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

  2. 选择“ 项目”,然后从下拉菜单中选择源。

  3. 选择最右侧 的齿轮图标以访问源的设置。

    显示如何访问源设置的屏幕截图。

  4. 选择 视图,选择视图,然后选择“ 编辑” 以编辑视图。 如果要添加新视图,请选择“ 添加视图”。

    显示如何添加、编辑或删除源视图的屏幕截图。

  5. 完成时选择“保存”。

重要

对于公共源,如果将视图的访问权限更改为 “特定人员”,该视图将不再作为上游源可用。