The Repository Statistics API allows you to fetch the data that GitHub uses for visualizing different types of repository activity.
Get the number of additions and deletions per week
github = Github.new github.repos.stats.code_frequency user: '...', repo: '...' github.repos.stats.code_frequency user: '...', repo: '...' { |stat| ... }
# File lib/github_api/repos/statistics.rb, line 53 def code_frequency(*args) arguments(args, :required => [:user, :repo]) params = arguments.params get_request("/repos/#{user}/#{repo}/stats/code_frequency", params) end
Get the last year of commit activity data
Returns the last year of commit activity grouped by week. The days array is a group of commits per day, starting on Sunday
github = Github.new github.repos.stats.commit_activity user: '...', repo: '...' github.repos.stats.commit_activity user: '...', repo: '...' { |stat| ... }
# File lib/github_api/repos/statistics.rb, line 36 def commit_activity(*args) arguments(args, :required => [:user, :repo]) params = arguments.params response = get_request("/repos/#{user}/#{repo}/stats/commit_activity", params) return response unless block_given? response.each { |el| yield el } end
Get contributors list with additions, deletions, and commit counts
github = Github.new github.repos.stats.contributors user: '...', repo: '...' github.repos.stats.contributors user: '...', repo: '...' { |stat| ... }
# File lib/github_api/repos/statistics.rb, line 16 def contributors(*args) arguments(args, :required => [:user, :repo]) params = arguments.params response = get_request("/repos/#{user}/#{repo}/stats/contributors", params) return response unless block_given? response.each { |el| yield el } end
Get the weekly commit count for the repo owner and everyone else
github = Github.new github.repos.stats.participation user: '...', repo: '...' github.repos.stats.participation user: '...', repo: '...' { |stat| ... }
# File lib/github_api/repos/statistics.rb, line 68 def participation(*args) arguments(args, :required => [:user, :repo]) params = arguments.params get_request("/repos/#{user}/#{repo}/stats/participation", params) end
Get the number of commits per hour in each day
github = Github.new github.repos.stats.punch_card user: '...', repo: '...' github.repos.stats.punch_card user: '...', repo: '...' { |stat| ... }
# File lib/github_api/repos/statistics.rb, line 83 def punch_card(*args) arguments(args, :required => [:user, :repo]) params = arguments.params response = get_request("/repos/#{user}/#{repo}/stats/punch_card", params) return response unless block_given? response.each { |el| yield el } end