From 23e9b0e31dce7c290bba8d43322e214e7c2584fe Mon Sep 17 00:00:00 2001 From: varac Date: Sat, 27 Aug 2016 21:15:34 +0200 Subject: Gitlab merge reqs --- jobs/gitlab_merge_requests.rb | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 jobs/gitlab_merge_requests.rb (limited to 'jobs/gitlab_merge_requests.rb') diff --git a/jobs/gitlab_merge_requests.rb b/jobs/gitlab_merge_requests.rb new file mode 100644 index 0000000..f39caf9 --- /dev/null +++ b/jobs/gitlab_merge_requests.rb @@ -0,0 +1,36 @@ +require 'gitlab' +require 'date' + +# TODO: Move config to yaml +my_group_path = 'leap' +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 + +pr_widget_data_id = 'gitlab-merge-requests' +SCHEDULER.every '10m', :first_in => 0 do |job| + my_group = Gitlab.groups(:search => my_group_path).find do |group| + group.path == my_group_path + end + projects = Gitlab.group(my_group.id).projects.map do |proj| + { :id => proj['id'], :name => proj['name'] } + end + + open_merge_requests = projects.inject([]) { |merges, proj| + Gitlab.merge_requests(proj[:id], :state => 'opened').each do |request| + puts proj[:name] + ': ' + request.title + merges.push({ + title: request.title, + repo: proj[:name], + updated_at: DateTime.parse(request.updated_at).strftime("%b %-d %Y, %l:%m %p"), + creator: "@" + request.author.username + }) + end + merges + } + send_event(pr_widget_data_id, { header: "Open Merge Requests", merges: open_merge_requests }) +end -- cgit v1.2.3