সিএলআই-তে গিটিয়া রিপোজিটরি তৈরি করতে চাই

3 min

language: ja bn de en es fr hi ko pt ru zh-cn zh-tw

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

এপিআই কী তৈরি করা

গিটিয়াতে একটি এপিআই কী তৈরি করুন।
images

কার্ল দিয়ে এপিআই অনুরোধ

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

Related Posts