class Gitsheet
Constants
- VERSION
Public Class Methods
new(username, password, organization)
click to toggle source
# File lib/gitsheet.rb, line 6 def initialize(username, password, organization) @auth = "#{username}:#{password}" @org = organization end
Public Instance Methods
add_commits(repos)
click to toggle source
# File lib/gitsheet.rb, line 28 def add_commits(repos) repos.each do |r| $stderr.print "#{r['name']}" sleep(1) $stderr.print '...' r['latest_commit'] = self.latest_commit(r['name']) $stderr.puts '✔︎' end end
count_repos()
click to toggle source
# File lib/gitsheet.rb, line 20 def count_repos self.fetch_repos.size end
count_users()
click to toggle source
# File lib/gitsheet.rb, line 24 def count_users self.fetch_users({per_page: 100}).size end
fetch(url, params = {})
click to toggle source
# File lib/gitsheet.rb, line 79 def fetch(url, params = {}) RestClient.get url, {:params => params} end
fetch_commits(repo, options = {})
click to toggle source
# File lib/gitsheet.rb, line 73 def fetch_commits(repo, options = {}) url = "https://#{@auth}@api.github.com/repos/#{@org}/#{repo}/commits" options.merge!(per_page: 1) JSON.parse self.fetch(url, options) end
fetch_repos(options = {})
click to toggle source
# File lib/gitsheet.rb, line 46 def fetch_repos(options = {}) url = "https://#{@auth}@api.github.com/orgs/#{@org}/repos" repos = [] # Initial request response = self.fetch(url, {per_page: 100}) page_header = response.headers[:link] repos.concat JSON.parse(response) # Parse page headers pages = PageLinks.new page_header return repos if pages.none? # Fetch additional pages 2.upto(pages.last) do |page| sleep(1) repos.concat JSON.parse(self.fetch(url, {per_page: 100, page: page})) end repos end
fetch_users(options = {})
click to toggle source
# File lib/gitsheet.rb, line 68 def fetch_users(options = {}) url = "https://#{@auth}@api.github.com/orgs/#{@org}/members" JSON.parse self.fetch(url, options) end
latest_commit(repo)
click to toggle source
# File lib/gitsheet.rb, line 41 def latest_commit(repo) commits = self.fetch_commits(repo) commits.first['commit']['author']['date'] end
repos()
click to toggle source
# File lib/gitsheet.rb, line 11 def repos repos = self.fetch_repos self.add_commits repos end
users()
click to toggle source
# File lib/gitsheet.rb, line 16 def users users = self.fetch_users({per_page: 100}) end