可以使用项元数据的筛选器(如代理人和应用于问题的标签)以及按项目中的字段来自定义视图中显示的项。 可以合并筛选并将其保存为视图。 有关详细信息,请参阅“管理视图”。
若要筛选视图,请单击 并开始键入要筛选的字段和值。 当您输入时,可能的值将会出现。 还可按 Command+K (Mac) 或 Ctrl+K (Windows/Linux) 来打开项目命令面板,然后键入“筛选依据”以从可用筛选器中进行选择。

在板布局中,你可以单击项目数据以筛选具有该值的项。 例如,单击某个分配对象以仅显示该分配对象的项目。 要移除过滤器,请再次单击项数据。
使用多个筛选器将充当逻辑 AND 筛选器。 例如,label:bug status:"In progress" 将返回带 bug 标签且状态为“正在进行”的项。 还可以为同一字段提供多个值,以充当逻辑 OR 筛选器。 例如,label:bug,support 将返回带 bug 或 support 标签的项。 Projects 当前不支持跨多个字段的逻辑 OR 筛选器。
对于使用 Projects 的见解创建的图表,可使用相同的筛选器来筛选用于创建图表的数据。 有关详细信息,请参阅“关于 Projects 的见解”。
筛选视图并添加项时,筛选后的元数据将应用到新项。 例如,如果将筛选条件设置为 status:"In progress",并添加项,则新项的状态将设置为“正在进行”。
可以使用筛选器生成用于非常特定的目的的视图。 例如,可以使用 assignee:@me status:todo last-updated:5days 创建分配给当前用户的所有工作(状态为“todo”,且在过去五天内未更新)的视图。 可以使用负筛选器(如 no:label no:assignee repo:octocat/game)创建一个分类视图,该视图将显示没有标签和负责人且位于 octocat/game 存储库中的项。
筛选字段
| 限定符 | 示例 |
|---|---|
assignee:USERNAME |
**assignee:octocat** 将显示分配给 @octocat 的项。
| label:LABEL | label:bug 将显示应用了“bug”标签的项。
| field:VALUE | status:done 将显示“状态”字段设置为“已完成”的项。
| reviewers:USERNAME |
reviewers:octocat 将显示已由 @octocat 审查的项。
| milestone:"MILESTONE" |
milestone:"QA release" 将显示分配给“QA 发布”里程碑的项。
组合筛选器
可以为多个字段创建筛选器。 视图将显示与所有筛选器匹配的项。
限定符 示例
<code>
assignee:
<em>
USERNAME
</em>
field:
<em>
VALUE
</em>
</code>
|
**assignee:octocat priority:1** 将显示分配给 @octocat 且优先级为 **1** 的项。
还可以筛选同一字段中的多个值。 如果用逗号分隔这些值,则视图将显示与提供的任何值匹配的项。
限定符 示例 assignee:USERNAME,USERNAME
**assignee:octocat,stevecat** 将显示分配给 @octocat 或 @stevecat 的项。
若要筛选同一字段中的多个值,但显示与所有提供的值匹配的项,则可以为每个值重复限定符。
限定符 示例
<code>
assignee:
<em>
USERNAME
</em>
assignee:
<em>
USERNAME
</em>
</code>
|
**assignee:octocat assignee:stevecat** 将显示同时分配给 @octocat 和 @stevecat 的项。
您还可以组合只匹配部分项目和匹配所有项目的筛选器。
限定符 示例
<code>
field:
<em>
VALUE
</em>
,
<em>
VALUE
</em>
assignee:
<em>
USER
</em>
assignee:
<em>
USER
</em>
|
**label:bug,onboarding assignee:octocat assignee:stevecat** 将显示具有 bug 或 onboarding 标签但同时分配给 @octocat 和 @stevecat 的项。
否定筛选器
可以通过添加连字符作为前缀来反转任何筛选器,包括组合。
限定符 示例 -assignee:USERNAME-assignee:octocat 不会显示分配给 **** 的任何项。 -field:VALUE-status:done 不会显示状态为“已完成”的任何项。 -field:VALUE,VALUE-priority:1,2 不会显示优先级为 1 或 2 的任何项。
筛选具有值的项
可以使用 has: 来筛选具有值的项
限定符 示例 has:assignee
**has:assignee** 将列出具有指定人的项目。
|has:label |
has:label 将显示具有标签的项。
|has:FIELD |
has:priority 将显示具有优先级字段值的项。
筛选缺少值的项
可以使用 no: 来筛选缺少值的项
限定符 示例 no:assigneeno:assignee 将显示任何未分配的项。 no:reviewers
**no:reviewers** 将显示没有审查者的拉取请求。
|no:FIELD | no:priority 将显示优先级字段为空的项。
还可以添加连字符作为前缀来否定此行为,并仅返回具有值的项。
限定符 示例 -no:assignee-no:assignee 将只显示已分配的条目。 -no:FIELD-no:priority 将仅显示优先级字段中具有值的项。
按项位置筛选
使用 repo 限定符可筛选位于特定存储库中的项。
限定符 示例 repo:OWNER/REPOrepo:octocat/game 将显示位于“octocat/game”存储库中的项目。
筛选项目状态或项目类型
可以使用 is 限定符筛选特定类型的项或处于特定状态的项。
限定符 示例 is:STATE
**is:open** 将显示打开的议题和拉取请求。
| | "is:closed" 将显示已关闭的议题和拉取请求。
| |
is:merged 将显示任何已合并的拉取请求。
|is:TYPE |
is:issue 标签将仅显示问题。
| | is:pr 将仅显示拉取请求。
| | is:draft 将显示草稿问题和草稿拉取请求。
| | is:issue is:open 将显示未解决的问题。
按关闭原因筛选
可以按关闭原因筛选关闭的项。
限定符 示例 reason:CLOSE REASON
**reason:completed** 将显示因已完成而关闭的项。
| | reason:"not planned" 将显示原因为“未计划”的已关闭项。
| | reason:reopened 将显示之前关闭后已重新打开的项。
按上次更新时间筛选项目
`updated` 筛选器字段提供了一种更强大、更灵活的方法,可根据上次修改日期筛选项目。
限定符 示例 updated:NUMBERdays
**
updated:@today
** 将显示今天更新的项。
| |
**
updated:@today-1d
** 将显示更新于 1 天前的项目。
| |
updated:>@today-1w 将显示最近更新时间为七天或更久之前的项。
| |
updated:>@today-30d 将显示最近更新时间为三十天或更久之前的项。
| |
**
-updated:@today
** 排除今天更新的项目。
GitHub 会在以下情况下将问题或拉取请求标记为已更新:
- 已创建
- 已重新打开
- 已编辑
- 已评论
- 已标记
- 被分派人已更新
- 里程碑已更新
- 转移到其他存储库
筛选数字、日期和迭代字段
可以使用 >、>=、< 和 <= 来比较数字、日期和迭代字段。 日期应以 YYYY-MM-DD 格式提供。
限定符 示例 field:>VALUEpriority:>1 将显示优先级大于 1 的项。 field:>=VALUEdate:>=2022-06-01 将显示日期为“2022-06-01”或更晚的项。 field:<VALUE
**iteration:<"Iteration 5"** 将显示迭代早于“Iteration 5”的项。
| field:<=VALUE | points:<=10 将显示点数为 10 点或更少的项目。
还可以使用 .. 筛选包含范围。 使用范围时,* 可作为通配符运算符提供。
限定符 示例 field:VALUE..VALUEpriority:1..3 将显示优先级为 1、2 或 3 的项。 date:2022-01-01..2022-12-31 会显示 2022 年的条目。
**points:\*..10** 将显示点值最高为 10(含)的项。
| |
iteration:"Iteration 1..Iteration 4" 将显示“迭代 1”、“迭代 2”、“迭代 3”和“迭代 4”中的项。
使用关键字筛选被指派者和审阅者
可以使用 @me 关键字在筛选器中表示自己。
限定符 示例 field:@me
**
assignee:@me
** 将显示分配给已登录用户的项。
| |
**
-reviewers:@me
** 将显示未由已登录用户审查的项。
使用关键字筛选迭代和日期字段
可以使用 @previous、@current 和 @next 关键字来筛选相对于当前迭代的迭代。 还可以使用 @today 筛选当前日期。
限定符 示例 field:@keyword
**
iteration:@current
** 将显示分配给当前迭代的项目。
| |
**
iteration:@next
** 将显示分配给下一个迭代的项。
| field:@today |
**
date:@today
** 将显示日期设置为当天的项。
还可以将 >、>=、<、<=、+、- 和 .. 范围与关键字一起使用。
限定符 示例 field:@keyword..@keyword+n
**
iteration:@current..@current+3** 将显示分配给当前迭代和接下来三个迭代的项。
| |
**
date:@today..@today+7** 将显示日期设置为今天或接下来七天的项。
| field:<@keyword |
iteration:<@current 将显示分配给当前迭代之前任何迭代的项。
| field:>=@keyword |
date:>=@today 将显示日期设置为今天或更晚的项。
按文本字段筛选
可以按特定文本字段进行筛选,也可以对所有文本字段和标题使用通用文本筛选器。 使用包含空格或特殊字符的文本进行筛选时,请将文本用 " 或 ' 引号括起来。
限定符 示例 field:"TEXT"
**标题:“Bug 修复”** 将显示标题与“Bug 修复”完全匹配的项目。
| field:TEXT |
note:complete将显示具有与“complete”完全匹配的注释文本字段的项。
| TEXT | API 将显示标题或任何其他文本字段中包含“API”的项。
|
field:
TEXT
TEXT
|
label:bug rendering 将显示具有“bug”标签且标题或任何其他文本字段中包含“rendering”的项。
在所有文本字段和标题的通用文本搜索中,匹配仅基于字词的开头部分,而不是任意部分。
例如,如果问题标题为“Document full-text search”****,则:
- 匹配****:“Doc”、“full”、“search”
- 不匹配****:“cument”、“ext”、“arch”
此方法有助于使通用文本搜索更加精准和相关。
还可以将 * 用作通配符。
限定符 示例 field:*TEXT*
**label:*bug*** 将显示标签中包含单词“bug”的项。
| field:TEXT* | title:API* 将显示标题以“API”开头的项。
| field:*TEXT | label:*support 将显示标签以“support”结尾的项目。