1package present 2 3import ( 4 "github.com/concourse/concourse/atc" 5 "github.com/concourse/concourse/atc/db" 6) 7 8func Job( 9 teamName string, 10 job db.Job, 11 inputs []atc.JobInput, 12 outputs []atc.JobOutput, 13 finishedBuild db.Build, 14 nextBuild db.Build, 15 transitionBuild db.Build, 16) atc.Job { 17 var presentedNextBuild, presentedFinishedBuild, presentedTransitionBuild *atc.Build 18 19 if nextBuild != nil { 20 presented := Build(nextBuild) 21 presentedNextBuild = &presented 22 } 23 24 if finishedBuild != nil { 25 presented := Build(finishedBuild) 26 presentedFinishedBuild = &presented 27 } 28 29 if transitionBuild != nil { 30 presented := Build(transitionBuild) 31 presentedTransitionBuild = &presented 32 } 33 34 sanitizedInputs := []atc.JobInput{} 35 for _, input := range inputs { 36 sanitizedInputs = append(sanitizedInputs, atc.JobInput{ 37 Name: input.Name, 38 Resource: input.Resource, 39 Passed: input.Passed, 40 Trigger: input.Trigger, 41 }) 42 } 43 44 sanitizedOutputs := []atc.JobOutput{} 45 for _, output := range outputs { 46 sanitizedOutputs = append(sanitizedOutputs, atc.JobOutput{ 47 Name: output.Name, 48 Resource: output.Resource, 49 }) 50 } 51 52 return atc.Job{ 53 ID: job.ID(), 54 55 Name: job.Name(), 56 PipelineName: job.PipelineName(), 57 TeamName: teamName, 58 DisableManualTrigger: job.DisableManualTrigger(), 59 Paused: job.Paused(), 60 FirstLoggedBuildID: job.FirstLoggedBuildID(), 61 FinishedBuild: presentedFinishedBuild, 62 NextBuild: presentedNextBuild, 63 TransitionBuild: presentedTransitionBuild, 64 HasNewInputs: job.HasNewInputs(), 65 66 Inputs: sanitizedInputs, 67 Outputs: sanitizedOutputs, 68 69 Groups: job.Tags(), 70 } 71} 72