lib/cobench/metrics/pulls.rb in cobench-0.0.7 vs lib/cobench/metrics/pulls.rb in cobench-0.0.8

- old
+ new

@@ -17,11 +17,11 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. require 'iri' -require_relative '../mask' +require_relative '../match' # Pulls in GitHub API. # Author:: Yegor Bugayenko (yegor256@gmail.com) # Copyright:: Copyright (c) 2022 Yegor Bugayenko # License:: MIT @@ -34,21 +34,30 @@ def take(loog) from = (Time.now - (60 * 60 * 24 * @opts[:days])).strftime('%Y-%m-%d') q = "#{@user} in:comments type:pr author:#{@user} is:merged closed:>#{from}" json = @api.search_issues(q) + loog.debug("Found #{json.total_count} pull requests") + hoc = 0 total = json.items.count do |p| pr = p.pull_request.url.split('/')[-1] repo = p.repository_url.split('/')[-2..-1].join('/') - if @opts[:include].none? { |m| Cobench::Mask.new(m).matches?(repo) } - loog.debug("Excluding #{repo}##{pr} due to lack of --include") - next - end - if @opts[:exclude].any? { |m| Cobench::Mask.new(m).matches?(repo) } - loog.debug("Excluding #{repo}##{pr} due to --exclude") - next - end - loog.debug("Including #{repo}#{pr}") + next unless Cobench::Match.new(@opts).matches?(repo) + pr_json = @api.pull_request(repo, pr) + hocs = pr_json.additions + pr_json.deletions + hoc += hocs + loog.debug("Including #{repo}##{pr} with #{hocs}") end - [total, Iri.new('https://github.com/search').add(q: q)] + [ + { + title: 'Pulls', + total: total, + href: Iri.new('https://github.com/search').add(q: q) + }, + { + title: 'HoC', + total: hoc, + href: '' + } + ] end end