- (when (not project) (error "Project does not exist"))
- (when (not job) (error "Job does not exist"))
- (job-log job)))
+ (when (not project) (raise-candle-error :project-does-not-exist))
+ (when (not job) (raise-candle-error :job-does-not-exist))
+ job))
+
+(defun get-job-log (project-name sha)
+ (job-log (find-job-by-project-and-sha project-name sha)))
+
+(defun retry-job (project-name sha)
+ (set-job-status (find-job-by-project-and-sha project-name sha) :queued)
+ (awaken-processor-thread))
+
+(defun list-projects ()
+ (mapcar
+ (lambda (project)
+ (list
+ (project-name project)
+ (project-src project)))
+ *all-project*))
+
+(defun failures (project-name)
+ (let
+ ((project (when project-name (find project-name *all-project* :test #'string= :key #'project-name))))
+ (when (and project-name (not project)) (raise-candle-error :project-does-not-exist))
+ (length
+ (remove-if-not
+ (lambda (branch) (eql :failed (job-status (branch-job branch))))
+ (if project (find-branch-by-project project) *all-branch*)))))