in pkg/queue/message.go [84:122]
func (m *Messages) ContainsBuild(spec archive.Spec) (bool, error) {
failures := 0
for _, rawMessage := range m.Messages {
if failures > 4 {
return false, fmt.Errorf("too many failures inspecting builds")
}
messageID := "unknown"
if rawMessage.MessageID != nil {
messageID = *rawMessage.MessageID
}
if rawMessage.MessageText == nil {
failures++
fmt.Fprintf(os.Stderr, "##vso[task.logissue type=error;]nil message with ID: %s\n", messageID)
continue
}
b, err := base64.StdEncoding.DecodeString(*rawMessage.MessageText)
if err != nil {
failures++
fmt.Fprintf(os.Stderr, "##vso[task.logissue type=error;]error decoding base64 string for message with ID: %s\n", messageID)
continue
}
var m Message
if err := json.Unmarshal(b, &m); err != nil {
failures++
fmt.Fprintf(os.Stderr, "##vso[task.logissue type=error;]error unmarshaling message with ID: %s\n", messageID)
continue
}
if m.Spec == spec {
return true, nil
}
}
return false, nil
}