机密 Issue
机密性 Issue 是指那些仅具有足够权限的项目成员可见的 Issue, 开源项目和公司都可以使用机密 Issue 来使安全漏洞不被公开或防止意外泄漏。
将 Issue 设置为私密
您可以在创建 Issue 或编辑现有 Issue 的过程中将其设置为保密。
创建新 Issue 时,可以在文本区域下方的复选框中将问题标记为机密 Issue。选中该框,然后点击提交问题按钮以创建 Issue。对于现有 Issue ,可以对其进行编辑,然后选中机密复选框,并点击保存更改 。
修改 Issue 的机密性
有两种方法可以更改 Issue 的机密性:
第一种方法是编辑 Issue 并标记/取消标记机密复选框,保存 Issue 后,它将更改 Issue 的机密性;
第二种方法是在 Issue 详情页右侧找到"保密性"部分,然后单击编辑,在弹出的窗口中可以设置打开或关闭 Issue 的机密性。
每次 Issue 机密性的更改也会被系统作为评论自动记录在 Issue 的历史记录中。
机密 Issue 区别
**注意:**如果您没有足够的权限,您将无法看到机密 Issue 。
我们可以通过以下几点来区分机密 Issue 和普通 Issue:
在 Issue 列表页面视图中,您可以在标记为机密的问题旁边看到斜线图标
同样,在 Issue 详情页,您可以在 Issue 标题上方看到斜线图标,此外在下方的评论区域中也有一个提示框,表明您正在评论的 Issue 是机密的。
Issue 详情页右边栏也有一个 机密性的标识:
机密 Issue 的访问权限
对于机密 Issue ,有两种级别的访问权限。一般情况下,机密 Issue 仅对具有Reporter 访问权限的项目成员可见;但是,Guest 用户也可以创建机密 Issue ,但 Guest 只能查看到他们自己创建的机密 Issue 。
对于没有权限的用户,机密 Issue 在搜索结果中也会被隐藏。
由机密 Issue 创建的合并请求
为了防止机密信息在帮助解决机密 Issue 的过程中从公共项目中泄露,我们可以通过创建私有 Fork 项目的合并请求来解决机密 Issue 。
创建的合并请求将针对私有 Fork 项目的默认分支,而不是公共上游项目的默认分支。这样可以防止合并请求、分支和提交进入公共代码仓库,避免过早地泄露机密信息。当准备好将机密提交公开时,可以通过打开从私有 Fork 项目到公共上游项目的合并请求来完成。
**最佳实践:**如果您在原始上游的同一组织或子组织中创建了一个长期的私有 Fork 项目,则公共项目的所有具有 Developer 权限的用户在私有项目中也将具有相同的权限,这样,所有有权查看机密 Issue 的开发人员都将拥有更简化的工作流程来解决这些 Issue 。
实现方式
在机密 Issue 中,将会显示创建机密合并请求按钮,单击它会打开一个下拉列表,您可以在其中选择创建机密合并请求和分支或创建分支。
项目下拉列表将显示用户至少是 Developer,并且合并请求已启用的全部私有 Fork 项目列表。
每当分支名称和**源(分支或标记)**字段更改时,将检查目标或源分支的可用性。 两个分支都应在所选的私有 Fork项目中可用。
单击创建机密合并请求按钮后,将在私有 Fork 项目中创建分支和合并请求,当选择创建分支时,将仅创建分支。
在私有 Fork项目中创建分支后,开发人员现在可以将代码推送到该分支以解决机密 Issue 。