我可以使用逻辑运算符OR搜索github标签吗?


70

我试图像这样过滤我在github上的所有问题:

label:bug OR label:enhancement

但是显然那是行不通的。我发现此页面 https://help.github.com/articles/searching-issues/ ,我认为它必须写在这里,但我不知道该怎么做。

难道真的不能过滤两个标签的问题吗?我的意思是,这将是一项基本任务,不是吗?

好吧,如果有人可以给我提示这件事,我将很高兴听到。


Answers:


57

Github不支持以这种方式搜索标签。搜索问题被认为是“ AND”而不是“ OR”。

这是用于尝试此操作的存储库。

演示github在搜索中支持“ AND”的示例

我的期望

将会出现所有增强,功能或两者均存在的问题。

  1. 增强功能

  2. 增强

  3. 特征

实际结果

仅显示了两者。

  1. 增强功能

因此,它不支持OR运算符。

更新

另一个麻烦的解决方法是在标签前使用-(减号)符号删除不需要的标签。看下面的例子

label:enhancement -label:bug -label:foo -label:bar

这将列出所有没有foo,bar和bug作为标签的项目。这会起作用,但如果标签太多,可能会变得乏味。

筛选仅包含增强功能的问题


1
似乎在他们的搜索中添加了一个不错的内容...给他们反馈:-)他们可能会添加它
cafebabe1991

1
这是一个非正式的地方,用于记录您希望github解决的github问题,并为此特定探针打开了一个问题:github.com/isaacs/github/issues/660。为了吸引github的注意力,只需联系GitHub并引用此问题和这个Stack Overflow问题,以及这个问题。
加布里埃尔·斯台普斯

9

理想情况下,GitHub的搜索将支持括号嵌套和分组,和逻辑ANDORNOT运营商。我想要他们支持这样的事情:

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)

取而代之的是,他们的搜索更具局限性,而且也很费劲,因为它的行为非常不同,具体取决于您在哪里键入搜索。由于不支持上述搜索样式,因此,请考虑以下更有限的搜索尝试:

我的搜索:

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,并且如果给定字段有多个,则删除所有的多个,除了最后一个,将保留。这就是我所说的“卷积”搜索行为,因为结果是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个单独的“提取请求”搜索进行标记并添加书签,例如:

  1. is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
    author:my-teammate-1
    
  2. is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
    author:my-teammate-2
    
  3. 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,只是一个跟踪问题的地方),然后在此处向他们发送消息,并为他们提供指向您问题的链接的方式,要求GitHub实施这种更高级的搜索行为。堆栈溢出答案。

GitHub搜索快速参考备忘单:

提醒:请阅读此处,快速回顾/总结使用GitHub全局搜索栏和GitHub Pull Request搜索栏时的期望。

默认的GITHUB拉式请求(PR)搜索:

  1. 我创建的所有开放式PR:
    1. https://github.com- >单击顶部的“请求” 。
    2. 直接链接:https//github.com/pulls
  2. 分配给我的所有未完成的PR:
    1. https://github.com- >“拉请求”->“已分配”。
    2. 直接链接:https//github.com/pulls/assigned
  3. 所有在评论中提及我的公开PR(通过@ my-username):
    1. https://github.com- >“请求”->“提及”。
    2. 直接链接:https//github.com/pulls/提到
  4. 要求我进行审查的所有开放式PR:
    1. https://github.com- >“请求”->“审查请求”。
    2. 直接链接:https//github.com/pulls/review-requested

自定义GITHUB拉式请求(PR)搜索:

  1. 所有PRS开放,作者:

    1. 使用拉取请求搜索栏:

      1. https://github.com- >单击顶部的“请求” 。
      2. 直接链接:https//github.com/pulls
      3. 现在,使用顶部中心/右上方的搜索栏。
      4. 请注意,此搜索栏一次仅限于一位作者:

        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
        
      5. 这是上面4个搜索中的第一个的示例URL:https : //github.com/pulls?q= is%3Aopen+is% 3Apr+archived%3Afalse+author%3Ausername-1

    2. 使用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

  2. 其他人对我的评价:

    1. 使用拉取请求搜索栏:

      • 请注意,此搜索栏一次仅限于一位作者:

        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

    2. 使用GitHub全局搜索栏(任何GitHub页面左上角的主搜索栏):

参考文献:

  1. /webapps/57933/how-to-search-with-logic-operators-on-github/111246#111246
  2. 另请参阅我的简短答案:https : //webapps.stackexchange.com/questions/57933/how-to-search-with-logic-operators-on-github/142071#142071
  3. 在GitHub上搜索入门
    1. 关于在GitHub上搜索
    2. 搜索问题和请求请求
    3. 使用搜索过滤问题并提取请求
    4. 了解搜索语法
    5. 对搜索查询进行故障排除-这里提到了ANDORNOT运算符,但实际上似乎并未实现这些查询,因此此页面必须是过时的:(。
  4. https://github.com/isaacs/github/issues/660

-2

例如,我正在过滤包含两个标签https://api.github.com/search/issues?q=language:python+label:%22good%20first%20issue%22+label:%22help%20wanted%22+state:open&sort=created 的问题,例如- 这个问题很旧,但我希望它能对可能卡在同一问题上的任何人有所帮助。


你什么意思?您的答案会在一个标签上过滤。真的不回答这个问题,或者我错过了什么吗?
Sybille Peters

@SybillePeters编辑了答案,感谢您通知我。
最多

有趣。您确定已应用OR。我浏览了列表,检查的结果同时包含两个标签。我开始一个不同的查询,“因为它是容易检查:api.github.com/search/...
西比尔彼得斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.