#!/bin/bash # Переменные AZURE_FEED=azure GITLAB_FEED=gitlab AZURE_FEED_URL="https://pkgs.dev.azure.com/your_org_name/your_project_name/_packaging/your_feed_name/nuget/v3/index.json" GITLAB_FEED_URL="https://gitlab.com/api/v4/projects/YOUR_PROJECT_ID/packages/nuget" TEMP_DIR="/opt/dev/nuget-tmp" AZURE_PAT="your_azure_pat" # Локальный переменная для удобства GITLAB_PAT="your_gitlab_pat" # Путь к файлу конфигурации NuGet #NUGET_CONFIG="NuGet.config" # Путь к временной директории для хранения пакетов TEMP_DIR="./nuget_temp" mkdir -p $TEMP_DIR # Создать временный .csproj для загрузки всех пакетов echo ' net5.0 ' > $TEMP_DIR/temp.csproj # Загрузить все доступные пакеты помощью dotnet restore # Используется пустой .csproj, чтобы добавить все версии пакетов в TEMP_DIR/nuget_temp dotnet restore $TEMP_DIR/temp.csproj --packages $TEMP_DIR --source $AZURE_FEED #--configfile $NUGET_CONFIG # Удалить созданный .csproj после загрузки rm $TEMP_DIR/temp.csproj # Публикация пакетов в GitLab Package Registry echo "Загрузка пакетов в GitLab Package Registry..." for package in $TEMP_DIR/*.nupkg; do echo "Uploading $package в GitLab..." dotnet nuget push "$package" --source $GITLAB_FEED #--configfile $NUGET_CONFIG done # Очистка временной директории rm -rf $TEMP_DIR echo "Синхронизация завершена."