From 396e4cf638670bf00b8b929be154218a76b960b4 Mon Sep 17 00:00:00 2001 From: Azul Date: Tue, 18 Jul 2017 12:57:44 +0200 Subject: refactor: GitlabStats to collect stats from gitlab Want to add stats about merge requests in the future while still fetching each project once. --- jobs/gitlab_build_status.rb | 34 ++++------------------------------ 1 file changed, 4 insertions(+), 30 deletions(-) (limited to 'jobs') diff --git a/jobs/gitlab_build_status.rb b/jobs/gitlab_build_status.rb index 317118d..7febcae 100644 --- a/jobs/gitlab_build_status.rb +++ b/jobs/gitlab_build_status.rb @@ -1,39 +1,13 @@ -require 'gitlab' -require 'date' +require 'gitlab_stats' -Gitlab.configure do |config| - # API endpoint URL, default - config.endpoint = ENV['GITLAB_ENDPOINT'] - - # User's private token or OAuth2 access token - config.private_token = ENV['GITLAB_TOKEN'] -end SCHEDULER.every '3000s', :first_in => 0 do broken_builds = [] - # get a list of all projects - projects = Gitlab.group(ENV['GITLAB_GROUP_ID']).projects.map do |proj| - { :id => proj['id'], :name => proj['name'], :path => proj['path_with_namespace'], - :default_branch => proj['default_branch']} - end - - projects.each do |proj| - begin - pipelines = Gitlab.pipelines(proj[:id], { per_page: 10 }) - #pp pipeline[0] - pipeline = pipelines.find{|p| p.ref == proj[:default_branch]} - next if pipeline.nil? - proj[:status] = pipeline.status - proj[:pipeline_id] = pipeline.id - proj[:ref] = pipeline.ref - date = DateTime.parse(pipeline.updated_at).strftime("%F %T") - proj[:date] = date - rescue - proj[:status] = 'No builds configured' - end + GitlabStats.projects.each do |proj| + GitlabStats.add_pipeline_stats_to proj - unless proj[:status] =~ /^success|running|No builds configured$/ + unless proj[:status] =~ /^success|running|No builds configured/ broken_builds << proj end puts proj -- cgit v1.2.3