मैं CLI पर Gitea रिपॉजिटरी बनाना चाहता हूँ
नमस्ते, मैं अक्षम हूँ।
मैं GitHub पर पुश करते समय Gitea पर भी पुश करना चाहता हूँ, लेकिन यह बहुत परेशानी भरा है, इसलिए मैं इसे CLI से भी संचालित करने में सक्षम होना चाहता हूँ।
ऐसा इसलिए है क्योंकि मैं GitHub के दर्पण के रूप में सब कुछ दर्पण नहीं कर रहा हूँ, मैं बस कुछ हद तक आसानी से पुश करने में सक्षम होना चाहता हूँ।
API कुंजी जारी करना
Gitea में एक API कुंजी जारी करें।

curl के साथ API अनुरोध
हर बार curl URL पेस्ट करना बहुत परेशानी भरा है, इसलिए मैं इसे एक फ़ंक्शन में बदल दूँगा।
निम्नलिखित को .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 जैसे कमांड के लिए प्रगति प्रदर्शन को एक विकल्प के साथ बंद कर सकते हैं, लेकिन जब इसे पाइप के माध्यम से पास किया जाता है तो इस प्रगति प्रदर्शन को कैसे हटाया जाए?