将项目可见性更改为公共或专用

Azure DevOps Services

了解如何在公共和专用之间更改 Azure DevOps 项目的可见性,并了解每个可见性设置的安全性和访问影响。

重要

只有已启用 “允许公共项目策略 ”的组织才能创建项目或更改项目的可见性。 策略不再可供尚未使用它的组织使用。 Microsoft建议为所有公共项目需求使用 GitHub

将项目设为公共时发生哪些更改

使项目公开会影响权限、访问级别和可用功能。

重要

将专用项目更改为公开可见性时, 所有项目内容都可供公开访问。 不能有选择地保留某些存储库、区域路径或公共项目中私有的生成项目。

安全性和权限更改

将项目可见性从专用切换到公共时,会发生以下更改:

  • 拒绝权限将被忽略:不会为公共用户强制实施显式设置为“拒绝”的任何权限
  • 授予的最低访问权限:非members 会自动接收对公共内容的基线读取访问权限
  • 生成管道范围:将管道设置为 Project 集合 范围,使用 项目 范围自动运行,以提高安全性

访问级别差异

用户类型 专用项目访问 公共项目访问
匿名用户 无访问权限 对大多数内容的只读访问权限
利益干系人 受限制的 Boards 访问,无 Repos 访问 对 Repos 和 Boards 的完全访问权限
基本用户 测试计划以外的完全访问权限 测试计划以外的完全访问权限
基本 + 测试计划 完全访问权限,包括测试计划 完全访问权限,包括测试计划

非members 的功能可用性

下表显示了哪些功能可供非项目成员的用户使用:

服务区域 会员外访问 注释
仪表板 只读的有限小组件 许多小组件不可用
Wiki 只读 完整内容可见
仅读取工作项 积压工作、板、冲刺隐藏
存储库 只读 Git 存储库 隐藏 TFVC 存储库
管道 读取生成/发布结果 隐藏的编辑器和库
测试计划 无访问权限 手动测试不可用
搜索 完全搜索功能 跨可访问内容
设置 无访问权限 隐藏的管理功能

先决条件

在更改项目可见性之前,请确保满足以下要求:

Requirement 详细信息
权限 项目集合管理员 或组织所有者
组织设置 必须启用“允许公共项目”策略
安全评审 完成 迁移清单

预迁移安全清单

警告

公共项目公开历史数据,包括旧的提交、工作项和生成日志。 在公开项目之前,请仔细查看所有内容。

组织和标识公开

  • [ ] 成员信息:所有组织成员的姓名和电子邮件地址都可见
  • [ ] 组织设置:公开的所有组织和项目设置的只读视图
  • [ ] 处理元数据:整个组织项目的所有选取列表值都可见
  • [ ] 生成历史记录:生成触发器和 Git 提交中公开的名称和电子邮件地址

跨项目注意事项

  • [ ] 链接的项目:检查可能公开敏感信息的专用项目的链接
  • [ ] 共享资源:查看项目访问的组织级资源

内容安全评审

工作项和敏捷工具

  • [ ] 历史工作项:查看敏感信息的所有工作项,包括已关闭的工作项
  • [ ] 区域路径安全性:确认没有区域路径具有特殊的安全限制(公共项目中忽略的拒绝权限)
  • [ ] 讨论和评论:检查敏感或不当内容的所有工作项讨论

源代码存储库

  • [ ] 提交历史记录:查看整个 Git 历史记录,了解凭据、安全漏洞或专有代码
  • [ ] 提交消息:检查敏感信息的所有提交消息或不当内容
  • [ ] 文件内容:确保不包含凭据、API 密钥或机密数据的文件

生成和发布管道

  • [ ] 管道定义:查看公开的凭据、内部 URL 或环境详细信息
  • [ ] 生成日志:检查历史记录生成日志中是否有敏感信息
  • [ ] 服务连接:验证非用户无法访问的专用源依赖项

项目和包

  • [ ] 包内容:查看项目范围内源中的所有包,了解隐私问题
  • [ ] 源设置:了解公共项目源的上游设置已禁用

扩展和自定义

  • [ ] 自定义扩展:验证扩展是否适用于非members
  • [ ] 工作项表单自定义项:测试具有非member 访问权限的自定义控件和字段

步骤 1:为组织启用公共项目

  1. 登录到组织 (https://dev.azure.com/{yourorganization})。

  2. 选择 “组织设置”。

    显示“组织设置”按钮的屏幕截图

  3. 选择 “策略”。

  4. “安全策略”下,打开 “允许公共项目”。

    显示组织设置、策略页、安全策略的屏幕截图

步骤 2:更改项目可见性

  1. 导航到项目(https://dev.azure.com/{yourorganization}/{yourproject})。

  2. 选择“Project settings”。

  3. 选择“概述”。

  4. “可见性 ”下拉菜单中,选择 “公共 ”或“ 专用”。

  5. 选择“保存”

    显示项目设置、概述、可见性选项的屏幕截图。

管理公共项目中的参与者

添加项目成员

将参与者添加到公共项目的方式与专用项目相同:

  1. 转到 “项目设置>权限”。
  2. 选择 “添加 ”以邀请用户。
  3. 分配适当的访问级别(利益干系人、基本或基本 + 测试计划)。

有关详细信息,请参阅 将用户添加到组织

外部用户注意事项

邀请外部用户加入公共项目时:

  • 他们有权访问组织中的所有公共内容
  • 如果其他地方有敏感内容,请考虑为公共项目创建单独的组织

敏感内容的替代方法

选项 1:公共项目的单独组织

如果当前组织包含敏感材料:

  1. 专门为公共项目创建新组织
  2. 仅将不区分内容迁移到新组织
  3. 在原始专用组织中保留敏感项目

选项 2:选择性内容迁移

移动敏感工作项

  • 使用 移动工作项功能 将敏感项传输到专用项目
  • 跨项目链接继续为成员工作,但仍在非成员中隐藏

Git 存储库提示迁移

对于有问题的历史记录的存储库,仅迁移当前状态:

警告

此作将创建一个新的存储库,且未与原始存储库建立连接。 拉取请求历史记录和更改跟踪丢失。

# Clone the existing repository
git clone <original_clone_URL>
cd <repository_name>

# Ensure you're on the desired branch
git checkout main

# Remove Git history
rm -rf .git  # On Windows: rmdir /s .git

# Initialize new repository
git init

# Connect to new repository in public project
git remote add origin <new_public_repo_URL>

# Push current state as initial commit
git add .
git commit -m "Initial public release"
git push --set-upstream origin main

非members 的限制

公共项目的非成员无法执行以下作:

  • 编辑或创建任何内容(文件、工作项、管道)
  • 查看项目成员的电子邮件地址或联系信息
  • 访问管理设置或配置页
  • 在整个组织中使用高级搜索功能
  • 在同一组织中的多个公共项目之间导航
  • 收藏或关注项目

排查公共项目访问问题

常见问题

问题:非members 在将其公开后无法访问该项目

  • 解决方案:验证组织的“允许公共项目”策略是否已启用

问题:某些内容仍显示为受限

  • 解决方案:检查可能影响特定区域的拒绝权限

问题:外部用户无法参与

  • 解决方案:确保将其添加为具有适当访问级别的项目成员

后续步骤