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

Mer*_*erc 47 github filter

我试图在github上过滤我的所有问题,如下所示:

label:bug OR label:enhancement
Run Code Online (Sandbox Code Playgroud)

但显然这不起作用.我发现这个页面 https://help.github.com/articles/searching-issues/ 我觉得它必须写在那里,但我无法弄清楚如何去做.

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

好吧,如果有人能给我一个提示,我会很高兴听到它.

caf*_*991 48

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

这是一个用来试试这个的存储库.

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

我的期望

应该出现所有增强,功能或两者的问题..

  1. 增强和功能

  2. 增强

  3. 特征

实际结果

只展示了两者.

  1. 增强和功能

因此它不支持OR运算符.

UPDATE

围绕这个的另一个繁琐的黑客可能是在标签之前使用 - (减号)符号删除不需要的标签.请看下面的例子

label:enhancement -label:bug -label:foo -label:bar
Run Code Online (Sandbox Code Playgroud)

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

过滤仅包含增强功能的问题

  • 这是一个非官方的地方,用于记录您希望 github 修复的 github 问题,并针对此特定问题开放了一个问题:https://github.com/isaacs/github/issues/660。要引起 github 的关注,只需[联系 GitHub](https://support.github.com/contact) 并引用此问题和这个 Stack Overflow 问题,以及[这个](https://webapps.stackexchange)。 com/questions/57933/how-to-search-with-logic-operators-on-github)。 (2认同)

Gab*_*les 16

截至 2021 年 8 月,另请参阅此处:我可以使用逻辑运算符 OR 搜索 github 标签吗?和:https://github.blog/changelog/2021-08-02-search-issues-by-label-using-logical-or/


理想情况下,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)
Run Code Online (Sandbox Code Playgroud)

相反,他们的搜索更多限制,也很令人费解,因为它依赖于非常不同的行为,在那里您键入的搜索。由于不支持上述搜索样式,让我们考虑这种更有限的搜索尝试:

我的搜索:

is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
author:my-teammate-1 author:my-teammate-2 author:my-teammate-3
Run Code Online (Sandbox Code Playgroud)

我想要的行为是这样的:

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)
Run Code Online (Sandbox Code Playgroud)

但是根据你在哪里进行搜索,你会得到两种截然不同的行为。如果我转到https://github.com/ -->拉取请求(在顶部)并在此处以黄色突出显示的搜索栏中键入搜索:

在此处输入图片说明

...然后我得到这个搜索行为:

is:open AND is:pr AND review-requested:ElectricRCAircraftGuy AND archived:false AND author:my-teammate-3
Run Code Online (Sandbox Code Playgroud)

请注意,最后一个author字段之外的所有字段都已删除。您一次只能搜索一个给定的字段!这太局限了!就好像我已经完成了这个搜索:

is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
author:my-teammate-3
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用下面突出显示的全局搜索栏,它几乎可以在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)
Run Code Online (Sandbox Code Playgroud)

这意味着在全局搜索栏中,每个搜索词都AND在后台连接,除非给定字段有多个,然后每个搜索项都在后台连接OR,如上所示。然而,在本地 Pull Request 搜索栏中,每个搜索词都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
Run Code Online (Sandbox Code Playgroud)

或者,您可以将 3 个单独的拉取请求搜索添加书签,如下所示:

  1. 开放的、非存档的 PR 请求我的审查和通过 my-teammate-1
    is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
    author:my-teammate-1
    
    Run Code Online (Sandbox Code Playgroud)
  2. 开放的、非存档的 PR 请求我的审查和通过 my-teammate-2
    is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
    author:my-teammate-2
    
    Run Code Online (Sandbox Code Playgroud)
  3. 开放的、非存档的 PR 请求我的审查和通过 my-teammate-3
    is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
    author:my-teammate-3
    
    Run Code Online (Sandbox Code Playgroud)

拉取请求搜索的显示结果以更好的格式显示,因此即使对 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)
Run Code Online (Sandbox Code Playgroud)

……抱歉,目前不可能。您必须利用适合您的搜索栏行为创建多个子搜索,并-在必要时使用标志来排除结果。但是,您可以通过在此处打开一个问题(不隶属于 GitHub - 只是一个跟踪问题的地方),然后在此处向他们发送消息并向他们提供指向您的问题和此的链接,来请求 GitHub 实施这种更高级的搜索行为堆栈溢出答案。

GitHub 搜索快速参考备忘单:

提醒:阅读此处以快速复习/总结使用 GitHub 全局搜索栏与 GitHub 拉取请求搜索栏时的预期结果。

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

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

  2. 其他人对我的评论要求:

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

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

也可以看看:

  1. 我的答案是关于如何通过“to branch”、“from branch”和作者搜索 PR,包括使用自定义 Chrome 搜索引擎执行此操作,您可以在搜索栏中快速触发: 如何过滤所有 GitHub 拉取请求对于特定的目标分支

参考:

  1. https://webapps.stackexchange.com/questions/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

  • 这不是一个答案。这是一篇愿望清单博客文章。 (5认同)
  • @JRomero,我不同意你的说法,这不是一个有效的答案。我说明了当前的行为是什么,以及如何在某些情况下获得所需的行为。我解释了限制以及何时不起作用。我还解释了如何联系 GitHub 提出功能请求。由于我和其他人的努力,他们现在似乎已经实施了该解决方案(请参阅我刚刚添加到答案顶部的新链接)。我知道我的答案已在 GitHub 上的多个位置链接到有关此讨论的内容,并且_可能_对结果做出了贡献。 (3认同)

Von*_*onC 6

自 2021 年 8 月以来,是的。

看:

使用逻辑 OR 按标签搜索问题

您现在可以使用逻辑 OR 按标签搜索问题。

只需使用逗号分隔标签即可。
例如:

label:"good first issue",bug 
Run Code Online (Sandbox Code Playgroud)

将列出所有带有标签good first issue或 的问题bug

  • 最后!这是对这个令人敬畏的消息的赞成票,但现在没有人会赞成我的回答:( (2认同)
  • 此更改/新功能似乎尚未传播到 GitHub Enterprise,这是许多公司(例如我工作的公司)内部使用的 GitHub 的付费版本。 (2认同)