Поиск версии артефакта в артефакте

Я использую artifactory версии 3.0.4. Мне нужно вычислить список версий для указанного артефакта на основе groupId:artifacId:*.

Это кажется возможным при использовании REST и коммерческой версии artifactory:

https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-ArtifactVersionSearch

У меня в отличном сценарии есть следующее:

@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.3.2' )
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.HttpEntity;
import org.apache.http.util.EntityUtils
import org.apache.http.client.methods.HttpGet;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.impl.client.DefaultHttpClient;

def url = "http://artifactory:8089/artifactory/agg/libs-snapshot-local/com/mygroup/my-artifact/";
HttpGet request = new HttpGet(url);
DefaultHttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(request);

HttpEntity entity = response.getEntity();
String responseString = EntityUtils.toString(entity, "UTF-8");
println responseString

Но версии для my-artifact в responseString утоплены в нерелевантной информации. Есть ли предложения по выполнению более разумного запроса или мне нужно разобрать эту уродливую строку?


person u123    schedule 08.04.2014    source источник


Ответы (1)


Для конкретного вызова, который вы просили, действительно требуется artifactory pro. Что это значит:

прежде чем работать над ним, вам следует сравнить стоимость его внедрения и стоимость его покупки (убедитесь, что вы учитываете возможность тратить время на реализацию других «профессиональных» функций API)

Если ваше время по-прежнему остается дешевле и (если я правильно понимаю намерение) с учетом имени артефакта и идентификатора группы, вы хотите получить список версий.

что вы можете сделать, так это написать метод, реализующий этот "профессиональный" вызов API. значение:

  1. children_list = /api/storage/<repo>/<group id split by slashes>/<your artifact>/ | grep folder ="true"
  2. вы можете (должны?) проверить, действительно ли у детей есть дочерние дети (построенные артефакты)
  3. пройдитесь по элементам списка и создайте список версий с дочерними элементами

надеюсь, я не слишком запутался :-)

person mvk_il    schedule 08.04.2014