Поиск компонентов#

Внимание

Данный раздел переведен с использованием инструментов машинного перевода

Обзор поиска#

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

Поиск компонентов доступен в нескольких местах: через поисковый ввод в верхней навигации, через главную кнопку Поиск в левой навигации или через одну из кнопок конкретных форматов, вложенных в Поиск в левой навигации.

search

Под заголовком поиска находится область ввода критериев поиска, в которой отображаются текущие критерии (например, ключевое слово). Рядом с текущими критериями находится раскрывающееся меню More, которое позволяет добавить дополнительные критерии к поиску. Каждый критерий можно удалить, выбрав значок «минус»/«тире» в поле ввода критериев. cross/x в поле ввода сбрасывает значение.

more criteria

Каждый критерий можно использовать вместе, чтобы получить широкие или точные результаты поиска. Например, поиск по имени foo может вернуть большое количество компонентов Maven, NuGet и других, но добавление версии может ограничить поиск до искомого. Поле Keyword также поддерживает символ * (звезда, звездочка) для подстановочных знаков. Если в критерии ничего не указано, результаты не будут иметь сокращений, основанных на этом критерии.

Критерии поиска и атрибуты компонентов#

Критерий поиска для всех форматов#

Можно использовать несколько различных критериев для любого формата репозитория, чтобы получить результаты по всем компонентам во всех репозиториях:

Keyword#

Используйте поиск по ключевому слову для поиска строки и просмотра совпадений, найденных в формате, группе, имени, версии и всех других значениях метаданных компонента.

Format#

Формат репозитория, в котором искать компонент.

Group#

Группа - это идентификатор, который группирует компоненты каким-либо образом, например по организациям. Он также может использоваться просто для создания определенного пространства имен для проекта. Не все форматы репозиториев используют понятие группы. Некоторые инструменты просто используют другое название для этого понятия, например, org для Apache Ivy или groupId для Apache Maven и формата репозитория maven2. В случае с репозиторием maven2 group является обязательным атрибутом. Другие форматы, например формат репозитория nuget, вообще не используют group.

Name#

Имя компонента является его основным идентификатором. Различные форматы репозиториев используют разные имена для этого понятия, например artifactId для Apache Maven и формата репозитория maven2.

Repository Name#

Имя репозитория, в котором следует искать компонент.

Version#

Версия компонента определяет конкретный момент времени, когда этот компонент был выпущен. Различные инструменты, такие как Maven или NuGet, используют термин «версия». Другие системы сборки называют это как-то иначе (например, Apache Ivy использует rev (сокращение от revision)). В большинстве форматов репозиториев номера версий не должны соответствовать определенному стандарту и представляют собой просто строку. Это влияет на порядок сортировки и может привести к неожиданным результатам.

Checksum - MD5, gost3411s512 SHA-1, SHA-256 or SHA-512#

Значение контрольной суммы файла компонента, сгенерированное алгоритмом MD5, SHA-1, SHA-256 или SHA-512, а также поддержаны функции хеширования, определенные ГОСТ Р 34.11-2012.

Критерии поиска в зависимости от формата

Некоторые форматы также имеют критерии поиска, которые можете использовать.

Репозитории Maven#

Group Id#

Идентификатор группы Maven для компонента. Другие системы сборки, поддерживающие формат репозиториев Maven, называют его по-разному, например, org для Apache Ivy и group для Gradle и Groovy Grape. Group Id эквивалентен Group.

Artifact Id#

Идентификатор артефакта Maven для компонента. Другие системы сборки называют его по-другому, например, name для Apache Ivy и Gradle и module для Groovy Grape. Artifact Id эквивалентен Name.

Classifier#

Классификатор Maven для компонента. Общие значения: javadoc, sources или tests.

Base Version#

Базовая версия компонента/ассета. Обычно это то же значение, что и версия для компонентов релиза. Компоненты разработки SNAPSHOT используют версию с временной меткой, но базовая версия использует версию SNAPSHOT, например, версия 1.0.0-20151001.193253-1 и базовая версия 1.0.0-SNAPSHOT.

Extension#

Расширение, используемое для конкретного ассета компонента.

Репозитории NuGet#

ID#

Идентификатор компонента NuGet, известный пользователям NuGet как Package ID.

Tags#

Дополнительная информация о компоненте, оформленная в виде ключевых слов, разделенных пробелами, выбранных автором пакета.

Репозитории Docker#

Image Name#

Имя для образа Docker. Оно эквивалентно имени компонента в менеджере репозиториев, который представляет образ Docker.

Image Tag#

Тег для образа Docker. Он эквивалентен версии компонента в менеджере репозиториев, который представляет образ Docker.

Обработка строки запроса для поиска по ключевым словам#

Введенный запрос передается в индексы, созданные для каждого компонента в системе. Эти индексы содержат координаты компонента, а также любые метаданные, прикрепленные к компоненту. Некоторые из этих индексов содержат данные, которые были токенизированы (например, строки, разделенные дефисом, так что aether-util будет соответствовать двум поисковым запросам, aether или util), в то время как другие индексы этого не делают (представьте, что хотите найти «aether-util» (см. ниже для более подробной информации о двойных кавычках), для этого потребуется полное имя, а не токенизированная версия). Без подстановочных знаков строка запроса должна точно соответствовать полю в одном из этих индексов. Подстановочные знаки могут спасти вас, когда просто не можете вспомнить точное название, но имеете какое-то частичное представление.

Что касается подстановочных знаков, как они меняют мои запросы?#

Предположим, сделали запрос aeth, но он не дал результатов, поскольку для компонента, который пытаетесь найти, требуется полный термин aether. Поэтому можете использовать aeth*, и теперь он будет соответствовать компоненту aether-util, который изначально искали. Помните, что можете использовать подстановочные знаки в любом месте строки запроса, но их размещение в любом месте, кроме последнего символа, может привести к медленному выполнению запроса.

Использование гифки в моем запросе приводит к большому количеству результатов, как сделать это более управляемым?#

Наряду с токенизацией строк для поисковых терминов в некоторых индексах, мы также делаем то же самое со строкой запроса, который вводите, поэтому если введете aether-util, мы покажем все результаты, которые будут соответствовать aether или util. Если знаете, что нужен именно aether-util, и хотите отфильтровать все остальные результаты, можете использовать двойные кавычки в поисковом запросе, например «aether-util». В этом случае строка запроса больше не будет токенизироваться, а для поиска совпадения потребуется полная строка.

Результаты поиска#

После того как ввели условия поиска в одно или несколько полей ввода критериев, например критерий «Keyword » в представлении функции «Search», первые 300 результатов отображаются в списке компонентов.

Компоненты перечислены с указанием их имени, группы, версии, формата и информации о репозитории и по умолчанию отсортированы в алфавитном порядке по имени. Столбцы и порядок сортировки можно настраивать, как и во всех остальных списках.

При выборе компонента в списке отображается информация о компоненте, описанная в разделе Просмотр информации о компоненте.

Предварительно настроенные поиски#

На главной панели инструментов имеется поле ввода текста Поиск компонентов. Введите поисковый запрос, нажмите клавишу Enter/ Return, и менеджер репозитория выполнит поиск по ключевому слову.

Этот же поиск можно выполнить, выбрав пункт Поиск в главном меню Обзор. Термин для поиска можно ввести в поле ввода ключевого слова в представлении функции поиска.

Настраиваемый поиск по выбранным критериям доступен через пункт меню Custom в разделе Search главного меню Browse. Изначально в нем нет критериев, и он позволяет создать поиск с критериями, которые добавляете с помощью выпадающего списка More Criteria.

Поиск Apt - это предопределенный поиск, доступный через пункт меню Apt в разделе Поиск главного меню Browse. По умолчанию он вводит имя пакета и версию и поддерживает добавление других критериев. Формат настроен на apt.

Поиск Maven - это предопределенный поиск, доступный через пункт меню Maven в разделе Search главного меню Browse. По умолчанию вводятся идентификаторы Group Id, Artifact Id, Version, Base Version, Classifier и Extension, поддерживается добавление дополнительных критериев. Формат настроен на maven2.

Поиск Raw - это предопределенный поиск, доступный через пункт меню Raw в разделе Search главного меню Browse.По умолчанию он вводит имя и поддерживает добавление других критериев.Формат настроен на raw.

Поиск NuGet - это предопределенный поиск, доступный через пункт меню NuGet в разделе Search главного меню Browse. По умолчанию он вводит ID и Tags и поддерживает добавление других критериев. Формат настраивается на nuget.

Поиск Docker - это предопределенный поиск, доступный через пункт меню Docker в разделе «Поиск» главного меню Browse. По умолчанию он вводит имя изображения, тег изображения и идентификатор слоя и поддерживает добавление других критериев. Формат настраивается на docker.

Поиск npm - это предопределенный поиск, доступный через пункт меню npm в разделе Search главного меню Browse. По умолчанию вводятся значения Scope, Name и Version, поддерживается добавление дополнительных критериев.Формат настроен на npm.

Поиск Go - это предопределенный поиск, доступный через пункт меню Go в разделе Search главного меню Browse.По умолчанию он вводит имя и версию и поддерживает добавление других критериев. Формат настроен на переход.

Поиск Helm - это предопределенный поиск, доступный через пункт меню Helm в разделе Search главного меню Browse. По умолчанию он вводит имя и версию и поддерживает добавление других критериев. Формат настроен на Helm.

Поиск по PyPI - это предопределенный поиск, доступный через пункт меню PyPI в разделе «Поиск» главного меню Browse.По умолчанию вводятся классификаторы, описание, ключевые слова PyPI и резюме, поддерживается добавление дополнительных критериев.Формат настраивается на pypi.

Пример использования - поиск по SHA-1#

Иногда возникает необходимость определить версию компонента, когда у вас есть доступ только к двоичному файлу без какой-либо подробной информации о компоненте. Если при попытке такой идентификации ни имя файла, ни его содержимое не содержат никакой полезной информации о точной версии компонента, можете использовать SHA-1-поиск для идентификации компонента.

Создайте контрольную сумму sha1, например, с помощью команды sha1sum, доступной в Linux или OSX, или fciv в Windows, и используйте созданную строку в пользовательском поиске, добавив критерий SHA-1 из раздела Checksum элемента управления More criteria.

Поиск вернет результат, который предоставит подробную информацию о файле, позволяющую заменить файл объявлением зависимости. Например, можете получить Maven-параметры jar-файла и использовать их в объявлении зависимостей.

Поиск по контрольной сумме SHA-1 или аналогичным параметрам может значительно сэкономить время при переходе с устаревшей системы сборки, в которой используемые библиотеки проверяются в системе контроля версий как бинарные компоненты, не имеющие информации о версии.

Просмотр информации о компоненте#

После того как нашли компонент с помощью поиска и выбрали его в списке, увидите информацию о компоненте.

Отображаемая информация включает имя и формат репозитория, содержащего компонент, а также идентификаторы компонента Group, Name и Version. Наиболее популярная версия содержит номер версии того же компонента, который наиболее популярен в использовании в определенной группе и имени. Популярность показывает относительный процент популярности отображаемого компонента по отношению ко всем остальным версиям этого компонента. Значение 100 % означает, что данная версия является самой популярной. 50 % означает, что данная версия в два раза популярнее самой популярной версии. Данные о популярности предоставляются службой данных на основе запросов из Центрального репозитория и других данных и доступны не для всех компонентов. Возраст показывает возраст компонента.

Ни одна из данных о популярности или возрасте не доступна для просмотра без включенной функции Repository Health Check, о чем мы слегка коснулись в разделе Управление репозиториями и группами репозиториев.

Под информацией о компоненте отображается список одного или нескольких ассетов, связанных с ним. Нажмите строку с именем ассета, который хотите проверить, чтобы просмотреть информацию о нем, описанную в разделе Просмотр информации об ассетах.

Чтобы удалить компонент, нажмите кнопкуDelete component. Появится модальное окно для подтверждения удаления. Можно удалять компоненты только из размещенных и прокси-репозиториев. В большинстве форматов репозиториев удаление компонента приводит к удалению всех связанных с ним ассетов.

В некоторых форматах репозиториев ассеты являются общими для всех компонентов. Они остаются после удаления компонента.

Чтобы проанализировать приложение, нажмите кнопку Анализировать приложение. Появится форма, запрашивающая у вас дополнительную информацию: адрес электронной почты, пароль для отчета, список проприетарных пакетов для приложения и название отчета. После того как предоставите эту информацию, нажмите кнопку Analyze. Ссылка на отчет будет отправлена по электронной почте, как только он будет готов.

Просмотр информации об ассете#

Доступ к информации об ассете можно получить из представления информации о компоненте. Кнопка Delete позволяет удалить ассет. Сама информация разбита на разделы, доступные на вкладках под кнопкой «Удалить ассет». Раздел Summary содержит ряд атрибутов о конкретном ассете.

Path:#

путь к ассету в репозитории. Это ссылка, загружаемая или загружаемая в браузере, в зависимости от содержимого ассета.

Content Type#

MIME-тип ассета.

File size:#

размер файла.

Blob created:#

дата и время создания ассета в блоб-хранилище Artifactory.

Blob updated:#

дата и время последнего обновления ассета в хранилище репозиториев Artifactory. Изначально она будет совпадать с Blob created.

Last 30 days:#

количество раз, когда ассет был загружен за последние тридцать дней.

Last downloaded:#

дата, когда ассет был загружен (или обновлен) в последний раз. Она будет обновляться при первой загрузке ассета, а также при последующих ответах 200 и 304. По умолчанию эта дата не обновляется слишком часто по соображениям производительности и обновляется только один раз за любой 12-часовой период. Эту настройку можно отменить, добавив параметр Storage Settings capability и настроив значение интервала обновления «Last Downloaded».

Locally cached:#

значение true означает, что актив может быть найден в хранилище менеджера репозитория, а false означает, что метаданные об активе доступны, хотя сам ассет не был загружен

Blob reference:#

уникальный идентификатор, указывающий на двоичный блоб, представляющий ассет в хранилище менеджера репозитория.

Uploader:#

пользователь, загрузивший ассет

Uploader’s IP Address:#

IP-адрес лица, загрузившего или запросившего ассет.

Раздел Attributes содержит дополнительные метаданные об ассете, связанные с атрибутами Cache, Checksum и Content. Ассеты могут содержать атрибуты, специфичные для конкретного формата, отображаемые в дополнительных разделах. Например, ассет в репозитории Maven2 имеет раздел Maven2 с атрибутами расширения, baseVersion, groupId, artifactId, version и asset_kind.

Безопасность#

Привилегия nx-search-read дает доступ к этому элементу левой навигации, а также к подпункту Search - Custom. Чтобы получить доступ к поиску по формату, нужно иметь соответствующие права просмотра репозитория формата. Например, если хотите увидеть подпункт Maven, необходимо иметь права просмотра репозитория хотя бы для одного репозитория Maven.