Azure Artifacts 的关键概念

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019

不可变性

将特定包版本发布到源后,将永久保留该版本号。 不能上传具有相同版本号的较新的修订包,也不能将其删除,并上传具有相同版本号的新包。

许多包客户端(包括 NuGet 和 npm)在计算机上保留包的本地缓存。 客户端缓存特定包版本后,它将在将来的安装/还原请求中返回该副本。

如果在服务器端将包版本 v1 替换为新版本 v2,则客户端无法判断差异。 这可能会导致无法确定来自不同计算机的生成结果。 例如,开发人员的计算机和生成代理可能缓存了包的不同修订,从而导致意外生成结果。

如果包已损坏、有缺陷或共享了意外内容(如敏感信息),最佳方法是准备修复并发布新版本。 然后,根据问题的严重性以及包的依赖程度,可以删除包,使其不可用。

解决不可变性约束的唯一方法是创建新的源并将所需的包版本发布到新源。

注意

被删除的源在回收站中保留 30 天,然后被永久删除。 永久删除源后,源名称将变为可用。

索引

Azure Artifacts 维护每个源中所有包的索引,从而实现快速的列表操作。 文件共享的列出操作要求客户端打开每个文件并检查其元数据,除非文件共享已配置为提供客户端可以理解的索引。

格式正确

Azure Artifacts 验证所有已发布的包,以确保它们格式良好。 这可以防止无效的包进入开发和生成环境。 但是,迁移到 Azure Artifacts 时,发布格式不正确的包的任何工作流都会中断。

回收站

可以手动删除包,也可以通过为源设置保留策略来删除包。 已删除的包在回收站中保留 30 天,然后永久删除。 源所有者可以从回收站恢复已删除的包。