class Mkghrepo::Repo

Repo provides an interface to github repos

Public Class Methods

new(token) click to toggle source
# File lib/mkghrepo/repo.rb, line 9
def initialize(token)
  # stack = Faraday::RackBuilder.new do |builder|
  #   builder.response :logger
  #   builder.use Octokit::Response::RaiseError
  #   builder.adapter Faraday.default_adapter
  # end
  # Octokit.middleware = stack
  @client = Octokit::Client.new(access_token: token)
end

Public Instance Methods

add_user_to_team(user, team_id) click to toggle source
# File lib/mkghrepo/repo.rb, line 42
def add_user_to_team(user, team_id)
  @client.add_team_membership(team_id, user,
                          role: 'maintainer',
                          accept: PREVIEW_API_HEADER)
end
create_repo(repo, private = false) click to toggle source
# File lib/mkghrepo/repo.rb, line 19
def create_repo(repo, private = false)
  if repo.include? '/'
    organization = repo.rpartition('/').first
    repo = repo.rpartition('/').last
    @client.create_repository(repo,
                              private: private,
                              organization: organization)
  else
    @client.create_repository(repo,
                              private: private)
  end
end
create_team(repo, team_name, permissions) click to toggle source
# File lib/mkghrepo/repo.rb, line 32
def create_team(repo, team_name, permissions)
  organization = repo.rpartition('/').first
  @client.create_team(organization,
                      name: team_name,
                      repo_names: [repo],
                      permission: permissions,
                      privacy: 'closed',
                      accept: PREVIEW_API_HEADER)
end