Skip to content

NGRsoftlab/Nexus-publisher-toolkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NGRSOFTLAB logo

Nexus Publisher Toolkit

Version Status

Nexus Repository Manager

Ascii svg art by aasvg.

🚀 Description

Nexus Publisher Toolkit - это набор скриптов для автоматизации работы с Nexus Repository Manager. Поддерживает многопоточную загрузку/выгрузку артефактов различных типов

Присоединяйтесь к нашим социальным сетям:

NGR Social Telegram       NGR Social Media

📍 Contents

Базовые компоненты, необходимые для работы с проектом:

  • bash >= 5.0.3(1)-release
Technology Script Status
Go import_golang.sh ✅ Fully supported
Maven import_maven.sh ✅ Fully supported
NPM import_npm.sh ✅ Fully supported
NuGet import_nuget.sh ✅ Fully supported
Python import_pyp.sh ✅ Fully supported
RubyGems import_ruby.sh ✅ Fully supported
Таблица 1. Поддерживаемые скрипты для работы с ЯП.

 

git clone <nexus-publisher-toolkit-repo>
cd nexus-publisher-toolkit
chmod +x *.sh

Для начала работы необходимо установить pre-commit и хуки

$ pip install pre-commit
$ pre-commit --version

pre-commit 4.2.0

$ pre-commit install

pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/commit-msg
pre-commit installed at .git/hooks/pre-push

Warning

Чтобы проверить свои изменения, воспользуйтесь командой pre-commit run --all-files. Чтобы проверить конкретную задачу, воспользуетесь командой pre-commit run <target> --all-files. Если Вы понимаете что творите и хотите пропустить проверку pre-commit-ом воспользуйтесь --no-verify, пример git commit -m "Добавил изменения и не хочу проверки" --no-verify

%%{init: { 'theme':'dark', 'sequence': {'useMaxWidth':false} } }%%
graph TD
    A[Prepare artifacts] --> B[Run import script]
    B --> C{Default Multi-thread?}
    C -->|Yes| D[20 threads]
    C -->|No| E[Custom threads]
    D --> F[Parallel processing]
    E --> F[Complete]
Loading
## Пример настройки многопоточности
export BATCH_SIZE=15  # Количество параллельных процессов(по умолчанию это значение равно 20)
export WAIT_TIME=5    # Пауза между итерациями (секунды)(по умолчанию это значение 3)

./import_maven.sh -r http://nexus.example.com -u admin -p password

Maven Import

## Пример: Импорт Maven-артефактов
./import_maven.sh \
  -r http://nexus.example.com/repository/maven-releases/ \
  -u admin \
  -p s3cr3tP@ss \
  -t ./maven-artifacts

NPM Import

## Пример: Импорт NPM-пакетов
./import_npm.sh \
  -r http://nexus.example.com/repository/npm-registry/ \
  -u npm-user \
  -p npm-pass

SSL Certificate Problems

- Ошибка: Certificate verification failed
+ Решение: Добавить в /etc/lftp.conf:
  set ssl:verify-certificate no

Authentication check

# Проверка доступа:
curl -u username:password http://nexus.example.com/service/metrics/ping

Not support parallel

  1. Логируйте операции:

    ./import_maven.sh -r "${NEXUS_URL}" | tee import.log
  2. Тестируйте на малых количествах потоков и артефактов перед полным импортом:

    ## Только 10 артефактов
    export BATCH_SIZE=10
    ./import_pyp.sh -r "${NEXUS_URL}" -t ./test-import

Made with love Powered by Nexus NGR Team

About

Набор скриптов для обслуживания Sonatype Nexus

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors