Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Azure Artifacts 使开发人员能够托管和共享各种类型的包,以简化协作和包分发。 本文介绍使用 Azure Artifacts 时的关键概念。
源
Azure Artifacts 源是组织构造,用于在控制访问权限的同时提供存储、管理和共享包的结构化方法。 源不限于单一的包类型,可以托管各种类型的软件包,例如 npm、NuGet、Maven、Python、Cargo 和通用软件包。 数据源可以限定为项目或组织。 但是,只能将项目范围的供稿设置为公共供稿,组织范围的供稿不能转换为项目范围的供稿。
源视图
源视图允许开发人员与其使用者共享所选包版本的子集。 常见的用例是仅共享经过测试和验证的包版本,同时阻止仍在开发中的那些版本或不符合特定质量标准。
默认情况下,源包括三个视图:@local
、@prerelease
和@release
。 后两个可以根据需要重命名或删除。
@local
是默认视图,通常用于上游源,它包含直接发布到源的所有包以及从上游源保存的包。
上游源
上游源允许在单个馈送中存储来自多个源的包。 这包括您发布的包和从外部源及公共注册表(例如 NuGet.org 或 npmjs.com)保存的包。 启用馈送中的上游源时,Azure Artifacts 会自动保存由协作者或更高级别用户从上游源安装的任何包的副本。
对于支持多个源(如 NuGet 和 Maven)的公共包管理器,查询源的顺序可能会有所不同。 例如,NuGet 会向所有配置的源发送并行查询,并选择它收到的第一个有效响应,这有时可能会导致不确定的行为。
通过按照以下顺序搜索源及其上游源,上游源能够帮助缓解这种不确定行为:
直接发布到源中的包。
从上游源保存的包。
可从上游源获取的包。 每个上游源都按照它们在信息流的配置中出现的顺序被搜索。
注意
若要充分利用快速查找功能,建议在配置文件中仅包含一个数据源。
不可变性
一旦将某个版本的包发布到源中,该版本号将被永久保留。 不能上传具有相同版本号的包的较新版本修订,也不能删除该版本并上传具有相同版本号的新包。
索引
Azure Artifacts 维护每个源中所有包的索引,从而实现快速的列表操作。 这不同于文件共享,客户端必须打开每个包并检查其元数据,除非文件共享已配置为提供客户端识别的索引。
格式正确
Azure Artifacts 验证所有已发布的包,以确保完整性和正确性。 这有助于防止无效包进入开发环境。 如果工作流发布格式不正确的包并计划迁移到 Azure Artifacts,则必须在转换期间修改工作流,以确保包在 Azure Artifacts 中通过验证检查。
回收站
可以手动删除包,也可以通过为源设置保留策略来删除包。 已删除的包在回收站中保留 30 天,然后才会被永久删除。 只有源流所有者能够从回收站恢复已删除的包。
还必须是源所有者才能删除源。 已删除的订阅源将在回收站中保留 30 天,然后自动永久删除。 永久删除订阅源后,订阅源名称将变为可用。