60 lines
2.9 KiB
Bash
60 lines
2.9 KiB
Bash
#!/bin/false
|
||
if [[ -z "$domain" || -z "$token" || -z "$owner" || -z "$repo" || -z "$description" || -z "$user" ]]; then
|
||
echo "Не указаны обязательные параметры." && exit 1
|
||
elif [ "$domain" != "codeberg.org" ]; then
|
||
echo "Некорректно указан сервер." && exit 1
|
||
fi
|
||
cd _site || exit 1
|
||
if [ -z "$1" ]; then
|
||
echo "Развёртывание копии вёб-сайта на сервере 'codeberg.page'."
|
||
fi
|
||
time_ms="$(date '+%s%3N')"
|
||
if [[ -z "$1" || "$1" == "remote" ]]; then
|
||
echo "Удаление старого репозитория на сервере."
|
||
curl -i -X DELETE "https://$domain/api/v1/repos/$owner/$repo" \
|
||
-H "Authorization: token $token" \
|
||
-H "Accept: application/json"
|
||
echo "Создание нового репозитория в группе на сервере."
|
||
curl -i -X POST "https://$domain/api/v1/orgs/$owner/repos" \
|
||
-H "Authorization: token $token" \
|
||
-H "Accept: application/json" \
|
||
-H "Content-Type: application/json" -d "{
|
||
\"name\": \"$repo\", \"description\": \"$description\" }"
|
||
echo "Изменение свойств репозитория / отключение ненужного."
|
||
curl -i -X PATCH "https://$domain/api/v1/repos/$owner/$repo" \
|
||
-H "Authorization: token $token" \
|
||
-H "Accept: application/json" \
|
||
-H "Content-Type: application/json" -d "{
|
||
\"has_projects\": false, \"has_issues\": false,
|
||
\"has_releases\": false, \"has_actions\": false,
|
||
\"has_packages\": false, \"has_pull_requests\": false,
|
||
\"has_wiki\": false }"
|
||
echo "Добавление аватарки для репозитория."
|
||
avatar=$(basenc "../../pomodoro/pictures/website.jpg" --base64 -w0)
|
||
curl -i -X POST "https://$domain/api/v1/repos/$owner/$repo/avatar" \
|
||
-H "Authorization: token $token" \
|
||
-H "Accept: application/json" \
|
||
-H "Content-Type: application/json" -d "{ \"image\": \"$avatar\" }"
|
||
fi
|
||
if [[ -z "$1" || "$1" == "local" ]]; then
|
||
echo "Пересоздание локального репозитория и отправка данных на сервер."
|
||
rm -rf ".git" # удаление старого репозитория
|
||
git init -b "master"
|
||
git remote add "$domain" "git@$domain:$owner/$repo.git"
|
||
git add --all
|
||
git commit -m "$(date '+%Y-%m-%d')"
|
||
git push -u "$domain" "master"
|
||
fi
|
||
if [ -z "$1" ]; then
|
||
echo "Ожидание 3 секунды." && sleep 3
|
||
fi
|
||
if [[ -z "$1" || "$1" == "testing" ]]; then
|
||
echo "Получение списка коммитов для удалённого репозитория."
|
||
param="stat=false&verification=false&files=false"
|
||
curl -i -X GET "https://$domain/api/v1/repos/$owner/$repo/commits?$param" \
|
||
-H "Authorization: token $token" \
|
||
-H "Accept: application/json"
|
||
fi
|
||
if [ -z "$1" ]; then
|
||
echo "Общее время выполнения: $(($(date '+%s%3N') - time_ms)) мс."
|
||
fi
|