To allow fine-grained rebuilds, we need to override a failed main job by the success of all its constituent jobs (status(sha).groupBy(_.context)(config.jenkins.job).success == status(sha).groupBy(_.context).collect(case (job, stati) if isDownstreamJenkinsJob(job) => stati.headOption.exists(success))