Add bash_scripts/azure/check_nuget_sources.sh
This commit is contained in:
parent
aa48982027
commit
d12a6fac1f
55
bash_scripts/azure/check_nuget_sources.sh
Normal file
55
bash_scripts/azure/check_nuget_sources.sh
Normal file
@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Файл NuGet.Config — путь по умолчанию для пользователя
|
||||
CONFIG_FILE="${HOME}/.nuget/NuGet/NuGet.Config"
|
||||
|
||||
# Проверка существования файла
|
||||
if [ ! -f "$CONFIG_FILE" ]; then
|
||||
echo "NuGet.Config не найден по пути: $CONFIG_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Чтение NuGet источников из $CONFIG_FILE..."
|
||||
echo
|
||||
|
||||
# Извлечь источники с помощью xmllint
|
||||
SOURCES=$(xmllint --xpath "//packageSources/add/@value" "$CONFIG_FILE" 2>/dev/null | sed -E 's/value="([^"]*)"/\1\n/g' | grep -E '^http')
|
||||
|
||||
if [ -z "$SOURCES" ]; then
|
||||
echo "Не найдено ни одного источника в NuGet.Config."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Запрос PAT у пользователя (если используется Azure DevOps)
|
||||
read -p "Введите Azure DevOps Personal Access Token (или оставьте пустым для анонимного доступа): " PAT
|
||||
|
||||
# Проверка каждого URL
|
||||
echo "Проверка источников..."
|
||||
echo
|
||||
|
||||
for URL in $SOURCES; do
|
||||
echo "Источник: $URL"
|
||||
|
||||
if [[ "$URL" == *"dev.azure.com"* ]]; then
|
||||
if [ -n "$PAT" ]; then
|
||||
# Azure DevOps требует auth: user:PAT
|
||||
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" -u user:$PAT "$URL")
|
||||
else
|
||||
echo "Источник требует авторизации, но PAT не указан."
|
||||
continue
|
||||
fi
|
||||
else
|
||||
# Обычный анонимный источник
|
||||
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$URL")
|
||||
fi
|
||||
|
||||
case $HTTP_STATUS in
|
||||
200) echo "Доступен (HTTP 200)";;
|
||||
401) echo "Требуется авторизация (HTTP 401)";;
|
||||
403) echo "Доступ запрещён (HTTP 403)";;
|
||||
404) echo "Не найден (HTTP 404)";;
|
||||
*) echo "Статус: $HTTP_STATUS";;
|
||||
esac
|
||||
|
||||
echo
|
||||
done
|
||||
Loading…
x
Reference in New Issue
Block a user