rough prototype

Prototyping the dotfiles discovery idea

obtaining data set

g cl git@github.com:mathiasbynens/dotfiles.git

get all forks

curl "https://api.github.com/repos/mathiasbynens/dotfiles/forks?per_page=100" > /tmp/forks.txt

load json into javascript console and extract string

f.forEach((o) => {
console.log(`git remote add ${o.owner.login} git@github.com:${o.full_name}.git`)
})

transform output with vim macro

load remotes and fetch

git fetch --all

searching using git across all forks

# anything changes to .screenrc across all forks
git log --all --remotes=\* -- '*.screenrc'

# any changes to .screenrc across all forks and referring to bind-sym
git log --all --remotes=\* -- '*.screenrc'

git log --pickaxe-all --all --remotes=\* -S"bind" -- '*.screenrc'

# using github search
https://github.com/search?utf8=%E2%9C%93&q=filename%3A.screenrc+bind&type=Code&ref=searchresults

improvements

  1. use github search to find more dotfiles

  2. use ack-grep

  3. better sorting to prevent useless files

  4. better search display of search results than git log

conclusion

This prototype was limited to one repo. The most popular dotfiles repo. It doesn’t account for the tons of repositories out there. A better solution would be to use github search and produce a better interface for the results.

However, no idea how to monetize it to reduce the computational costs other than direct pay.