Sha256: 5a29e1cc3c53e0e7659d40536bbe54447e84a9e6005daa2801fe6b6159948a69

Contents?: true

Size: 1.71 KB

Versions: 2

Compression:

Stored size: 1.71 KB

Contents

require 'octokit'
require_relative 'config-reader'

module WhatsupGithub
  # Gets pull filtered pull requests from GitHub
  class Pulls
    attr_reader :since, :repo

    def initialize(args = {})
      @repo = args[:repo]
      @since = args[:since]
    end

    def filtered
      issues = []
      required_labels.each do |label|
        issues += search_issues(label).items
      end
      optional_labels.each do |label|
        issues += search_issues_with_magic_word(label).items
      end
      issues
    end

    private

    # def access_token
    #   credentials.dig 'github_token'
    # end

    def configuration
      Config.instance
    end

    def optional_labels
      configuration.optional_labels
    end

    def required_labels
      configuration.required_labels
    end

    def magic_word
      configuration.magic_word
    end

    def base_branch
      configuration.base_branch
    end

    def client
      Octokit::Client.new(:netrc => true)
    end

    def search_issues(label)
      auto_paginate
      query = "repo:#{repo} label:\"#{label}\" merged:>=#{since} base:#{base_branch}"
      puts "Searching on GitHub by query #{query}"
      client.search_issues(query)
    end

    def search_issues_with_magic_word(label)
      auto_paginate
      query = "repo:#{repo} label:\"#{label}\" merged:>=#{since} base:#{base_branch} \"#{magic_word}\" in:body"
      puts "Searching on GitHub by query #{query}"
      client.search_issues(query)
    end

    def auto_paginate
      Octokit.auto_paginate = true
    end
  end
end

if $PROGRAM_NAME == __FILE__
  require 'date'
  two_weeks_ago = (Date.today - 14).to_s
  pulls = WhatsupGithub::Pulls.new(repo: 'magento/devdocs', since: two_weeks_ago)
  p pulls.filtered
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
whatsup_github-0.3.1 lib/whatsup_github/pulls.rb
whatsup_github-0.3.0 lib/whatsup_github/pulls.rb