github поиск по коду

Поиск кода внутри проекта Github

Есть ли способ найти что-то в коде проекта Github?

Я мог бы извлечь исходный код и выполнить его локально, но мне было интересно, возможно ли это через веб-интерфейс или стороннюю альтернативу.

Обновление января 2013: новый поиск прибыл! , основанный наasticsearch.org :

github поиск по коду. oKLeR. github поиск по коду фото. github поиск по коду-oKLeR. картинка github поиск по коду. картинка oKLeR. Есть ли способ найти что-то в коде проекта Github?

github поиск по коду. MjPTm. github поиск по коду фото. github поиск по коду-MjPTm. картинка github поиск по коду. картинка MjPTm. Есть ли способ найти что-то в коде проекта Github?

Обновление июль 2012 г. (старые времена поиска Lucene и плохая индексация кода в сочетании с неработающим графическим интерфейсом хранятся здесь для архивирования):

Поиск (основанный на SolrQuerySyntax ) теперь более разрешающий, и страшный » Invalid search query. Try quoting it. » исчезает при использовании селектора поиска по умолчанию «Все» 🙂

Вот иллюстрация grep в коде ruby: он будет искать репозитории и пользователей, а также то, что я хотел искать в первую очередь: код!

github поиск по коду. HhkVy. github поиск по коду фото. github поиск по коду-HhkVy. картинка github поиск по коду. картинка HhkVy. Есть ли способ найти что-то в коде проекта Github?

Первоначальный ответ и иллюстрация предыдущего номера (сентябрь 2012 г. => март 2012 г.)

Поиск по коду просматривает весь код, размещенный на GitHub. Вы также можете фильтровать по:

Поэтому, если вы выберете Code селектор поиска » «, тогда ваш запрос для текста в репо будет работать:

github поиск по коду. a58WF. github поиск по коду фото. github поиск по коду-a58WF. картинка github поиск по коду. картинка a58WF. Есть ли способ найти что-то в коде проекта Github?

Что невероятно бесполезно от GitHub, так это:

github поиск по коду. fJtQ8. github поиск по коду фото. github поиск по коду-fJtQ8. картинка github поиск по коду. картинка fJtQ8. Есть ли способ найти что-то в коде проекта Github?

сообщение об ошибке не поможет вам вообще.
Никакое количество » quoting it » не поможет вам избежать этой ошибки.

github поиск по коду. fpEFn. github поиск по коду фото. github поиск по коду-fpEFn. картинка github поиск по коду. картинка fpEFn. Есть ли способ найти что-то в коде проекта Github?

github поиск по коду. 6AWA6. github поиск по коду фото. github поиск по коду-6AWA6. картинка github поиск по коду. картинка 6AWA6. Есть ли способ найти что-то в коде проекта Github?

Итак, пользовательский опыт обычно выглядит следующим образом:

Источник

Search code inside a Github project

Is there a way to grep for something inside a Github project’s code?

I could pull the source and grep it locally, but I was wondering if it’s possible through the web interface or a 3rd-party alternative.

9 Answers 9

Update January 2013: a brand new search has arrived!, based on elasticsearch.org:

github поиск по коду. oKLeR. github поиск по коду фото. github поиск по коду-oKLeR. картинка github поиск по коду. картинка oKLeR. Есть ли способ найти что-то в коде проекта Github?

github поиск по коду. MjPTm. github поиск по коду фото. github поиск по коду-MjPTm. картинка github поиск по коду. картинка MjPTm. Есть ли способ найти что-то в коде проекта Github?

And you have many other examples of search, based on followers, or on forks, or.

Update July 2012 (old days of Lucene search and poor code indexing, combined with broken GUI, kept here for archive):

The search (based on SolrQuerySyntax) is now more permissive and the dreaded » Invalid search query. Try quoting it. » is gone when using the default search selector «Everything»:)

Here is an illustration of a grep within the ruby code: it will looks for repos and users, but also for what I wanted to search in the first place: the code!

github поиск по коду. HhkVy. github поиск по коду фото. github поиск по коду-HhkVy. картинка github поиск по коду. картинка HhkVy. Есть ли способ найти что-то в коде проекта Github?

Initial answer and illustration of the former issue (Sept. 2012 => March 2012)

For instance, Use the repo:username/repo-name directive to limit the search to a code repository.
The initial » Advanced Search » page includes the section:

The Code search will look through all of the code publicly hosted on GitHub. You can also filter by :

So if you select the » Code » search selector, then your query grepping for a text within a repo will work:

github поиск по коду. a58WF. github поиск по коду фото. github поиск по коду-a58WF. картинка github поиск по коду. картинка a58WF. Есть ли способ найти что-то в коде проекта Github?

What is incredibly unhelpful from GitHub is that:

github поиск по коду. fJtQ8. github поиск по коду фото. github поиск по коду-fJtQ8. картинка github поиск по коду. картинка fJtQ8. Есть ли способ найти что-то в коде проекта Github?

the error message doesn’t help you at all.
No amount of » quoting it » will get you out of this error.

once you get that error message, you don’t get the sections reminding you of the right association between the search selectors (» Repositories «, » Users » or » Language «) and the (right) search filters (here » repo: «).
Any further attempt you do won’t display those associations (selectors-filters) back. Only the error message you see above.
The only way to get back those arrays is by clicking the » Advance Search » icon:

github поиск по коду. fpEFn. github поиск по коду фото. github поиск по коду-fpEFn. картинка github поиск по коду. картинка fpEFn. Есть ли способ найти что-то в коде проекта Github?

the » Everything » search selector, which is the default, is actually the wrong one for all of the search filters! Except » language: «.
(You could imagine/assume that » Everything » would help you to pick whatever search selector actually works with the search filter » repo: «, but nope. That would be too easy)

you cannot specify the search selector you want through the » Advance Search » field alone!
(but you can for » language: «, even though » Search Language » is another combo box just below the » Search for » ‘type’ one. )

github поиск по коду. 6AWA6. github поиск по коду фото. github поиск по коду-6AWA6. картинка github поиск по коду. картинка 6AWA6. Есть ли способ найти что-то в коде проекта Github?

So, the user’s experience usually is as follows:

So, to recap, if you want to «grep for something inside a Github project’s code», as the OP Ben Humphreys, don’t forget to select the » Code » search selector.

Источник

Searching code

You can search for code on GitHub and narrow the results using these code search qualifiers in any combination.

In this article

You can search globally across all of GitHub, or scope your search to a particular repository or organization. For more information, see «About searching on GitHub.»

You can only search code using these code search qualifiers. Search qualifiers specifically for repositories, users, or commits, will not work when searching for code.

Tips:

Considerations for code search

Due to the complexity of searching code, there are some restrictions on how searches are performed:

Search by the file contents or file path

With the in qualifier you can restrict your search to the contents of the source code file, the file path, or both. When you omit this qualifier, only the file contents are searched.

QualifierExample
in:fileoctocat in:file matches code where «octocat» appears in the file contents.
in:pathoctocat in:path matches code where «octocat» appears in the file path.
octocat in:file,path matches code where «octocat» appears in the file contents or the file path.

Search within a user’s or organization’s repositories

To search the code in all repositories owned by a certain user or organization, you can use the user or org qualifier. To search the code in a specific repository, you can use the repo qualifier.

QualifierExample
user:USERNAMEuser:defunkt extension:rb matches code from @defunkt that ends in .rb.
org:ORGNAMEorg:github extension:js matches code from GitHub that ends in .js.
repo:USERNAME/REPOSITORYrepo:mozilla/shumway extension:as matches code from @mozilla’s shumway project that ends in .as.

Search by file location

You can use the path qualifier to search for source code that appears at a specific location in a repository. Use path:/ to search for files that are located at the root level of a repository. Or specify a directory name or the path to a directory to search for files that are located within that directory or any of its subdirectories.

QualifierExample
path:/octocat filename:readme path:/ matches readme files with the word «octocat» that are located at the root level of a repository.
path:DIRECTORYform path:cgi-bin language:perl matches Perl files with the word «form» in a cgi-bin directory, or in any of its subdirectories.
path:PATH/TO/DIRECTORYconsole path:app/public language:javascript matches JavaScript files with the word «console» in an app/public directory, or in any of its subdirectories (even if they reside in app/public/js/form-validators).

Search by language

You can search for code based on what language it’s written in. The language qualifier can be the language name or alias. For a full list of supported languages with their names and aliases, see the github/linguist repository.

QualifierExample
language:LANGUAGEelement language:xml size:100 matches code with the word «element» that’s marked as being XML and has exactly 100 bytes.
display language:scss matches code with the word «display,» that’s marked as being SCSS.
org:mozilla language:markdown matches code from all @mozilla’s repositories that’s marked as Markdown.

Search by file size

You can use the size qualifier to search for source code based on the size of the file where the code exists. The size qualifier uses greater than, less than, and range qualifiers to filter results based on the byte size of the file in which the code is found.

QualifierExample
size:nfunction size:>10000 language:python matches code with the word «function,» written in Python, in files that are larger than 10 KB.

Search by filename

The filename qualifier matches code files with a certain filename. You can also find a file in a repository using the file finder. For more information, see «Finding files on GitHub.»

QualifierExample
filename:FILENAMEfilename:linguist matches files named «linguist.»
filename:.vimrc commands matches .vimrc files with the word «commands.»
filename:test_helper path:test language:ruby matches Ruby files named test_helper within the test directory.

Search by file extension

The extension qualifier matches code files with a certain file extension.

Help us make these docs great!

All GitHub docs are open source. See something that’s wrong or unclear? Submit a pull request.

Источник

Код поиска внутри проекта Github

Есть ли способ найти что-то в коде проекта Github с помощью grep?

Я мог бы вытащить источник и найти его локально, но мне было интересно, возможно ли это через веб-интерфейс или стороннюю альтернативу.

7 ответов

github поиск по коду. oKLeR. github поиск по коду фото. github поиск по коду-oKLeR. картинка github поиск по коду. картинка oKLeR. Есть ли способ найти что-то в коде проекта Github?

github поиск по коду. MjPTm. github поиск по коду фото. github поиск по коду-MjPTm. картинка github поиск по коду. картинка MjPTm. Есть ли способ найти что-то в коде проекта Github?

Обновление от июля 2012 г. (старые времена поиска в Lucene и плохой индексации кода в сочетании со сломанным графическим интерфейсом хранятся здесь для архива):

Поиск (основанный на SolrQuerySyntax) теперь более снисходительный и устрашающий » Invalid search query. Try quoting it. » пропадает при использовании селектора поиска по умолчанию «Все» 🙂

Вот иллюстрация grep в коде ruby: он будет искать репозитории и пользователей, но также то, что я хотел найти в первую очередь: код!

github поиск по коду. HhkVy. github поиск по коду фото. github поиск по коду-HhkVy. картинка github поиск по коду. картинка HhkVy. Есть ли способ найти что-то в коде проекта Github?

Первоначальный ответ и иллюстрация к предыдущему вопросу (сентябрь 2012 г. => март 2012 г.)

Поиск кода будет просматривать весь код, публично размещенный на GitHub. Вы также можете фильтровать по:

Таким образом, если вы выберете селектор поиска » Code «, то поиск текста в репозитории будет работать:

github поиск по коду. a58WF. github поиск по коду фото. github поиск по коду-a58WF. картинка github поиск по коду. картинка a58WF. Есть ли способ найти что-то в коде проекта Github?

Что невероятно бесполезно от GitHub, так это то, что:

github поиск по коду. fJtQ8. github поиск по коду фото. github поиск по коду-fJtQ8. картинка github поиск по коду. картинка fJtQ8. Есть ли способ найти что-то в коде проекта Github?

сообщение об ошибке совершенно не помогает.
Никакое количество » quoting it » не поможет вам избавиться от этой ошибки.

github поиск по коду. fpEFn. github поиск по коду фото. github поиск по коду-fpEFn. картинка github поиск по коду. картинка fpEFn. Есть ли способ найти что-то в коде проекта Github?

github поиск по коду. 6AWA6. github поиск по коду фото. github поиск по коду-6AWA6. картинка github поиск по коду. картинка 6AWA6. Есть ли способ найти что-то в коде проекта Github?

Итак, опыт пользователя обычно выглядит следующим образом:

В недавних частных репозиториях есть поле поиска для поиска по этому репо.

github поиск по коду. 182LS. github поиск по коду фото. github поиск по коду-182LS. картинка github поиск по коду. картинка 182LS. Есть ли способ найти что-то в коде проекта Github?

Как ни странно, похоже, что эта функция недоступна для общедоступных репозиториев.

Хотя ответ @VonC работает для некоторых репозиториев, к сожалению, для многих репозиториев вы не можете прямо сейчас. Github просто не индексирует их (как изначально прокомментировал @emddudley). Они нигде не заявили об этом на своем веб-сайте, но они скажут вам, если вы обратитесь в службу поддержки:

От: Тим Пиз
Мы перестали добавлять новый загруженный код в наш индекс поиска кода. Объем кода превысил наш текущий поисковый индекс, и мы работаем над переходом к более масштабируемой архитектуре поиска. Прошу прощения за раздражение. У нас нет оценки того, когда будет запущен этот новый поисковый индекс, но когда он будет готов, будет опубликовано сообщение в блоге (https://github.com/blog).

К сожалению, нет никакого способа определить, какие репозитории не проиндексированы, кроме отсутствия результатов (что также может быть связано с неправильным запросом).

Также нет другого способа отследить эту проблему, кроме как ждать, пока они напишут об этом в блоге (или посмотреть здесь, на SO).

От: Тим Пиз
Боюсь, что наша система отслеживания проблем является внутренней, но мы можем уведомить вас, как только новый поисковый индекс будет запущен.

Для поиска в репозитории добавьте параметры URL /search?q=search_terms в корень репо, например:

github поиск по коду. lGlrX. github поиск по коду фото. github поиск по коду-lGlrX. картинка github поиск по коду. картинка lGlrX. Есть ли способ найти что-то в коде проекта Github?

Гугл позволяет искать по проекту, но не по коду 🙁

Я просмотрел Документы по расширению Chrome от SourceForge, а затем посмотрел только то, что мне нужно для поиска имена каталогов с самой поисковой системой Github, прочитав некоторые из документации по поиску по кодовой базе Github

Перейдите сюда: https://github.com/search и введите « шаблон репо. : user_name / repo_name «.

Например, для поиска cnn_learner в репозитории fastai пользователя fastai введите следующее:

Не удалось найти ни одного репозитория, соответствующего ‘cnn_learner repo: fastai / fastai’

Так что просто нажмите слева на «Код», и он отобразит то, что вы хотите.

Или получите результаты поиска кода напрямую с таким URL-адресом:

Источник

Поиск похожих проектов на GitHub

Гитхаб — прекрасный сайт. Но представьте, что вы нашли проект А, и хотите узнать какие еще существуют похожие проекты. Как быть?

Именно с таким вдохновением уселся я разбирать API GitHub’a. Спустя пару недель свободного времени вот что получилось:

Для большинства проектов находится пара действительно интересных предложений. Вот несколько примеров: angular.js, front end bookmarks, three.js

Основная идея для построения рекомендаций — «Разработчики которые поставили звездочку этому проекту, также поставили звездочку. ». А детали идеи, ее недостатки и ссылка на код — ниже.

Пожалуй, мне стоит признаться что я никакой не эксперт в области машинного обучения или построения рекомендационых систем. Все что описано ниже — результат экспериментального тыка и огромного любопытства.

Давай проанализируем всех фолловеров проекта А, посмотрим какие другие проекты они фолловят, и выберем наиболее часто повторяющиеся проекты? Увы, этот подход провалился с треском: среди результатов поиска рекомендаций на первые места зачастую выходят самые популярные проекты, но не обязательно имеющие отношение к текущему. Весь GitHub влюблен в Bootstrap — самый популярный проект на сегодня.

Сколько весит общая звезда?

Проект A — всего 100 звезд
Проект B — всего 200 звезд
Проект C — всего 1000 звезд

Допустим сто одних и тех же разработчиков поставили звездочку проекту А и B, и сто одних и тех же разработчиков поставили звездочку проекту А и С. Какой проект B или С будет более близким проекту А? Очевидно — B. Половина его фолловеров следят за проектом А. Лишь 10% последователей C заметили проект A.

Как же можно обобщить три переменные в одну формулу похожести? Думал я медленно и идея рассмотреть процент общих звездочек от суммарного числа звезд обоих проектов пришла не сразу:

similarity = 2 * shared_stars_count / (project_a_stars + project_b_stars)

Формула дает очень неплохие рекомендации. Как я узнал позже от Камерона Девидсона, эта формула была выведена в 1946-м году, двумя ботаниками (это не попытка оскорбить кого-либо, они действительно были специалистами в ботанике): Соренсеном и Дайсом.

К сожалению у GitHub’a отсутствует bulk API, позволяющий одним запросом достать информацию обо всех фолловерах проекта. Ко всем неудобствам ограничение в 5 000 запросов в час делает анализ проектов невыносимо долгим. Адди Османи предложил ограничиться анализом лишь нескольких сотен последователей. Экспериментально, если выбрать случайных 500 последователей проекта — результат рекомендаций не ухудшится.

Метрику сходства проектов для случайных N последователей проекта A я переписал так:

alpha = N/project_a_stars
similarity = 2 * N / (alpha * (N + project_b_stars))

Такая формулировка делает проекты с примерно одинаковым числом звезд более близкими друг другу и неплохо отсеивает шум от популярных проектов.

К сожалению даже при N = 500 время постройки анализа одного проекта занимает около семи минут.

А что если вычислить все похожие проекты заранее?

Рекомендация работает неплохо для проектов с 200+ звездами. Но сколько таких проектов на GitHub’e? Как оказалось, чуть больше семи тысяч (на момент написания кода было около 7 300).

Написав паука для поиска ников всех фолловеров популярных репозиториев, я обнаружил около 457 115 уникальных пользователей :). Теперь для каждого пользователя нужно достать его любимые проекты. Но сколько это может занять времени? Даже при очень пессимистичной оценке в 300 звездочек на фолловера, учитывая ограничение на 5 000 запросов в час, пришлось бы «копать» гитхаб 11 суток без остановки.

11 суток не так и много для хобби, да? Задача хорошо распределяется, потому если у вас есть добрый друг, готовый поделиться своим токеном на гитхабе, то можно справиться за неделю! В тот же вечер появился паук для сбора любимых проектов фолловеров.

Весело шурша сеткой, время от времени часто спотыкаясь о баги, два паука насобирали необходимые данные за… 4 дня. Как оказалось, в среднем один пользователь гитхаба дает 22 звездочки. Лишь 0.02% пользователей дали больше 600 звезд. Потому при безупречной работе пауков можно было бы построить всю необходимую базу за пару суток.

На GtHub’e больше всего ников начинается на букву ‘s’. За ними идут пользователи на ‘m’ и на ‘a’. Ники на заглавную ‘Q’ встречаются реже, чем ники на цифру 2:

github поиск по коду. image loader. github поиск по коду фото. github поиск по коду-image loader. картинка github поиск по коду. картинка image loader. Есть ли способ найти что-то в коде проекта Github?

В облако
Результат работы пауков я загрузил на S3. Все современные браузеры распознают CORS, потому обычным ajax запросом можно достать необходимый js файл с рекомендациями. Если вычисленных рекомендаций для проекта не существует в облаке, сайт перейдет в режим онлайн-постройки рекомендаций. Аутентифицируйтесь на гитхабе, чтобы получить большую квоту. Промежуточные данные сохраняются в локальный IndexedDB, потому можно возобновить индексацию даже после закрытия страницы.

Код
Если вы, дорогой хабрачитатель, знаете как можно улучшить рекомендации — я с огромным удовольствием! Код сайта доступен здесь: anvaka/gazer.

Ставьте звездочки проектам, которые вам нравятся — это делает приятно не только авторам репозиториев, но и может помочь другим разработчикам найти нужные проекты :).

Спасибо огромное, что дочитали до конца :)!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *