class Gitlab::Cli::GitLab

Public Class Methods

new(options) click to toggle source
# File lib/gitlab/cli/gitlab.rb, line 7
def initialize(options)
  @api = Gitlab::Cli::Api.new(options)
end

Public Instance Methods

apply_group_settings(group_settings) click to toggle source
# File lib/gitlab/cli/gitlab.rb, line 20
def apply_group_settings(group_settings)
  group_settings.each do |group_name, setting|
    p "Applying settings to: #{group_name}"
    group_id = group_id(group_name)
    all_projects = projects(group_id)
    all_projects.each do |project|
      setting.each do |name, value|
        project.send('update_'+name, value)
      end
    end
  end
end
projects(group_id = nil) click to toggle source
# File lib/gitlab/cli/gitlab.rb, line 11
def projects(group_id = nil)
  projects_json = @api.http_get(group_id ? "groups/#{group_id}/projects" : 'projects')
  projects = []
  projects_json.each do |proj_json|
    projects << Gitlab::Cli::Project.new(@api, id: proj_json['id'], name: proj_json['name'])
  end
  projects
end

Private Instance Methods

group_id(group_name) click to toggle source
# File lib/gitlab/cli/gitlab.rb, line 35
def group_id(group_name)
  grp = @api.http_get('groups').find {|g| g['name'] == group_name}
  grp ? grp['id'] : raise("Group #{group_name} not found")
end