我正试图在github上过滤我的所有问题:
label:bug OR label:enhancement
但显然这不起作用。我找到了这个页面 https://help.github.com/articles/searching-issues/ 我认为它必须写在那里,但我无法弄清楚如何做到这一点。
难道真的不能过滤两个标签的问题吗?我的意思是,这将是一项基本任务,不是吗?
如果有人能给我一个提示,我会很高兴听到它。
答案 0 :(得分:43)
Github不支持以这种方式搜索标签。搜索问题被认为是" AND"而不是" OR"
这是一个用来试试这个的存储库。
Example demonstrating github supports "AND" in search
我的期望
应该出现所有增强,功能或两者兼有的问题。
增强功能
增强
特征
实际结果
只展示了两者。
因此它不支持OR运算符。
<强>更新强>
围绕这个的另一个乏味的黑客可能是在标签前使用 - (减号)符号删除不需要的标签。请看以下示例
label:enhancement -label:bug -label:foo -label:bar
这将列出所有没有foo,bar和bug作为标签的项目。这可行,但如果标签太多,可能会变得单调乏味。
答案 1 :(得分:8)
理想情况下,GitHub搜索将支持括号以进行嵌套和分组,以及逻辑AND
,OR
和NOT
运算符。我想要他们支持这样的事情:
is:open AND is:pr AND (review-requested:ElectricRCAircraftGuy OR
assignee:ElectricRCAircraftGuy) AND NOT(review-requested:"team:ORGNAME/team-1") AND
archived:false AND (author:my-teammate-1 OR author:my-teammate-2 OR
author:my-teammate-3)
相反,他们的搜索更具局限性,而且也很复杂,因为根据您键入的 where ,其行为非常不同。由于不支持上述搜索样式,因此,请考虑以下更有限的搜索尝试:
我的搜索
:is:open is:pr review-requested:ElectricRCAircraftGuy archived:false
author:my-teammate-1 author:my-teammate-2 author:my-teammate-3
我想要的行为是这样的:
is:open AND is:pr AND review-requested:ElectricRCAircraftGuy AND archived:false AND
(author:my-teammate-1 OR author:my-teammate-2 OR author:my-teammate-3)
但是,根据进行搜索的位置 ,您将获得两种截然不同的行为。如果我转到https://github.com/-> 拉动请求(在顶部),然后在此搜索栏中键入搜索内容,并以黄色突出显示:
...然后我得到了这种搜索行为:
is:open AND is:pr AND review-requested:ElectricRCAircraftGuy AND archived:false AND author:my-teammate-3
请注意,除最后一个字段以外的所有author
字段 均已删除。您一次只能搜索一个给定的字段!这太限制了!好像我已经进行了此搜索:
is:open is:pr review-requested:ElectricRCAircraftGuy archived:false
author:my-teammate-3
但是,如果我使用下面突出显示的全局搜索栏(在https://github.com/上的几乎任何位置都可以使用),然后将我的搜索粘贴并粘贴到此搜索栏中:
...然后我得到了这种搜索行为,在这种情况下,这正是我想要的:
is:open AND is:pr AND review-requested:ElectricRCAircraftGuy AND archived:false AND
(author:my-teammate-1 OR author:my-teammate-2 OR author:my-teammate-3)
这意味着在全局搜索栏中,除非有给定字段的倍数,否则每个搜索词在幕后都与AND
相连,然后每个搜索词都在下与OR
相连。引擎盖,如上图所示。但是,在本地的“拉取请求”搜索栏中,每个搜索词在幕后都与AND
连接在一起,并且如果给定字段有多个倍数,则所有的倍数都将被删除,最后一个除外< / em>,将保留。这就是我所说的“卷积”搜索行为,因为结果是1)令人困惑,2)不同(取决于您使用的搜索栏)和3)限制:即使您对GitHub搜索一无所知,仍然无法获得您可能想要的搜索结果。没有大量的研究和反复试验,很难理解正在发生的事情,而这正是我必须要做的。 :(
那么,如果您想查看my-teammate-1或my-teammate-2或my-teammate-3的所有“审阅请求”列表,该怎么办?好吧,您可以对单个全局搜索进行标记并添加书签,如下所示:
is:open is:pr review-requested:ElectricRCAircraftGuy archived:false
author:my-teammate-1 author:my-teammate-2 author:my-teammate-3
或者您可以为3个单独的“拉取请求”搜索添加书签并添加书签,例如:
is:open is:pr review-requested:ElectricRCAircraftGuy archived:false
author:my-teammate-1
is:open is:pr review-requested:ElectricRCAircraftGuy archived:false
author:my-teammate-2
is:open is:pr review-requested:ElectricRCAircraftGuy archived:false
author:my-teammate-3
“拉取请求”搜索的显示结果以更好的格式显示,因此,即使对3个“拉取请求”搜索进行标记并添加书签,也比对单个事物的单个全局搜索标记并添加书签更麻烦。您喜欢做什么。
如果您想做一些更复杂的事情,例如得到以下行为:
is:open AND is:pr AND (review-requested:ElectricRCAircraftGuy OR
assignee:ElectricRCAircraftGuy) AND NOT(review-requested:"team:ORGNAME/team-1") AND
archived:false AND (author:my-teammate-1 OR author:my-teammate-2 OR
author:my-teammate-3)
...抱歉,目前无法实现。您必须利用适合您的搜索栏行为来创建多个子搜索,并在必要时使用-
符号来排除结果。但是,您可以通过以下方法要求GitHub实现此更高级的搜索行为:打开问题here (not affiliated with GitHub--just a place to track issues),然后打开sending them a message here,并给他们提供指向您的问题以及此Stack Overflow答案的链接。
提醒:read here,快速回顾/总结使用GitHub全局搜索栏和GitHub Pull Request搜索栏时的期望。
所有PRS已打开,作者:
使用拉取请求搜索栏:
请注意,此搜索栏一次仅限一位作者:
is:open is:pr archived:false author:username-1
is:open is:pr archived:false author:username-2
is:open is:pr archived:false author:username-3
is:open is:pr archived:false author:username-4
以下是上面四个搜索中的第一个的示例URL:https://github.com/pulls?q=is%3Aopen+is%3Apr+archived%3Afalse+author%3Ausername-1
使用GitHub全局搜索栏(主搜索栏位于任何GitHub页面的左上角):
此搜索栏一次允许多个作者,但显示的内容与上面的“拉取”请求搜索略有不同(看起来不尽人意):
is:open is:pr archived:false author:username-1 author:username-2 author:username-3 author:username-4
在GitHub全局搜索栏中执行以下搜索后,URL如下所示:https://github.com/search?q=is%3Aopen+is%3Apr+archived%3Afalse+author%3Ausername-1+author%3Ausername-2+author%3Ausername-3+author%3Ausername-4
其他人对我的评论:
使用拉取请求搜索栏:
请注意,此搜索栏一次仅限一位作者:
is:open is:pr archived:false review-requested:my-username author:username-1
is:open is:pr archived:false review-requested:my-username author:username-2
is:open is:pr archived:false review-requested:my-username author:username-3
is:open is:pr archived:false review-requested:my-username author:username-4
以下是上面第一次搜索的示例URL:https://github.com/pulls?q=is%3Aopen+is%3Apr+archived%3Afalse+review-requested%3Amy-username+author%3Ausername-1
使用GitHub全局搜索栏(主搜索栏位于任何GitHub页面的左上角):
此搜索栏一次允许多个作者,但显示的内容与上面的“拉取”请求搜索略有不同(看起来不尽人意):
is:open is:pr archived:false review-requested:my-username author:username-1 author:username-2 author:username-3 author:username-4
AND
,OR
和NOT
运算符,但是他们似乎并未真正实现这些运算符,因此该页面必须不存在-of-date:(。答案 2 :(得分:1)
自 2021 年 8 月以来,是的。
见:
<块引用>您现在可以使用逻辑 OR 按标签搜索问题。
只需使用逗号分隔标签即可。
例如:
label:"good first issue",bug
将列出带有 good first issue
或 bug
标签的所有问题。
答案 3 :(得分:0)
例如,我正在过滤包含两个标签的问题,例如-
https://api.github.com/search/issues?q=language:python+label:%22good%20first%20issue%22+label:%22help%20wanted%22+state:open&sort=created
这个问题很旧,但我希望它能对可能会遇到相同问题的所有人有所帮助。