Skip to content

Instantly share code, notes, and snippets.

@gdemir
Created March 25, 2011 15:20
Show Gist options
  • Select an option

  • Save gdemir/887008 to your computer and use it in GitHub Desktop.

Select an option

Save gdemir/887008 to your computer and use it in GitHub Desktop.
203-issues-4
#!/usr/bin/ruby
#-*- coding:utf-8 -*-
# DIKKAT! gem kurulumu gerek
# sudo apt-get install rubygems
# sudo apt-get install gem
# gem install json
require 'open-uri'
require 'net/http'
require 'highline/import'
require 'json'
# http://develop.github.com'deki repoları al(payload)
def get_repos(user)
url = URI.parse("http://github.com/api/v1/json/#{user}")
veri = Net::HTTP.post_form(url, {})
repos = JSON.parse(veri.body)["user"]["repositories"]
end
# http://develop.github.com'deki repoları incele(payload)
def review_repo(user, repo)
url = URI.parse("http://github.com/#{user}/#{repo}/network_meta")
veri = Net::HTTP.post_form(url, {})
repo = JSON.parse(veri.body)["blocks"]
end
# http://develop.github.com'deki gistleri al(payload)
def get_gists(user)
url = URI.parse("http://gist.github.com/api/v1/json/gists/#{user}")
veri = Net::HTTP.post_form(url, {})
gists = JSON.parse(veri.body)["gists"]
end
# url sağlam mı kontrol et düzenlenecek TODO
def validurl?(url)
response = open(url)
true
rescue OpenURI::HTTPError => e
$stderr.puts "#{e}"
false
end
# hata iletisi
def die(msj)
$stderr.puts "err : #{msj}"
exit(19)
end
user = ask("github kullanıcı? ") { |q| q.readline = true; q.default = ENV['USER'] }
puts "kullanıcı kontrol ediliyor..."
# kullanıcı ismi doğru mu ?
die("böyle bir kullanıcı yok") unless validurl?("https://github.com/" + user)
# nerede bu forkcular ?
puts "fork yapanlar okunuyor..."
users = {}
get_repos(user).each do |repo|
forks = review_repo(user, repo["name"])
if forks.length > 1
users[repo["name"]] = []
forks.each {|fork| users[repo["name"]] << fork["name"] if fork["name"] != user}
end
end
# forkcuların gistlerini okuyalım.
puts "fork yapanların gistleri okunuyor..."
users.keys.each do |repo|
puts "-> #{repo} reposu kullanıcıları :"
users[repo].each do |user|
puts " #{user}"
get_gists(user).each do |gist|
puts " - #{gist["repo"]}"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment