Чтобы получить список имен тегов из такой структуры, вы можете использовать оператор распространения Groovy:
def tags = response*.name
Его можно упростить до:
def tags = response.name
, и это простоэквивалент:
def tags = response.collect { it.name }
Теперь, если вы ожидаете, что этот список будет отсортирован по ключу commit.created_at
, вы можете вызвать метод .sort {}
перед использованием оператора распространения, например,
def tags = response.sort { it.commit.created_at }.name
Это будет сортировать список имен в порядке возрастания.Если вы заинтересованы в порядке убывания, вы можете отменить тело метода сортировки:
def tags = response.sort { !it.commit.created_at }.name
Ниже вы можете найти полный пример:
import groovy.json.JsonSlurper
def json = "https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-ce/repository/tags".toURL().text
def response = new JsonSlurper().parseText(json)
def tags = response.sort { it.commit.created_at }.name
println tags
Вывод:
[v10.7.0, v10.8.0.pre, v10.7.1, v10.5.8, v10.6.5, v10.7.2, v10.8.0-rc1, v10.7.3, v10.8.0-rc2, v10.8.0-rc3, v10.8.0-rc4, v10.8.0-rc6, v10.8.0-rc5, v10.8.0-rc7, v10.8.0-rc8, v10.8.0-rc9, v10.8.0-rc10, v10.8.0-rc11, v10.8.0-rc12, v10.8.0-rc13]
Надеюсь, это поможет.