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