module Github::Repos::Collaborators

def add_collaborator(user_name, repo_name, collaborator, params={})


@repos.add_collaborator 'user', 'repo', 'collaborator'
@repos = Github::Repos.new

@github.collaborators.add_collaborator 'user', 'repo', 'collaborator'
@github = Github.new
Examples:

Add collaborator
def add_collaborator(user_name, repo_name, collaborator, params={})
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  _validate_presence_of collaborator
  _normalize_params_keys(params)
  put("/repos/#{user}/#{repo}/collaborators/#{collaborator}", params)
end

def collaborator?(user_name, repo_name, collaborator, params={})


@github.collaborators.collaborator?('user', 'repo', 'collaborator')
@github = Github.new
Examples:

Checks if user is a collaborator for a given repository
def collaborator?(user_name, repo_name, collaborator, params={})
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  _validate_presence_of collaborator
  _normalize_params_keys(params)
  get("/repos/#{user}/#{repo}/collaborators/#{collaborator}", params)
  true
rescue Github::Error::NotFound
  false
end

def collaborators(user_name=nil, repo_name=nil, params={})


@github.repos.collaborators 'user-name', 'repo-name' { |cbr| .. }
@github.repos.collaborators 'user-name', 'repo-name'
@github = Github.new
Examples:

List collaborators
def collaborators(user_name=nil, repo_name=nil, params={})
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless (user? && repo?)
  _normalize_params_keys(params)
  response = get("/repos/#{user}/#{repo}/collaborators", params)
  return response unless block_given?
  response.each { |el| yield el }
end

def remove_collaborator(user_name, repo_name, collaborator, params={})


@github.repos.remove_collaborator 'user', 'repo', 'collaborator'
@github = Github.new
Examples:

Removes collaborator
def remove_collaborator(user_name, repo_name, collaborator, params={})
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  _validate_presence_of collaborator
  _normalize_params_keys(params)
  delete("/repos/#{user}/#{repo}/collaborators/#{collaborator}", params)
end