Есть ли способ grep для чего-то внутри кода проекта Github?
Я мог бы вытащить источник и grep его локально, но мне было интересно, возможно ли это через веб-интерфейс или стороннюю альтернативу.
Идеи?
Есть ли способ grep для чего-то внутри кода проекта Github?
Я мог бы вытащить источник и grep его локально, но мне было интересно, возможно ли это через веб-интерфейс или стороннюю альтернативу.
Идеи?
Обновление Январь 2013: появился новый поиск!, на основе elasticsearch.org:
Поиск stat в рубиновом репо будет выражаться как stat repo:ruby/ruby
, и теперь будет просто работать TM.
(имя репо не чувствительно к регистру: test repo:wordpress/wordpress
возвращает то же самое, что test repo:wordpress/wordpress
)
Дает:
И у вас есть много других примеров поиска, основанных на для сторонников или на вилках, или...
Обновление Июль 2012 (старые дни поиска Lucene и плохое индексирование кода в сочетании со сломанным графическим интерфейсом хранятся здесь для архива):
Поиск (на основе SolrQuerySyntax) теперь более разрешительный, и страшный "Invalid search query. Try quoting it.
" исчез при использовании поиска по умолчанию селектор "Все":)
(я полагаю, мы можем использовать Tim Pease, который имел в одной из своих целей взломать улучшенный поиск для всех свойств GitHub" и Я упомянул об этом вопросе в то время;))
Вот иллюстрация grep в рубиновом коде: он будет искать репозиторий и пользователей, но также и для того, что я хотел найти в первую очередь: код!
Первоначальный ответ и иллюстрация к предыдущей проблеме (сентябрь 2012 = > март 2012 года)
Вы можете использовать расширенный поиск формы GitHub:
Code
, Repositories
или Users
из раскрывающегося списка иНапример, используйте директиву repo:username/repo-name
, чтобы ограничить поиск хранилищем code.
Начальная страница "Advanced Search
" включает раздел:
Код Поиск:
Поиск кода будет просматривать весь код, публично размещенный в GitHub. Вы также можете фильтровать:
- язык
language:
- имя репозитория (включая имя пользователя)
repo:
- путь к файлу
path:
Итак, если вы выберете селектор поиска "Code
", ваш запрос grepping для текста в репо будет работать:
Что невероятно unhelpful из GitHub заключается в следующем:
Code
" ), вы получите сообщение об ошибке: Invalid search query. Try quoting it.
"
сообщение об ошибке не поможет вам.
Никакая сумма "quoting it
" не выведет вас из этой ошибки.
после получения этого сообщения об ошибке вы не получите разделы, напоминающие вам о правильной связи между селекторами поиска ( "Repositories
", "Users
" или "Language
" ) и (правых) поисковых фильтров (здесь "repo:
" ).
Любая дальнейшая попытка не будет отображать эти ассоциации (селекторы-фильтры) назад. Только сообщение об ошибке, которое вы видите выше...
Единственный способ вернуть эти массивы - щелкнуть значок "Advance Search
":
Селектор поиска <Everything
", который является значением по умолчанию, на самом деле является неправильным для всех фильтров поиска! Кроме" language:
"...
(Можно предположить, что "Everything
" поможет вам выбрать любой селектор поиска, который действительно работает с фильтром поиска "repo:
" , но нет. Это было бы слишком просто)
вы не можете указать селектор поиска, который вы хотите, только в поле "Advance Search
"!
(но вы можете использовать для "language:
", хотя "Search Language
" - это другое поле со списком чуть ниже "Search for
" 'type' one...)
Таким образом, пользовательский интерфейс обычно выглядит следующим образом:
Advanced Search
", просматриваете эти разделы фильтров и замечаете тот, который хотите использовать: "repo:
" repo:jruby/jruby stat
", но с селектором поиска по умолчанию "Everything
" FAIL
! (и массивы, отображающие ассоциацию "Селекторы-фильтры", ушли)Repositories
" ( "Да! Я хочу искать в репозиториях..." ) FAIL
!Users
" ), даже не глядя на указанный селектор, просто чтобы дать ему еще одну попытку... FAIL
!Итак, чтобы повторить, если вы хотите "grep для чего-то внутри кода проекта Github", как OP Ben Humphreys, не забудьте выбрать Селектор поиска Code
...
В недавних частных хранилищах есть поле поиска для поиска через это репо.
Как ни странно, похоже, что эта функция недоступна публичным репозиториям.
UPDATE
Взломок букмарклета ниже сломан из-за проблем XHR и изменений API.
К счастью, у Github теперь "Полный поиск нового кода" , который делает работу превосходно.
Оформить заказ этого вуду: Поиск кода Github userscript.
Следуйте указаниям там, или если вы ненавидите раздувание вашего браузера с помощью скриптов и расширений, используйте мой заклавистый пакет пользовательского документа:
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('');
Сохраните исходный код выше как URL-адрес новой закладки. Просмотр любых Github repo, щелкните закладку и bam: на странице, ajaxified code поиск.
CAVEAT Github должен индексировать репо, прежде чем вы сможете его искать.
абракадабра...
Здесь образец поиска из аннотированной спецификации ECMAScript 5.1 Репозиторий:
В то время как ответ @VonC работает для некоторых репозиториев, к сожалению, для многих репозиториев вы не можете сейчас. Github просто не индексирует их (как было прокомментировано первоначально by @emddudley). Они не заявили об этом нигде на своем веб-сайте, но они скажут вам, если вы спросите поддержку:
От: Tim Pease
Мы перестали добавлять новый толкаемый код в наш индекс кода поиска. Объем кода перерос наш текущий индекс поиска, и мы работаем над переходом на более масштабируемую поисковую архитектуру. Прошу прощения за досаду. У нас нет оценки того, когда этот новый поисковый индекс будет запущен и запущен, но когда он будет готов, публикация блога будет опубликована (https://github.com/blog).
Досадно, что невозможно определить, какие репозитории не индексируются, кроме отсутствия результатов (что также может быть связано с плохим запросом).
Также не существует способа отслеживать эту проблему, кроме как ждать, пока они ее опубликуют (или смотрите здесь на SO).
От: Tim Pease
Я боюсь, что наш трекер ошибок является внутренним, но мы можем уведомить вас, как только появится новый индекс поиска.
Google позволяет выполнять поиск в проекте, но не код: (
Я ищу исходный код в репозиториях Github с бесплатным расширением Sourcegraph Chrome ... Но я сначала скачал Chrome, я знал, что другие браузеры поддерживают его, например, - и, возможно, только - Firefox.
Я пролистал Документацию по расширению Chrome SourceForge, а затем также посмотрел, что мне нужно для поиска имен каталогов с помощью самой поисковой системы Github, прочитав некоторые из Документа по поиску кодовой базы Github.
Документация GitHub гласит -
octocat in:file
соответствует коду, где в файле появляется "octocat" содержание.