Code Monkey home page Code Monkey logo

branchesapp's Introduction

branchesapp

is a different take on visualizing the git(hub) network. the purpose of this visualizer is to quickly identify the difference between forks (and branches) in terms of "changes" (by way of commit logs). this helps me find forks that has the changes I want (usually because the original repository went dormant or something)

summary

forks of the project will be fetched (and cached locally in a .json file). each fork (and all branches) will be fetched and placed into a tree (based on parentage). html is generated from this tree, sprinkled with commit logs between itself and the parent.

run

ruby g2h.rb [url of github project]

e.g.

ruby g2h.rb https://github.com/jney/jquery.pageless

rate limit

To have a higher rate limit, you can have g2h.rb make authenticated API calls by setting the HTTP_USER environment variable to your github username and HTTP_PASSWORD environment variable to a personal access tokens, OAuth token or your password

e.g.

HTTP_USER=choonkeat HTTP_PASSWORD=topsecret ruby g2h.rb https://github.com/jney/jquery.pageless

author

Chew Choon Keat

license

GPL

branchesapp's People

Contributors

choonkeat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

spiralis

branchesapp's Issues

API rate limit exceeded

$ ruby g2h.rb https://github.com/popcorn-time/popcorn-app
#<URI::HTTPS:0x007ffa8c26c170 URL:https://api.github.com/repos/popcorn-time/popcorn-app/forks>
/Users/shrx/Downloads/branchesapp-master/lib/github.rb:26:in `forks': #<Net::HTTPForbidden 403 Forbidden readbody=true>{"message":"API rate limit exceeded for IP_ADDRESS. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://developer.github.com/v3/#rate-limiting"} (RuntimeError)
    from /Users/shrx/Downloads/branchesapp-master/lib/github.rb:58:in `fetch_all'
    from g2h.rb:99:in `<main>'

Is it possible to add authentication to raise the request limit?

Wish g2h.rb would not fetch from network when local clone exists.

This helps me find forks that has the changes I want (usually because the original repository went dormant or something)

This is very good and what I was looking for.

forks of the project will be fetched (and cached locally in a .json file).

(1) In many case, the user will actually have a local clone. There is no need to refetch a complete git clone of the forks from a github URL.
Some repositories are quite big, so the cost of fetching all might be high and should be avoided.

(2) Also, the local clone has a number of remotes already known (git remote -v show). Perhaps only one "origin" to their github fork, possible a selection of other github forks. The user may just want a view restricted to the forks listed by git remote -v show, not all the remotes known to github.

Technically, this would mean:

  • (1) using the local directory as cache (instead of public/username/reponame)
  • (2) an option to do git remote -v show and use only remote with URLs that look like github there, instead of fetching all remote names from github API.

There were several ideas here, I hope these writings are clear enough.

Doesn’t work with latest grit version

Maybe this could be ported to rugged?

/Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby/internal/loose.rb:108:in unpack_object_header_gently': undefined method>>' for "x":String (NoMethodError)
from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby/internal/loose.rb:56:in get_raw_object' from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby/internal/loose.rb:32:in[]'
from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby/repository.rb:84:in block in get_raw_object_by_sha1' from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby/repository.rb:83:ineach'
from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby/repository.rb:83:in get_raw_object_by_sha1' from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby/repository.rb:334:inwalk_log'
from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby/repository.rb:287:in log' from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby/repository.rb:306:inrev_list'
from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby.rb:70:in block in rev_list' from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby.rb:211:inblock in try_run'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/timeout.rb:66:in timeout' from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby.rb:210:intry_run'
from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/git-ruby.rb:70:in rev_list' from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/commit.rb:120:infind_all'
from /Library/Ruby/Gems/2.0.0/gems/grit-2.5.0/lib/grit/repo.rb:381:in commits' from /Volumes/Odo/Development/Projects/branchesapp/lib/gritnet.rb:29:inblock in parse!'
from /Volumes/Odo/Development/Projects/branchesapp/lib/gritnet.rb:28:in each' from /Volumes/Odo/Development/Projects/branchesapp/lib/gritnet.rb:28:ineach_with_index'
from /Volumes/Odo/Development/Projects/branchesapp/lib/gritnet.rb:28:in parse!' from g2h.rb:103:in

'

See mloughran/git-cleanup#10

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.