在多个Github存储库中搜索

时间:2015-08-20 13:39:49

标签: github

我想在我们的Github安装中搜索所有代码库以获取不同的文本字符串。我们有app。 90个不同的存储库。

有这样的方法吗?

我只能找到搜索文件名,作者等,而不是搜索代码中的字符串。我的任务是找到每个使用或引用很快就过时的系统,类,方法等的项目。

或者:是否有方法可以在一个操作中下载/克隆所有存储库?

我们使用SourceTree作为客户端软件。

2 个答案:

答案 0 :(得分:19)

您现在可以直接在组织的顶部进行搜索。这会产生前缀org:

e.g。如果你想搜索所有twitter repos中的单词bot,你会搜索org:twitter bot

https://github.com/search?l=&q=org%3Atwitter+bot&ref=advsearch&type=Code

答案 1 :(得分:10)

您可以通过在查询中添加repo:选项来搜索多个存储库,您可以在GitHub的advanced search页面上查看该选项。每个repo值采用通常的user/repository形式。例如:

find_me repo:me/foo repo:you/bar repo:company/baz

要列出所有存储库(如果没有存储库),一个简单的方法可能是GitHub repositories API

获得列表后,使用简单的shell脚本克隆所有内容也很简单。我不相信GitHub有内置功能。<​​/ p>

while read repo; do
  git clone https://github.com/$repo
done < list_of_repos.txt

由于听起来像是在拉一个组织的回购,caniszczyk a Gist正在做这件事。我会在这里复制它的核心,但是有一些关于私人回购的更新和帮助的讨论。

curl -s https://api.github.com/orgs/twitter/repos?per_page=200 | \
ruby -rubygems -e 'require "json"; JSON.load(STDIN.read).each { |repo| %x[git clone #{repo["ssh_url"]} ]}'

还有another SO question询问它,full backup script来解决问题,wiki等。