lib/k_ext/github/api.rb in k_ext-github-0.0.3 vs lib/k_ext/github/api.rb in k_ext-github-0.0.4

- old
+ new

@@ -15,11 +15,11 @@ # attribute :sites, Array[Netlify::Site], :writer => :private attribute :client, Octokit::Client, writer: :private def self.instance(access_token) - GithubApi.new(token: access_token) + Api.new(token: access_token) end # Create API for communicating with GitHub # # Provide token OR login/password @@ -60,11 +60,31 @@ # Service Actions # -------------------------------------------------------------------------------- # list of repositories for this user # - def repositories - items = @client.repositories({}, query: { per_page: 100 }) + def repositories(per_page: 100, page: 1) + items = @client.repositories({}, query: { per_page: per_page, page: page }) + + items.map { |item| KExt::Github::Models::Repository.new(item) } + end + + # list of ALL repositories for this user + # + def all_repositories + # NOTE: Does not seam to work + # items = @client.all_repositories({}) + + items = [] + page = 1 + keep_going = true + + while keep_going + paged_items = repositories(page: page) + items += paged_items + page += 1 + keep_going = paged_items.length.positive? && page <= 50 + end items.map { |item| KExt::Github::Models::Repository.new(item) } end # create repository