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