সিএলআই-তে গিটিয়া রিপোজিটরি তৈরি করতে চাই
হ্যালো, আমি অযোগ্য।
আমি গিটহাবে পুশ করার সময় গিটিয়াতেও পুশ করতে চাই, কিন্তু এটি বিরক্তিকর, তাই আমি এটি সিএলআই থেকেও পরিচালনা করতে চাই।
কারণ আমি গিটহাবের একটি মিরর হিসাবে সবকিছু মিরর করছি না, আমি কেবল কিছুটা সহজে পুশ করতে চাই।
এপিআই কী তৈরি করা
গিটিয়াতে একটি এপিআই কী তৈরি করুন।

কার্ল দিয়ে এপিআই অনুরোধ
প্রতিবার কার্ল ইউআরএল পেস্ট করা খুব বিরক্তিকর, তাই এটিকে একটি ফাংশনে রূপান্তর করুন।
.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-এ ফিরে আসা মানটি খুব দীর্ঘ।
শুধুমাত্র রিমোট ইউআরএল মান প্রয়োজন, তাই 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-এর মতো কমান্ডের অগ্রগতি প্রদর্শন বিকল্পের মাধ্যমে বন্ধ করা যায়, কিন্তু পাইপের মাধ্যমে পাস করার সময় এই অগ্রগতি প্রদর্শনটি কীভাবে বন্ধ করা যায়?