yield_projects_page

in lib/connectors/gitlab/extractor.rb [27:52]


      def yield_projects_page(next_page_link = nil)
        query_params = {
          :pagination => :keyset,
          :per_page => PAGE_SIZE,
          :order_by => :id,
          :sort => :desc,
          :owned => @owned_only
        }

        if next_page_link.present?
          if (matcher = /(https?:[^>]*)/.match(next_page_link))
            clean_query = URI.parse(matcher.captures[0]).query
            query_params = Rack::Utils.parse_query(clean_query)
          else
            raise "Next page link has unexpected format: #{next_page_link}"
          end
        end
        response = client.get('projects', query_params)

        projects_chunk = JSON.parse(response.body)
        yield projects_chunk

        
        response.headers['Link'] || nil
      end