Хочу создавать репозитории в Gitea через CLI
Здравствуйте, я бездарь.
Я хочу делать push на Github и также на Gitea, но это хлопотно, поэтому я хочу иметь возможность управлять этим из CLI.
Дело в том, что я не зеркалирую все как зеркало Github, а просто хочу иметь возможность легко делать push в определенной степени.
Выпуск API-ключа
Выпустите API-ключ в Gitea.

API-запрос с помощью curl
Вставлять URL-адрес curl каждый раз слишком хлопотно, поэтому я сделаю это функцией.
Добавьте следующее в .bashrc
ga() {
curl -X POST "https://git.domain.tld/api/v1/user/repos" \
-H "Content-Type: application/json" \
-H "Authorization: token GITEA_API_TOKEN" \
-d "{
\"name\": \"$1\",
\"private\": $2
}"
}
Загрузить
source ~/.bashrc
И когда я запустил его, он выдал ошибку.
$ ga test false
{"message":"token does not have at least one of required scope(s), required=[write:user], token scope=write:repository","url":"https://git.domain.tld/api/swagger"}
Я предоставил права на чтение и запись для репозитория, но, похоже, также требуются права на запись для пользователя.
Получилось
Итак, поскольку необходимо передать булево значение, указывающее, является ли это приватным репозиторием, во втором аргументе, я создам репозиторий таким образом.
ga testrepo false
Но в этом случае возвращаемое значение JSON слишком длинное.
Мне нужно только значение удаленного URL-адреса, поэтому я извлеку его с помощью jq.
ga() {
curl -X POST "https://git.domain.tld/api/v1/user/repos" \
-H "Content-Type: application/json" \
-H "Authorization: token GITEA_API_TOKEN" \
-d "{
\"name\": \"$1\",
\"private\": $2
}" |\
jq .ssh_url
}
В итоге
$ ga testa false
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2227 0 2180 100 47 2471 53 --:--:-- --:--:-- --:--:-- 2524
"ssh://git@git.domain.tld:port/haturatu/testa.git"
Что-то вроде отображения прогресса wget и подобных можно отключить с помощью опции, но как отключить это отображение прогресса при передаче через пайп?