| 4048 | } |
| 4049 | |
| 4050 | func latestTaskActivityAt(record Task, runs []Run, events []Event) time.Time { |
| 4051 | latest := record.UpdatedAt |
| 4052 | if latest.IsZero() || (!record.CreatedAt.IsZero() && record.CreatedAt.After(latest)) { |
| 4053 | latest = record.CreatedAt |
| 4054 | } |
| 4055 | for _, run := range runs { |
| 4056 | runAt := latestRunActivityAt(run) |
| 4057 | if runAt.After(latest) { |
| 4058 | latest = runAt |
| 4059 | } |
| 4060 | } |
| 4061 | for _, event := range events { |
| 4062 | if event.Timestamp.After(latest) { |
| 4063 | latest = event.Timestamp |
| 4064 | } |
| 4065 | } |
| 4066 | return latest |
| 4067 | } |
| 4068 | |
| 4069 | func latestRunActivityAt(run Run) time.Time { |
| 4070 | latest := run.QueuedAt |