Skip to main content

筛选 projects

使用筛选器选择哪些项显示在项目视图中。

可以使用项元数据的筛选器(如代理人和应用于问题的标签)以及按项目中的字段来自定义视图中显示的项。 可以合并筛选并将其保存为视图。 有关详细信息,请参阅“管理视图”。

若要筛选视图,请单击 并开始键入要筛选的字段和值。 当您输入时,可能的值将会出现。 还可按 Command+K (Mac) 或 Ctrl+K (Windows/Linux) 来打开项目命令面板,然后键入“筛选依据”以从可用筛选器中进行选择。

“Mona 的项目”的屏幕截图。 标有“按关键字或字段筛选”的字段以橙色边框突出显示。

在板布局中,你可以单击项目数据以筛选具有该值的项。 例如,单击某个分配对象以仅显示该分配对象的项目。 要移除过滤器,请再次单击项数据。

使用多个筛选器将充当逻辑 AND 筛选器。 例如,label:bug status:"In progress" 将返回带 bug 标签且状态为“正在进行”的项。 还可以为同一字段提供多个值,以充当逻辑 OR 筛选器。 例如,label:bug,support 将返回带 bugsupport 标签的项。 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:LABELlabel:bug 将显示应用了“bug”标签的项。
field:VALUEstatus:done 将显示“状态”字段设置为“已完成”的项。
reviewers:USERNAME
reviewers:octocat 将显示已由 @octocat 审查的项。
milestone:"MILESTONE"
milestone:"QA release" 将显示分配给“QA 发布”里程碑的项。

组合筛选器

可以为多个字段创建筛选器。 视图将显示与所有筛选器匹配的项。

限定符示例
assignee:
USERNAME field: VALUE | **assignee:octocat priority:1** 将显示分配给 @octocat 且优先级为 **1** 的项。

还可以筛选同一字段中的多个值。 如果用逗号分隔这些值,则视图将显示与提供的任何值匹配的项。

限定符示例
assignee:USERNAME,USERNAME
assignee:octocat,stevecat 将显示分配给 @octocat 或 @stevecat 的项。

若要筛选同一字段中的多个值,但显示与所有提供的值匹配的项,则可以为每个值重复限定符。

限定符示例
assignee:
USERNAME assignee: USERNAME | **assignee:octocat assignee:stevecat** 将显示同时分配给 @octocat 和 @stevecat 的项。

您还可以组合只匹配部分项目和匹配所有项目的筛选器。

限定符示例
field:
VALUE , VALUE assignee: USER assignee: USER | **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:FIELDno: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:<=VALUEpoints:<=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”完全匹配的注释文本字段的项。
TEXTAPI 将显示标题或任何其他文本字段中包含“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:*TEXTlabel:*support 将显示标签以“support”结尾的项目。