Czy istnieje sposób na grep dla czegoś w kodzie projektu Github?
Mógłbym pobrać źródło i grepować je lokalnie, ale zastanawiałem się, czy jest to możliwe za pośrednictwem interfejsu internetowego lub innej firmy.
Pomysły?
Czy istnieje sposób na grep dla czegoś w kodzie projektu Github?
Mógłbym pobrać źródło i grepować je lokalnie, ale zastanawiałem się, czy jest to możliwe za pośrednictwem interfejsu internetowego lub innej firmy.
Pomysły?
Odpowiedzi:
Aktualizacja ze stycznia 2013: nadeszła nowa wyszukiwarka! , na podstawie elasticsearch.org :
Wyszukiwanie statystyk w repozytorium ruby zostanie wyrażone jako stat repo:ruby/ruby
i będzie teraz działać tylko w trybie TM .
(w nazwie repozytorium nie jest rozróżniana test repo:wordpress/wordpress
wielkość liter: zwraca to samo co test repo:Wordpress/Wordpress
)
Da:
I masz wiele innych przykładów wyszukiwania, opartych na obserwatorach , widelcach lub ...
Aktualizacja z lipca 2012 r. (Dawne czasy wyszukiwania Lucene i słabe indeksowanie kodu, w połączeniu ze zepsutym interfejsem GUI, zachowano tutaj w celu archiwizacji):
Wyszukiwanie (oparte na SolrQuerySyntax ) jest teraz bardziej liberalne, a przerażające „ Invalid search query. Try quoting it.
” zniknęło przy użyciu domyślnego selektora wyszukiwania „Wszystko” :)
(Podejrzewam, że możemy wszyscy oprócz Tima Pease'a , który w jednym z jego celów „hakował ulepszone funkcje wyszukiwania dla wszystkich właściwości GitHub ”, i wspominałem wtedy o tym przepełnieniu stosu ;))
Oto ilustracja grepa w kodzie ruby: będzie szukał repozytoriów i użytkowników, ale także tego, co chciałem przeszukać: kod!
Pierwsza odpowiedź i ilustracja poprzedniego wydania (wrzesień 2012 => marzec 2012)
Możesz użyć formularza wyszukiwania zaawansowanego GitHub :
Code
, Repositories
czy Users
z listy rozwijanej iNa przykład użyj repo:username/repo-name
dyrektywy, aby ograniczyć wyszukiwanie do repozytorium kodu .
Początkowa Advanced Search
strona „ ” zawiera sekcję:
Wyszukiwanie kodu :
Wyszukiwanie kodu przejrzy cały kod hostowany publicznie na GitHub. Możesz także filtrować według:
- język
language:
- nazwa repozytorium (w tym nazwa użytkownika)
repo:
- ścieżka do pliku
path:
Jeśli więc wybierzesz Code
selektor wyszukiwania „ ”, wyszukiwanie grep dla tekstu w repozytorium będzie działać:
Co jest niezwykle pomocne z GitHub jest to, że:
Code
”), pojawi się komunikat o błędzie: Invalid search query. Try quoting it.
” komunikat o błędzie w ogóle ci nie pomaga.
Żadna liczba „ quoting it
” nie spowoduje usunięcia tego błędu.
po pojawieniu się tego komunikatu o błędzie nie są wyświetlane sekcje przypominające o prawidłowym powiązaniu między selektorami wyszukiwania („ Repositories
”, „ Users
” lub „ Language
”) a (prawymi) filtrami wyszukiwania (tutaj „ repo:
”).
Każda kolejna próba, której dokonasz, nie spowoduje wyświetlenia tych powiązań (selektorów-filtrów). Tylko komunikat o błędzie widoczny powyżej ...
Jedynym sposobem na odzyskanie tych tablic jest kliknięcie Advance Search
ikony „ ”:
W „ Everything
” selektor wyszukiwania, który jest domyślnym, jest rzeczywiście źle jeden dla wszystkich filtrów wyszukiwania! Poza „ language:
” ...
(Można wyobrazić / zakładamy, że „ Everything
” pomoże Ci wybrać cokolwiek wyszukiwania selektor faktycznie działa z „filtr repo:
”, ale nope. To byłoby zbyt łatwe)
nie możesz określić wybranego selektora wyszukiwania tylko w polu „ Advance Search
”!
(ale możesz dla „ language:
”, mimo że „ Search Language
” to kolejne pole kombi tuż pod „ Search for
” „typ”…)
Tak więc wrażenia użytkownika są zwykle następujące:
Advanced Search
”, przejrzysz te sekcje filtrów i zauważysz, że chcesz użyć: „ repo:
”repo:jruby/jruby stat
”, ale z domyślnym selektorem wyszukiwania „ Everything
” FAIL
! (i tablice wyświetlające powiązanie „Selektory-filtry” zniknęły )Repositories
” („Dah! Chcę wyszukiwać w repozytoriach ...”) FAIL
!Users
”), nawet nie patrząc na wspomniany selektor, tylko po to, aby spróbować jeszcze raz ... FAIL
!Podsumowując, jeśli chcesz „szukać czegoś w kodzie projektu Github”, tak jak OP Ben Humphreys , nie zapomnij wybrać „ Code
” selektora wyszukiwania…
repo:"jruby/jruby" stat
repo:"jruby" stat
jruby: stat
nie próbowałem żadnego z nich
Ostatnie prywatne repozytoria mają pole wyszukiwania do przeszukiwania tego repozytorium.
Dziwnie wygląda na to, że ta funkcja nie jest dostępna dla publicznych repozytoriów.
AKTUALIZACJA
Poniższy hack bookmarkletu jest zepsuty z powodu problemów XHR i zmian API.
Na szczęście Github ma teraz „Całkiem nowe wyszukiwanie kodów”, które doskonale wykonuje to zadanie.
Sprawdź to voodoo: skrypt użytkownika do wyszukiwania kodu Github .
Postępuj zgodnie ze wskazówkami tam, lub jeśli nie lubisz nadużywać przeglądarki za pomocą skryptów i rozszerzeń, użyj mojego bukmacherskiego pakietu skryptu użytkownika:
javascript:(function(){var s='https://github.com/skratchdot/github-code-search.user.js/raw/master/github-code-search.user.js',t='text/javascript',d=document,n=navigator,e;(e=d.createElement('script')).src=s;e.type=t;d.getElementsByTagName('head')[0].appendChild(e)})();doIt('');void('');
Zapisz powyższe źródło jako adres URL nowej zakładki. Przejdź do dowolnego repozytorium Github, kliknij zakładkę i bam : in-page, szukaj kodu zlefikowanego .
CAVEAT Github musi zaindeksować repozytorium, zanim będzie można go przeszukać.
Abrakadabra...
Oto przykładowe wyszukiwanie z adnotowanego repozytorium specyfikacji ECMAScript 5.1:
Podczas gdy odpowiedź @ VonC działa w przypadku niektórych repozytoriów, niestety w przypadku wielu repozytoriów nie możesz teraz. Github po prostu ich nie indeksuje (jak pierwotnie skomentował @emddudley). Nie podali tego nigdzie na swojej stronie, ale powiedzą ci, jeśli poprosisz o wsparcie:
Od: Tim Pease
Przestaliśmy dodawać nowo wypchnięty kod do naszego indeksu wyszukiwania kodu. Objętość kodu przerosła nasz obecny indeks wyszukiwania i pracujemy nad przejściem do bardziej skalowalnej architektury wyszukiwania. Przepraszam za irytację. Nie mamy oszacowania, kiedy ten nowy indeks wyszukiwania zostanie uruchomiony, ale kiedy będzie gotowy, opublikowany zostanie post na blogu (https://github.com/blog).
Irytujące jest to, że nie ma sposobu, aby stwierdzić, które repozytoria nie są indeksowane, poza brakiem wyników (które również mogą wynikać ze złego zapytania).
Nie ma też innego sposobu na śledzenie tego problemu niż czekanie na blogu (lub oglądanie tutaj na SO).
Od: Tim Pease
Obawiam się, że nasz moduł do śledzenia problemów jest wewnętrzny, ale możemy Cię powiadomić, gdy tylko pojawi się nowy indeks wyszukiwania.
Google umożliwia wyszukiwanie w projekcie, ale nie kod :(
Przeszukuję kod źródłowy w repozytoriach Github z bezpłatnym rozszerzeniem Chrome Sourcegraph ... Ale najpierw pobrałem Chrome , ale wiedziałem, że inne przeglądarki go obsługują, takie jak - i może tylko - Firefox.
I odtłuszczonego przez SourceForge Chrome Extension Docs i wtedy też patrzyłem na to, co potrzebne do wyszukiwania nazw katalogów z GitHub w wyszukiwarce sama, czytając niektóre GitHub w kodzie Wyszukiwanie Doc