blob: a1aa28bf184e7cc0f2e379779e38efac2e967133 (
plain) (
blame)
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
;; -*- lexical-binding: t; -*-
(require 'buildbot-utils)
(defun buildbot-api-change (attr)
(buildbot-url-fetch-json
(format
"%s/api/v2/changes?%s"
buildbot-host (buildbot-format-attr attr))))
(defun buildbot-api-logs (stepid)
(buildbot-url-fetch-json
(format
"%s/api/v2/steps/%d/logs"
buildbot-host stepid)))
(defun buildbot-api-builders ()
(buildbot-url-fetch-json
(format
"%s/api/v2/builders"
buildbot-host)))
(defun buildbot-api-build (attr)
(buildbot-url-fetch-json
(format
"%s/api/v2/builds?%s"
buildbot-host (buildbot-format-attr attr))))
(defun buildbot-api-step (buildid)
(buildbot-url-fetch-json
(format
"%s/api/v2/builds/%s/steps"
buildbot-host buildid)))
(defun buildbot-api-log-raw (logid)
(buildbot-url-fetch-raw
(format "%s/api/v2/logs/%d/raw" buildbot-host logid)))
(defun buildbot-get-recent-changes (limit)
(buildbot-api-change (list (cons 'order "-changeid") (cons 'limit limit))))
(defun buildbot-get-all-builders ()
(alist-get 'builders (buildbot-api-builders)))
(defun buildbot-builder-by-id (builderid)
(cl-find-if
(lambda (builder)
(= (alist-get 'builderid builder) builderid))
buildbot-builders))
(defun buildbot-get-logs-by-stepid (stepid)
(alist-get 'logs (buildbot-api-logs stepid)))
(defun buildbot-get-builder-name-by-id (id)
(alist-get 'name (buildbot-builder-by-id id)))
(defun buildbot-get-changes-by-revision (revision)
(alist-get 'changes
(buildbot-api-change (list (cons 'revision revision)))))
(defun buildbot-get-build-by-buildid (buildid)
(buildbot-api-build (list (cons 'buildid buildid))))
(defun buildbot-get-builds-by-revision (revision)
(alist-get 'builds (buildbot-get-change-by-revision revision)))
(defun buildbot-get-failed-builds-by-revision (revision)
(seq-filter
(lambda (build)
(not (equal (alist-get 'state_string build) "build successful")))
(buildbot-get-builds-by-revision revision)))
(defun buildbot-format-builds-by-revision (revision)
(mapcar
'buildbot-format-build
(buildbot-get-builds-by-revision revision)))
(defun buildbot-get-steps-by-buildid (buildid)
(alist-get 'steps (buildbot-api-step buildid)))
(defun buildbot-get-logs-by-stepid (stepid)
(alist-get 'logs (buildbot-api-logs stepid)))
(defun buildbot-get-changes-by-branch (branch-name limit)
(alist-get 'changes
(buildbot-api-change
(cons `(branch . ,branch-name)
(when limit `((limit . ,limit)))))))
(provide 'buildbot-client)
|