package service import ( "strconv" "strings" ) type gerritMeta struct { patchSet int64 changeId string commit string } // parseGerritMetadata takes a NoteDB metadata entry and extracts info from it. func parseGerritMetadata(messages []string) *gerritMeta { meta := &gerritMeta{} for _, message := range messages { for _, line := range strings.Split(message, "\n") { line = strings.TrimSpace(line) if len(line) == 0 { continue } parts := strings.SplitN(line, ":", 2) if len(parts) < 2 { continue } k, v := parts[0], strings.TrimSpace(parts[1]) switch k { case "Patch-set": n, err := strconv.ParseInt(v, 10, 64) if err != nil { continue } meta.patchSet = n case "Change-id": meta.changeId = v case "Commit": meta.commit = v } } } if meta.patchSet == 0 { return nil } if meta.changeId == "" { return nil } if meta.commit == "" { return nil } return meta }