可以使用项元数据的筛选器(如代理人和应用于问题的标签)以及按项目中的字段来自定义视图中显示的项。 可以合并筛选并将其保存为视图。 有关详细信息,请参阅“管理视图”。
若要筛选视图,请单击 并开始键入要筛选的字段和值。 当您输入时,可能的值将会出现。 还可按 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 发布”里程碑的项。 |
组合筛选器
可以为多个字段创建筛选器。 视图将显示与所有筛选器匹配的项。
限定符 | 示例 |
---|---|
assignee:USERNAME field:VALUE | assignee:octocat priority:1 将显示优先级为 1 的分配给 @octocat 的项 。 |
还可以筛选同一字段中的多个值。 如果用逗号分隔这些值,则视图将显示与提供的任何值匹配的项。
限定符 | 示例 |
---|---|
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 不会显示分配给 @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:assignee | no:assignee 将显示任何未分配的项。 |
no:reviewers | no:reviewers 将显示没有审阅者的拉取请求。 |
no:FIELD | no:priority 将显示优先级字段为空的项。 |
还可以添加连字符作为前缀来否定此行为,并仅返回具有值的项。
限定符 | 示例 |
---|---|
-no:assignee | -no:assignee 将仅显示已分配的项。 |
-no:FIELD | -no:priority 将仅显示优先级字段中具有值的项。 |
按项位置筛选
使用 repo
限定符可筛选位于特定存储库中的项。
限定符 | 示例 |
---|---|
repo:OWNER/REPO | repo: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 将显示之前关闭后已重新打开的项。 |
筛选项的上次更新时间
可以使用 {number}days
语法筛选项的上次更新时间。
限定符 | 示例 |
---|---|
last-updated:NUMBERdays | last-updated:1day 将显示上次更新时间为一天或多天前的项。 |
last-updated:7days 将显示上次更新时间为七天或更多天前的项。 | |
-last-updated:10days 将显示过去十天内更新的项。 |
GitHub Enterprise Server 会在以下情况下将问题或拉取请求标记为已更新:
- 已创建
- 已重新打开
- 已编辑
- 已评论
- 已标记
- 被分派人已更新
- 里程碑已更新
- 转移到其他存储库
筛选数字、日期和迭代字段
可以使用 >
、>=
、<
和 <=
来比较数字、日期和迭代字段。 日期应以 YYYY-MM-DD
格式提供。
限定符 | 示例 |
---|---|
field:>VALUE | priority:>1 将显示优先级大于 1 的项。 |
field:>=VALUE | date:>=2022-06-01 将显示日期为“2022-06-01”或更晚的项。 |
field:<VALUE | iteration:<"Iteration 5" 将显示其迭代在“迭代 5”之前的项。 |
field:<=VALUE | points:<=10 将显示分数不超过 10 的项。 |
还可以使用 ..
筛选包含范围。 使用范围时,*
可作为通配符运算符提供。
限定符 | 示例 |
---|---|
field:VALUE..VALUE | priority: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”的项。 |