lib/cobench/metrics/pulls.rb in cobench-0.0.42 vs lib/cobench/metrics/pulls.rb in cobench-0.0.43
- old
+ new
@@ -17,10 +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 'time'
require_relative '../match'
# Pulls in GitHub API.
# Author:: Yegor Bugayenko (yegor256@gmail.com)
# Copyright:: Copyright (c) 2022 Yegor Bugayenko
@@ -37,16 +38,18 @@
q = "in:comments type:pr author:#{@user} is:merged merged:>#{from}"
json = @api.search_issues(q)
loog.debug("Found #{json.total_count} pull requests")
hoc = 0
orgs = []
+ lcps = []
total = json.items.count do |p|
pr = p.pull_request.url.split('/')[-1]
repo = p.repository_url.split('/')[-2..-1].join('/')
next unless Cobench::Match.new(@opts, loog).matches?(repo)
orgs << p.repository_url.split('/')[-2]
pr_json = @api.pull_request(repo, pr)
+ lcps << (pr_json[:merged_at] - pr_json[:created_at])
hocs = pr_json.additions + pr_json.deletions
hoc += hocs
loog.debug("Including #{repo}##{pr} with #{hocs}")
end
[
@@ -59,12 +62,15 @@
title: 'Pulls',
total: total,
href: Iri.new('https://github.com/search').add(q: q)
},
{
+ title: 'LcP',
+ total: lcps.size.zero? ? 0 : ((lcps.inject(&:+) / lcps.size) / (60 * 60)).to_i
+ },
+ {
title: 'HoC',
- total: hoc,
- href: ''
+ total: hoc
}
]
end
end