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