+ ((project (when name (find name *all-project* :test #'string= :key #'project-name))))
+ (when (and name (not project)) (error "Project does not exist"))
+ (mapcar #'job->job-information
+ (if project
+ (find-job-by-project project)
+ *all-job*))))
+
+(defun get-job-log (project-name sha)
+ (let*
+ ((project (find project-name *all-project* :test #'string= :key #'project-name))
+ (job
+ (when project
+ (find-if
+ (lambda (job-sha)
+ (and (<= (length sha) (length job-sha)) (string= sha (subseq job-sha 0 (length sha)))))
+ (find-job-by-project project)
+ :key #'job-sha))))