маленькую тулзу, которая будет ловить ивенты с гитлаба и делать некие изменения в нашей джире, в зависимости от состояния лейблов в мержреквестах.
Юзаю пакет github.com/xanzy/go-gitlab
ивенты ловятся, и вот я хочу посмотреть на изменившиеся метки. Вот так выглядит массив меток:
(struct { Previous []gitlab.Label "json:\"previous\""; Current []gitlab.Label "json:\"current\"" }) {
Previous: ([]gitlab.Label) {
},
Current: ([]gitlab.Label) (len=1 cap=4) {
(gitlab.Label) gitlab.Label{ID:15120961, Name:"IN TEST", Color:"D10069", TextColor:"", Description:"в процессе тестирования, если есть замечания - лейбл не меняется", OpenIssuesCount:0, ClosedIssuesCount:0, OpenMergeRequestsCount:0, Subscribed:false, Priority:0, IsProjectLabel:false}
}
}
Пытаюсь фильтровать с помощью пакета github.com/oliveagle/jsonpath
делаю элементарное:
res, err := jsonpath.JsonPathLookup(event.Changes.Labels, "$.Current")
...
spew.Dump(res)
однако получаю
object is not map
ЧЯДНТ?
Оно вроде бы мапы только понимает. В ошибке и написано. Если у вас уже есть структура, то зачем запрос делать, обращайтесь напрямую к полям.
Почему нет.
ну хотелось просто более лаконичный код
Оберните в функцию.
Обсуждают сегодня