Kann ich Github-Labels mit dem logischen Operator ODER durchsuchen?

70

Ich versuche, alle meine Probleme auf Github wie folgt zu filtern:

label:bug OR label:enhancement

Aber das funktioniert natürlich nicht. Ich habe diese Seite https://help.github.com/articles/searching-issues/ gefunden und dachte, sie muss dort geschrieben werden, aber ich kann nicht herausfinden, wie es geht.

Könnte es wirklich sein, dass man Probleme von zwei Labels nicht filtern kann? Ich meine, das wäre eine so grundlegende Aufgabe, nicht wahr?

Wenn mir jemand einen Hinweis geben könnte, würde ich mich freuen, ihn zu hören.

Merc
quelle

Antworten:

57

Github unterstützt das Durchsuchen der Etiketten auf diese Weise nicht. Die Suche nach Problemen wird als "UND" anstelle eines "ODER" betrachtet.

Hier ist ein Repository, mit dem Sie dies ausprobieren können.

Beispiel für die Demonstration, dass Github "UND" bei der Suche unterstützt

Meine Erwartungen

Alle Probleme, die Verbesserungen, Funktionen oder beides sind, sollten auftreten.

  1. Verbesserung und Funktion

  2. Erweiterung

  3. Merkmal

Tatsächliche Ergebnis

Es wurden nur diejenigen gezeigt, die beide waren.

  1. Verbesserung und Funktion

Daher wird der OR-Operator nicht unterstützt.

AKTUALISIEREN

Ein weiterer mühsamer Hack könnte darin bestehen, die unerwünschten Etiketten mit einem - (Minus) -Symbol vor dem Etikett zu entfernen. Schauen Sie sich das folgende Beispiel an

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

Dadurch werden alle Elemente aufgelistet, auf denen foo, bar und bug nicht beschriftet sind. Dies funktioniert, kann jedoch mühsam werden, wenn zu viele Etiketten vorhanden sind.

Filterprobleme, die nur die Verbesserungen enthalten

cafebabe1991
quelle
1
Scheint eine nette Ergänzung zu ihrer Suche zu sein ... Gib ihnen ein Feedback :-) sie könnten es hinzufügen
cafebabe1991
1
Hier ist ein inoffizieller Ort zum Protokollieren von Github-Problemen, die Github beheben soll. Ein Problem ist für dieses spezielle Problem offen: github.com/isaacs/github/issues/660 . Um die Aufmerksamkeit von Github zu erregen, wenden Sie sich einfach an GitHub und verweisen Sie auf dieses Problem und genau diese Frage zum Stapelüberlauf sowie auf diese .
Gabriel Staples
9

Idealerweise würde GitHub Suche Klammer für Verschachtelung unterstützen und Gruppieren und logisch AND, ORund NOTOperatoren. Ich möchte, dass sie so etwas unterstützen:

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)

Stattdessen ist ihre Suche viel einschränkender und auch ziemlich kompliziert, da sie sich je nachdem, wo Sie Ihre Suche eingeben, SEHR UNTERSCHIEDLICH verhält . Da der obige Suchstil nicht unterstützt wird, betrachten wir stattdessen diesen eingeschränkteren Suchversuch:

Meine Suche:

is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
author:my-teammate-1 author:my-teammate-2 author:my-teammate-3

Das Verhalten, das ich will, ist das folgende:

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)

Abhängig davon, wo Sie diese Suche durchführen, erhalten Sie zwei sehr unterschiedliche Verhaltensweisen . Wenn ich zu https://github.com/ gehe -> Anfragen abrufen (oben) und die Suche in diese hier gelb hervorgehobene Suchleiste eingeben:

Geben Sie hier die Bildbeschreibung ein

... dann bekomme ich folgendes Suchverhalten:

is:open AND is:pr AND review-requested:ElectricRCAircraftGuy AND archived:false AND author:my-teammate-3

Beachten Sie, dass alle authorFelder außer dem letzten gelöscht wurden. Sie können immer nur nach EINEM GEGEBENEN FELD suchen! Das ist sooo einschränkend! Es ist, als hätte ich diese Suche durchgeführt:

is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
author:my-teammate-3

Wenn ich jedoch die unten hervorgehobene globale Suchleiste verwende, die praktisch überall auf https://github.com/ verfügbar ist , und meine Suche kopiere und in diese Suchleiste einfüge:

Geben Sie hier die Bildbeschreibung ein

... dann bekomme ich dieses Suchverhalten, genau das, was ich in diesem Fall will:

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)

Dies bedeutet, dass in der globalen Suchleiste jeder Suchbegriff ANDunter der Haube verbunden wird, es sei denn, es gibt ein Vielfaches eines bestimmten Felds, und dann wird jeder dieser Begriffe ORunter der Haube verbunden, wie oben gezeigt. In der lokalen Suchleiste für Pull-Anforderungen wird jedoch jeder Suchbegriff ANDunter der Haube mit verknüpft. Wenn ein bestimmtes Feld ein Vielfaches enthält, werden alle Vielfachen mit Ausnahme des letzten gelöscht, die beibehalten wird. Dies ist das, was ich als "verschlungenes" Suchverhalten bezeichne, da die Ergebnisse 1) verwirrend, 2) unterschiedlich sind, je nachdem, welche Suchleiste Sie verwenden, und 3) einschränkend: Selbst wenn Sie alles über die GitHub-Suche wissen, ist es immer noch unmöglich, das zu erhalten Suchergebnisse, die Sie vielleicht möchten. Es ist sehr schwer zu verstehen, was ohne umfangreiche Forschung und Versuch und Irrtum passiert, und genau das musste ich tun. :(

Was sind Ihre Optionen, wenn Sie eine Liste aller "Überprüfungsanfragen" von my-teammate-1 ODER my-teammate-2 ODER my-teammate-3 anzeigen möchten? Nun, Sie können eine einzelne globale Suche wie folgt durchführen und mit einem Lesezeichen versehen:

is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
author:my-teammate-1 author:my-teammate-2 author:my-teammate-3

ODER Sie können 3 separate Pull-Request-Suchen wie folgt durchführen und mit einem Lesezeichen versehen:

  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
    

Die Anzeigeergebnisse der Pull-Request-Suche werden in einem schöneren Format angezeigt. Auch wenn das Ausführen und Lesezeichen der 3 Pull-Request-Suchen schwieriger ist als das Ausführen und Lesezeichen einer einzelnen globalen Suche derselben Sache, ist dies möglicherweise das, was Sie bevorzugen machen.

Und wenn Sie etwas Komplizierteres tun möchten, z. B. dieses Verhalten:

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)

... Entschuldigung, das ist derzeit nicht möglich. Sie müssen mehrere -Untersuchen erstellen, indem Sie das für Sie geeignete Verhalten der Suchleiste nutzen und gegebenenfalls das Zeichen verwenden, um Ergebnisse auszuschließen. Sie können GitHub jedoch auffordern, dieses erweiterte Suchverhalten zu implementieren, indem Sie hier ein Problem öffnen (nicht mit GitHub verbunden - nur ein Ort, um Probleme zu verfolgen) und ihnen hier eine Nachricht senden und ihnen die Links zu Ihrem Problem und zu diesem geben Antwort auf Stapelüberlauf.

Kurzreferenz-Spickzettel für die GitHub-Suche:

Erinnerung: Lesen Sie hier, um eine kurze Auffrischung / Zusammenfassung dessen zu erhalten, was Sie erwartet, wenn Sie die globale GitHub-Suchleiste im Vergleich zur GitHub Pull Request-Suchleiste verwenden.

STANDARD GITHUB PULL REQUEST (PR) SUCHT:

  1. Alle von mir erstellten offenen PRs:
    1. https://github.com -> Klicken Sie ganz oben auf "Anfragen abrufen" .
    2. Direkter Link: https://github.com/pulls
  2. Alle mir zugewiesenen offenen PRs:
    1. https://github.com -> "Pull Requests" -> "Assigned".
    2. Direkter Link: https://github.com/pulls/assigned
  3. Alle offenen PRs, die mich in einem Kommentar erwähnen (via @ my-username):
    1. https://github.com -> "Pull-Anfragen" -> "Erwähnt".
    2. Direkter Link: https://github.com/pulls/mentolved
  4. Alle offenen PRs, für die meine Bewertung angefordert wird:
    1. https://github.com -> "Anfragen abrufen" -> "Anfragen überprüfen".
    2. Direkter Link: https://github.com/pulls/review-requested

CUSTOM GITHUB PULL REQUEST (PR) SUCHT:

  1. ALLE PRS GEÖFFNET, VOM AUTOR:

    1. Verwenden der Suchleiste für Pull-Anforderungen:

      1. https://github.com -> Klicken Sie ganz oben auf "Anfragen abrufen" .
      2. Direkter Link: https://github.com/pulls
      3. Verwenden Sie nun die Suchleiste oben in der Mitte / oben rechts.
      4. Beachten Sie, dass diese Suchleiste jeweils nur auf einen Autor beschränkt ist:

        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. Hier ist eine Beispiel-URL für die erste der 4 oben genannten Suchvorgänge: https://github.com/pulls?q=is%3Aopen+is%3Apr+archived%3Afalse+author%3Ausername-1

    2. Verwenden der globalen GitHub-Suchleiste (Hauptsuchleiste oben links auf einer GitHub-Seite):

  2. Von anderen von mir angeforderte Bewertungen:

    1. Verwenden der Suchleiste für Pull-Anforderungen:

    2. Verwenden der globalen GitHub-Suchleiste (Hauptsuchleiste oben links auf einer GitHub-Seite):

Verweise:

  1. /webapps/57933/how-to-search-with-logic-operators-on-github/111246#111246
  2. Siehe auch meine kürzere Antwort hier: /webapps/57933/how-to-search-with-logic-operators-on-github/142071#142071
  3. Erste Schritte mit der Suche auf GitHub
    1. Über die Suche auf GitHub
    2. Probleme suchen und Anfragen ziehen
    3. Verwenden der Suche zum Filtern von Problemen und Abrufen von Anforderungen
    4. Grundlegendes zur Suchsyntax
    5. Fehlerbehebung bei Suchanfragen - hier erwähnen sie AND, ORund NOTOperatoren, aber sie scheinen nicht wirklich auf diese umgesetzt haben, so dass diese Seite sein out-of-date muss :(.
  4. https://github.com/isaacs/github/issues/660
Gabriel Staples
quelle
-2

Ich filtere zum Beispiel Probleme mit zwei Bezeichnungen wie - https://api.github.com/search/issues?q=language:python+label:%22good%20first%20issue%22+label:%22help%20wanted%22+state:open&sort=created Die Frage ist alt, aber ich hoffe, sie hilft jedem, der möglicherweise am selben Problem festhält.

Max
quelle
Was meinst du? Ihre Antwort wird auf einem Etikett gefiltert. Beantwortet die Frage nicht wirklich oder fehlt mir etwas?
Sybille Peters
@SybillePeters hat die Antwort bearbeitet, danke, dass Sie mich benachrichtigt haben.
Max
Interessant. Sind Sie sicher, dass OR angewendet wird? Ich habe die Liste durchgesehen und die Ergebnisse, die ich überprüft habe, hatten beide Bezeichnungen. Ich habe eine andere Abfrage gestartet, weil es einfacher ist zu überprüfen: api.github.com/search/…
Sybille Peters