1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
require 'gitlab'
require 'date'
require 'pp'
endpoint = 'https://0xacab.org/api/v3'
#group_path = 'leap'
#group_id = 52
token = '8vw3vWRrzFw8B6XH9e6d'
broken_builds = []
Gitlab.configure do |config|
# API endpoint URL, default
config.endpoint = endpoint
# User's private token or OAuth2 access token
config.private_token = token
end
# find group id by name
#my_group = Gitlab.groups(:search => group_path).find do |group|
#group.path == group_path
#end
#my_group_id = my_group.id
SCHEDULER.every '60s', :first_in => 0 do
projects = [
# {:id=>327, :name=>"zeromq3", :path=>"leap/zeromq3"},
# {:id=>97, :name=>"soledad", :path=>"leap/soledad"},
# {:id=>129, :name=>"platform", :path=>"leap/platfrom"},
{:id=>241, :name=>"leap_cli", :path=>"leap/leap_cli"}
]
# get a list of all projects
#projects = Gitlab.group(group_id).projects.map do |proj|
#pp proj
#{ :id => proj['id'], :name => proj['name'], :path => proj['path_with_namespace'] }
#end
projects.each do |proj|
begin
pipeline = Gitlab.pipelines(proj[:id], { per_page: 1 })
#pp pipeline[0]
proj[:status] = pipeline[0].status
proj[:pipeline_id] = pipeline[0].id
proj[:ref] = pipeline[0].ref
proj[:date] = pipeline[0].finished_at
rescue
proj[:status] = 'No builds configured'
end
unless proj[:status] =~ /^success|running|No builds configured$/
broken_builds << proj
end
puts proj
end
failed = broken_builds.size > 0
#puts failed
send_event('gitlab-builds', { failed: failed, header: "Gitlab builds", broken_builds: broken_builds })
end
|