2024-10-01 18:02:31 +03:00
|
|
|
|
if [ -z "$domain" ] || [ -z "$token" ] || [ -z "$owner" ] || [ -z "$repo" ] || [ -z "$description" ] || [ -z "$user" ]; then
|
2024-07-31 21:14:05 +03:00
|
|
|
|
echo "Не указаны обязательные параметры." && exit 1
|
2023-12-17 07:53:27 +03:00
|
|
|
|
fi
|
2023-12-17 08:20:25 +03:00
|
|
|
|
if [ -z "$1" ]; then
|
|
|
|
|
echo "Создание удалённого репозитория для текущего каталога."
|
|
|
|
|
fi
|
2023-12-17 09:48:34 +03:00
|
|
|
|
seconds=5
|
2024-07-31 21:14:05 +03:00
|
|
|
|
time_ms="$(date '+%s%3N')"
|
2023-12-17 08:20:25 +03:00
|
|
|
|
if [ -z "$1" ] || [ "$1" == "delete" ]; then
|
|
|
|
|
echo "Удаление старого репозитория."
|
2024-10-01 18:02:31 +03:00
|
|
|
|
curl -X DELETE "https://$domain/api/v1/repos/$owner/$repo" \
|
2023-12-17 07:53:27 +03:00
|
|
|
|
-H "Authorization: token $token" \
|
2023-12-17 08:20:25 +03:00
|
|
|
|
-H "Accept: application/json" -i
|
|
|
|
|
echo "Ожидание $seconds с."
|
2024-07-31 21:14:05 +03:00
|
|
|
|
sleep "$seconds"
|
2023-12-17 07:53:27 +03:00
|
|
|
|
fi
|
2023-12-17 08:20:25 +03:00
|
|
|
|
if [ -z "$1" ] || [ "$1" == "create" ]; then
|
|
|
|
|
echo "Создание нового репозитория пользователя."
|
2024-10-01 18:02:31 +03:00
|
|
|
|
curl -X POST "https://$domain/api/v1/user/repos" \
|
2023-12-17 07:53:27 +03:00
|
|
|
|
-H "Authorization: token $token" \
|
2023-12-17 08:20:25 +03:00
|
|
|
|
-H "Accept: application/json" \
|
|
|
|
|
-H "Content-Type: application/json" -d "{ \"name\": \"$repo\", \"description\": \"$description\" }" -i
|
2023-12-17 07:53:27 +03:00
|
|
|
|
echo "Ожидание $seconds с."
|
2024-07-31 21:14:05 +03:00
|
|
|
|
sleep "$seconds"
|
|
|
|
|
if [ "$user" != "$owner" ]; then
|
2023-12-17 08:20:25 +03:00
|
|
|
|
echo "Перемещение репозитория в группу."
|
2024-10-01 18:02:31 +03:00
|
|
|
|
curl -X POST "https://$domain/api/v1/repos/$user/$repo/transfer" \
|
2023-12-17 08:20:25 +03:00
|
|
|
|
-H "Authorization: token $token" \
|
|
|
|
|
-H "Accept: application/json" \
|
|
|
|
|
-H "Content-Type: application/json" -d "{ \"new_owner\": \"$owner\" }" -i
|
|
|
|
|
echo "Ожидание $seconds с."
|
2024-07-31 21:14:05 +03:00
|
|
|
|
sleep "$seconds"
|
2023-12-17 08:20:25 +03:00
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
if [ -z "$1" ] || [ "$1" == "options" ]; then
|
|
|
|
|
if [ "$wiki" ]; then
|
|
|
|
|
echo "Добавление страницы wiki в репозиторий."
|
2024-10-01 18:02:31 +03:00
|
|
|
|
curl -X POST "https://$domain/api/v1/repos/$owner/$repo/wiki/new" \
|
2023-12-17 08:20:25 +03:00
|
|
|
|
-H "Authorization: token $token" \
|
|
|
|
|
-H "Accept: application/json" \
|
|
|
|
|
-H "Content-Type: application/json" -d "{ \"content_base64\": \"$wiki\", \"title\": \"Home\" }" -i
|
|
|
|
|
has_wiki=true
|
|
|
|
|
else
|
|
|
|
|
has_wiki=false
|
|
|
|
|
fi
|
|
|
|
|
echo "Изменение свойств репозитория / отключение ненужного."
|
2024-10-01 18:02:31 +03:00
|
|
|
|
curl -X PATCH "https://$domain/api/v1/repos/$owner/$repo" \
|
2023-12-17 08:20:25 +03:00
|
|
|
|
-H "Authorization: token $token" \
|
|
|
|
|
-H "Accept: application/json" \
|
|
|
|
|
-H "Content-Type: application/json" -d "{
|
|
|
|
|
\"has_actions\": false,
|
|
|
|
|
\"has_issues\": false,
|
|
|
|
|
\"has_packages\": false,
|
|
|
|
|
\"has_projects\": false,
|
|
|
|
|
\"has_pull_requests\": false,
|
|
|
|
|
\"has_releases\": false,
|
|
|
|
|
\"has_wiki\": $has_wiki }" -i
|
2023-12-30 23:37:18 +03:00
|
|
|
|
echo "Добавление аватарки для репозитория."
|
2024-07-31 21:14:05 +03:00
|
|
|
|
picture="$repo"
|
|
|
|
|
if [ "$user" != "$owner" ]; then
|
2023-12-30 23:37:18 +03:00
|
|
|
|
picture="website"
|
|
|
|
|
fi
|
|
|
|
|
avatar=$(basenc "../pomodoro/pictures/$picture.jpg" --base64 -w0)
|
2024-10-01 18:02:31 +03:00
|
|
|
|
curl -X POST "https://$domain/api/v1/repos/$owner/$repo/avatar" \
|
2023-12-30 23:37:18 +03:00
|
|
|
|
-H "Authorization: token $token" \
|
|
|
|
|
-H "Accept: application/json" \
|
|
|
|
|
-H "Content-Type: application/json" -d "{ \"image\": \"$avatar\" }" -i
|
2023-12-17 07:53:27 +03:00
|
|
|
|
fi
|
2024-07-31 21:14:05 +03:00
|
|
|
|
if [ -z "$1" ]; then
|
|
|
|
|
echo "Общее время выполнения: $(("$(date '+%s%3N')" - "$time_ms")) мс."
|
|
|
|
|
fi
|