Для выполнения действия необходимо наличие токена — строки base64(admin:password), используемой как Basic Auth при запросах к Nexus.

CreateNexusRepository — создаёт новый репозиторий любого поддерживаемого типа (maven, docker, npm и др.) в Nexus Repository Manager 3 с помощью REST API.
Параметры формата, типа и другие ключевые настройки полностью настраиваются и соответствуют Nexus API.

Пример запроса (Maven hosted)

description: |
  Maven hosted repo for internal Java build artifacts.
name: my-maven-repo
format: maven
type: hosted
online: true
storage:
  blobStoreName: default
  strictContentTypeValidation: true
  writePolicy: ALLOW
cleanup:
  policyNames:
    - maven-cleanup
maven:
  versionPolicy: RELEASE
  layoutPolicy: PERMISSIVE

Пример запроса (Docker group)

description: |
  Docker group repo aggregating hosted+proxy.
name: my-docker-group
format: docker
type: group
online: true
storage:
  blobStoreName: default
  strictContentTypeValidation: true
group:
  memberNames:
    - docker-hosted
    - docker-proxy
docker:
  v1Enabled: false
  forceBasicAuth: true
  httpPort: 5001

Спецификация запроса

ПолеОбязательностьОписаниеПример
descriptionНетДокументация по назначению этого действия/репозитория. Не используется самим Nexus, только для UI-
nameДаНазвание создаваемого репозитория. Должно быть уникальным в рамках Nexusmy-maven-repo
formatДаФормат (maven, docker, npm, raw и т. д.)maven
typeДаТип: hosted, proxy или grouphosted
onlineДаДоступен ли репозиторий (true/false)true
storageДаОбъект storage: blobStoreName, strictContentTypeValidation, writePolicyПример
cleanupНетПривязанные политики очистки (policyNames)policyNames: [maven-cleanup]
mavenДля mavenТолько для maven: versionPolicy, layoutPolicyПример
proxyДля proxyПрокси-репозиторий: remoteUrl, contentMaxAge, metadataMaxAge-
groupДля groupСписок значений memberNamesПример
dockerДля dockerСпецифичные для Docker параметры: httpPort, v1Enabled, forceBasicAuthПример
componentОчень редкоТолько для некоторых нестандартных сценариев-
attributesНетЛюбые кастомные поля-

Требования

  • Используйте только те блоки (maven, group, proxy, docker и пр.), которые поддерживаются для вашего типа/формата.
  • Для maven hosted обязательно maven: {versionPolicy, layoutPolicy}.
  • Для group — обязательно group.memberNames.
  • Для proxy — обязательно proxy.remoteUrl.
  • Для docker — специфичные поля в docker.