# encoding: utf-8 module BitBucket class Repos::Commits < API VALID_KEY_PARAM_NAMES = %w(include exclude pagelen).freeze # Gets the commit information associated with a repository. By default, this # call returns all the commits across all branches, bookmarks, and tags. The # newest commit is first. # # = Parameters # *include - The SHA, branch, bookmark, or tag to include, for example, v10 or master. You can repeat the parameter multiple times. # *exclude - The SHA, branch, bookmark, or tag to exclude, for example, v10 or master . You can repeat the parameter multiple times. # # = Examples # bitbucket = BitBucket.new # bitbucket.repos.commits.list 'user-name', 'repo-name' # bitbucket.repos.commits.list 'user-name', 'repo-name', 'master' # bitbucket.repos.commits.list 'user-name', 'repo-name' { |key| ... } # bitbucket.repos.commits.list 'user-name', 'repo-name', nil, # "include" => "feature-branch", # "exclude" => "master" # def list(user_name, repo_name, branchortag=nil, params={}) _update_user_repo_params(user_name, repo_name) _validate_user_repo_params(user, repo) unless user? && repo? normalize! params filter! VALID_KEY_PARAM_NAMES, params path = if BitBucket.options[:bitbucket_server] "/1.0/projects/#{user_name}/repos/#{repo_name}/commits" else "/2.0/repositories/#{user}/#{repo.downcase}/commits" end path << "/#{branchortag}" if branchortag response = get_request(path, params) return response unless block_given? response.each { |el| yield el } end alias :all :list end # Repos::Commits end # BitBucket